Serverless 應用引擎 SAE(Serverless App Engine)即時日誌功能支援查看最新的500行日誌資訊。為滿足更高的查閱需求,SAE還提供了檔案日誌收集功能,支援將業務檔案日誌(容器內日誌路徑)、容器標準輸出日誌(stdout)無限制行數地收集至SLS,便於您彙總分析。啟用日誌收集到SLS功能後,SAE將自動在部署、擴容時與SLS對接日誌採集,您即可在SLS控制台根據關鍵字檢索日誌。
前提條件
確保應用中每個執行個體至少預留0.25 Core CPU和250 MB記憶體的可用資源。
注意事項
設定檔日誌收集
在建立應用過程中設定檔日誌收集
登入SAE控制台。
在左側導覽列,單擊應用列表,在頂部功能表列選擇地區,然後單擊建立應用。
在應用基本資料設定精靈,配置相關資訊,然後單擊下一步:應用部署配置。
在應用部署配置設定精靈,選擇技術棧語言和應用部署方式,配置相關資訊。
展開日誌收集服務地區,在預設顯示的日誌採集到SLS頁簽,開啟開通日誌收集到SLSLog Service功能開關,並配置相關配置項。
按需選擇建立SLS資源或使用已有的SLS資源,單擊+添加並配置相關配置項。
配置項
說明
以下配置項供選擇建立SLS資源和使用已有的SLS資源時通用。
採集日誌類型
選擇日誌類型。
檔案日誌(容器內日誌路徑):可以設定多條,預設顯示。
容器標準輸出日誌:僅可以設定一條。當您的vSwitch屬於推薦可用性區域時,下拉式清單才會顯示該選項。更多資訊,請參見切換安全性群組和vSwitch。
日誌源
輸入日誌源存放的檔案目錄。目錄須包含日誌的檔案名稱,例如/tmp0/cjsc.log。容器標準輸出無需設定此選項。檔案名稱與路徑支援正則匹配,同一目錄下,如果記錄檔數量多,且檔案格式相同,可以輸入例如/xxx/xxx/xxx/*.log的格式。
重要請勿在日誌源的存放目錄中存放其他重要檔案,避免目錄內的檔案被覆蓋。
以下配置項僅供選擇使用已有的SLS資源時設定。
使用已有的SLS Project
選擇需要存放日誌的Project。
logstore
選擇Logstore。
logtail
選擇Logtail。更多資訊,請參見什麼是Logtail。
單擊下一步:確認規格。
在確認規格設定精靈,查看您所建立應用的詳細資料以及配置費用情況,並單擊確認建立。
頁面會跳轉至建立完成設定精靈,您可以單擊應用詳情頁進入基本資料頁面。
驗證結果。
應用部署完成後,SAE依據所配的日誌收集規則收集日誌並存放到指定的檔案內。
您可以在應用詳情頁面左側導覽列,選擇
,在持久化日誌頁面查看所收集的日誌資訊。如果存在日誌資料,表示日誌收集配置成功,您可以依據日誌資訊進行相關業務分析。
在部署應用過程中設定檔日誌收集
重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。
更新應用配置的路徑因執行個體數的不同而不同。本文以執行個體數大於等於1為例,介紹如何配置目標功能。當執行個體數等於0時的操作路徑,請參見更新應用。
登入SAE控制台。
在左側導覽列,單擊應用列表,在頂部功能表列選擇地區,然後單擊具體應用程式名稱。
在基本資料頁面右上方,單擊部署應用。
在部署應用頁面下方,展開日誌收集服務地區,在預設顯示的日誌採集到SLS頁簽,開啟開通日誌收集到SLSLog Service功能開關,並配置相關配置項。
按需選擇建立SLS資源或使用已有的SLS資源,單擊+添加並配置相關配置項。
配置項
說明
以下配置項供選擇建立SLS資源和使用已有的SLS資源時通用。
採集日誌類型
選擇日誌類型。
檔案日誌(容器內日誌路徑):可以設定多條,預設顯示。
容器標準輸出日誌:僅可以設定一條。當您的vSwitch屬於推薦可用性區域時,下拉式清單才會顯示該選項。更多資訊,請參見切換安全性群組和vSwitch。
日誌源
輸入日誌源存放的檔案目錄。目錄須包含日誌的檔案名稱,例如/tmp0/cjsc.log。容器標準輸出無需設定此選項。檔案名稱與路徑支援正則匹配,同一目錄下,如果記錄檔數量多,且檔案格式相同,可以輸入例如/xxx/xxx/xxx/*.log的格式。
重要請勿在日誌源的存放目錄中存放其他重要檔案,避免目錄內的檔案被覆蓋。
以下配置項僅供選擇使用已有的SLS資源時設定。
使用已有的SLS Project
選擇需要存放日誌的Project。
logstore
選擇Logstore。
logtail
選擇Logtail。更多資訊,請參見什麼是Logtail。
配置完成後,單擊確認。
說明如果您在應用部署時採用分批發布或者灰階發布策略,同時您配置的日誌源不變,只改變日誌收集的Project或者Logstore,那麼在所有批次的部署流程成功完成之前,您的日誌仍被收集到舊的Project與Logstore中。因為SLS不支援同一個檔案被同時採集到不同的Project或Logstore中。
驗證結果。
應用部署完成後,SAE依據所配的日誌收集規則收集日誌並存放到指定的檔案內。
您可以在應用詳情頁面左側導覽列,選擇
,在持久化日誌頁面查看所收集的日誌資訊。如果存在日誌資料,表示日誌收集配置成功,您可以依據日誌資訊進行相關業務分析。
設定環境變數提升Logtail採集效能
您可以在SAE控制台通過設定環境變數的方式來配置Logtail啟動參數。配置後,在開啟日誌收集服務的基礎上,Logtail採集效能將得到提升,有效解決記錄檔佔用記憶體大、日誌資料流量大和Logtail發送資料速率高等影響日誌採集的瓶頸問題。
您需要在環境變數設定地區內,選擇自訂或引用配置項的方式,並填寫變數名稱和變數值/變數引用。具體操作,請參見設定環境變數。
變數名稱的填寫規則
在需要配置的Logtail環境變數前增加sls_首碼。如下圖所示,如果您需要添加Logtail參數max_read_buffer_size,則配置的環境變數為sls_max_read_buffer_size。圖例表示每條日誌讀取的最大值為524288,單位:Byte。更多參數,請參見設定Logtail啟動參數。
環境變數與Logtail啟動參數對應關係
具體資訊,請參見環境變數說明。
SLS採集標準輸出去除首碼
如果您需要對SLS日誌內容做更多個人化的欄位提取設定,例如,去除標準輸出日誌的首碼,可選擇完整正則模式,並配置如下資訊。
行首Regex
\d+-\d+-\d+T\d+:\d+:\d+.\d+\+\d+.*
正則
\d+-\d+-\d+T\d+:\d+:\d+.\d+\+\d+:\d+\s\w+\s\w\s(.*)
如果您還需要展開JSON,可以添加外掛程式配置。
{
"global": {
"DefaultLogQueueSize": 10
},
"processors": [
{
"type": "processor_split_log_regex",
"detail": {
"PreserveOthers": true,
"SplitKey": "content",
"SplitRegex": "\\d+-\\d+-\\d+T\\d+:\\d+:\\d+.\\d+\\+\\d+.*"
}
},
{
"type": "processor_regex",
"detail": {
"SourceKey": "content",
"Regex": "\\d+-\\d+-\\d+T\\d+:\\d+:\\d+.\\d+\\+\\d+:\\d+\\s\\w+\\s\\w\\s(.*)",
"Keys": [
"newline"
]
}
},
{
"detail": {
"SourceKey": "newline",
"KeepSource": true,
"ExpandDepth": 0,
"NoKeyError": true,
"ExpandConnector": "-"
},
"type": "processor_json"
}
]
}
更多資訊,請參見使用完整正則模式採集日誌和管理Logtail採集配置。
常見問題
SAE日誌功能是否支援滾動日誌?
支援。您可以通過給記錄檔名稱添加萬用字元的方式滾動日誌。
檔案名稱萬用字元支援星號(*)和問號(?)。
查看檔案日誌時,在SLS控制台無資料展示,如何處理?
通常SLS預設查詢最近15分鐘內的查詢結果。如果SLS無資料顯示,建議使用Webshell查看您的應用是否有檔案日誌資訊。詳細操作,請參見使用Webshell診斷應用。
如果有日誌資訊,請加入釘群(釘群號:32874633),聯絡產品技術專家進行諮詢。
如果沒有日誌資訊,請檢查您的應用資訊。