本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
Serverless 應用引擎 SAE(Serverless App Engine)實時日志功能支持查看最新的500行日志信息。為滿足更高的查閱需求,SAE還提供了文件日志收集功能,支持將業務文件日志(容器內日志路徑)、容器標準輸出日志(stdout)無限制行數地收集至SLS,便于您聚合分析。啟用日志收集到SLS功能后,SAE將自動在部署、擴容時與SLS對接日志采集,您即可在SLS控制臺根據關鍵字檢索日志。
前提條件
確保應用中每個實例至少預留0.25 Core CPU和250 MB內存的可用資源。
注意事項
配置文件日志收集
在創建應用過程中配置文件日志收集
登錄SAE控制臺。
在左側導航欄,選擇 ,在頂部菜單欄選擇地域,然后單擊創建應用。
在應用基本信息配置向導,配置相關信息,然后單擊下一步:應用部署配置。
在應用部署配置配置向導,選擇技術棧語言和應用部署方式,配置相關信息。
展開日志收集服務區域,在默認顯示的日志采集到SLS頁簽,打開開通日志收集到SLS日志服務功能開關,并配置相關配置項。
按需選擇新建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頁簽,打開開通日志收集到SLS日志服務功能開關,并配置相關配置項。
按需選擇新建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日志內容做更多個性化的字段提取設置,例如,去除標準輸出日志的前綴,可選擇完整正則模式,并配置如下信息。
行首正則表達式
\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),聯系產品技術專家進行咨詢。
如果沒有日志信息,請檢查您的應用信息。