全部產品
Search
文件中心

Serverless App Engine:設定日誌收集至SLS

更新時間:Dec 03, 2025

通過將SAE應用的標準輸出日誌或檔案日誌收集至Log ServiceSLS,實現日誌持久化儲存與彙總分析。

前提條件

  • 已開通Log Service。未開通請登入Log Service控制台並按提示開通Log Service。

  • 確保應用中每個執行個體至少預留0.25 Core CPU和250 MB記憶體的可用資源。

開啟日誌採集

操作路徑: 

  1. 建立應用

    SAE應用列表中,在頂部選擇目標地區和命名空間,點擊建立應用應用基本資料頁面進行配置後,單擊下一步:進階設定

    對正在啟動並執行應用進行變更

    警告

    重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。

    SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。在左側導覽列點擊基礎資訊,在右上方點擊部署應用

    對已停止的應用進行變更

    SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。點擊基礎資訊,點擊修改應用配置

  2. 展開日誌配置地區,開啟SLSLog Service

配置說明:

  • 選擇SLS資源,用於儲存SAE應用日誌:

    • 建立SLS資源:系統將自動建立一個SLS Project,Project命名格式為sae-<隨機字串>

    • 使用已有的SLS資源:選擇一個已有的SLS Project,Project所在地區必須與應用相同。

  • 日誌標籤日誌標籤用於標識和分類日誌條目。開啟自訂日誌標籤後,選擇以下類型來配置Key和Value。如需配置多個Key和Value,點擊添加

    • 自訂:輸入變數名稱變數值

    • 引用配置項:輸入變數名稱,然後選擇已有的配置項名稱

    重要

    此功能目前處於邀約測試階段。如果您想使用此功能,請在DingTalk群(群號:32874633)聯絡相關技術人員開通。

  • 採集日誌類型

    • 檔案日誌(容器內日誌路徑):適用於應用將日誌寫入到檔案中的情境。需要在日誌源中配置容器內記錄檔的絕對路徑(含檔案名稱),例如/tmp/cjsc.log。支援正則匹配,例如/path/to/your/files/*.log

    • 容器標準輸出日誌:適用於應用將日誌列印到標準輸出的情境。日誌源顯示為stdout.log

    • 點擊+添加可以添加多條記錄。

    • 如果使用已有的SLS資源,可以為每條記錄配置logstoreNamelogtail

    重要
    • 請勿在日誌源的存放路徑中存放其他重要檔案,避免目錄內的檔案被覆蓋。例如,應用的可執行檔和資料已經存放在/home/admin/app/中,如果將日誌的存放路徑設定為/home/admin/,會導致該路徑下的所有目錄和檔案被覆蓋。為避免上述情況發生,可以將日誌的存放路徑設定為/home/admin/log/

    • 分批或灰階發布時,若僅變更Project或Logstore,在所有批次部署完成前日誌仍會被採集到舊目標,因為SLS不支援同一檔案被採集到不同的Project或Logstore中。

結果驗證:

  1. SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。

  2. 點擊日誌管理 > 持久化日誌 > 日誌採集到SLS,查看SLS日誌。

  3. 操作列點擊文件日志,跳轉到對應的日誌庫查看日誌的詳細內容。

去除日誌內容的首碼

採集容器標準輸出日誌時,原始的日誌內容包含多餘的首碼,您可以選擇以下方式去除日誌內容的首碼。

方式一:自訂Logtail配置

重要

此功能僅對Logtail 2.0及以上版本有效。如果您想使用此功能,請在DingTalk群(群號:32874633)聯絡相關技術人員升級SAE應用的Logtail版本。

  1. 展開對應的日誌庫,單擊Logtail配置

  2. Logtail配置頁面,單擊對應的Logtail配置條目。

  3. 單擊編輯,配置以下資訊,其餘參數保持預設。

    1. 展開處理配置地區,切分失敗處理方式設定為保留單行

    2. 處理模式設定為SPL

    3. SPL語句的文字框中輸入* | extend msg=regexp_replace(content, '(\S{33,36}\s\S+\sF\s)','') | project-away content

  4. 單擊儲存

  5. 新採集的日誌內容已經去除首碼。

方式二:標準輸出重新導向

  1. 建立應用

    SAE應用列表中,在頂部選擇目標地區和命名空間,點擊建立應用應用基本資料頁面進行配置後,單擊下一步:進階設定

    對正在啟動並執行應用進行變更

    警告

    重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。

    SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。在左側導覽列點擊基礎資訊,在右上方點擊部署應用

    對已停止的應用進行變更

    SAE應用列表中,在頂部選擇目標地區和命名空間,點擊目標應用ID跳轉到應用詳情頁。點擊基礎資訊,點擊修改應用配置

  2. 展開啟動命令地區,配置啟動命令實現標準輸出重新導向:

    以鏡像部署的應用為例,在原有啟動命令之後增加 2>&1 | tee -a /home/admin/log/std.log(其中,/home/admin/log/std.log為記錄檔儲存路徑,可根據實際需求自訂)。

    例如,鏡像中原始啟動命令為CMD ["./main"],則啟動命令配置為./main 2>&1 | tee -a /home/admin/log/std.log

    如果鏡像環境不支援tee命令,或者無需在控制台查看即時日誌,則可以將 2>&1 | tee -a /home/admin/log/std.log替換為 > /home/admin/log/std.log 2>&1

  3. 展開日誌配置地區,採集日誌類型設定為檔案日誌(容器內日誌路徑)日誌源設定為記錄檔儲存路徑,例如/home/admin/log/std.log

  4. 單擊確定,等待應用部署完成。

  5. 新採集的日誌內容已經去除首碼。

設定環境變數提升Logtail採集效能

您可以在SAE控制台通過設定環境變數的方式來配置Logtail啟動參數。配置後,在開啟日誌收集服務的基礎上,Logtail採集效能將得到提升,有效解決記錄檔佔用記憶體大、日誌資料流量大和Logtail發送資料速率高等影響日誌採集的瓶頸問題。

您需要在環境變數設定地區內,選擇自訂引用配置項的方式,並填寫變數名稱變數值/變數引用。具體操作,請參見設定環境變數

  • 變數名稱的填寫規則

    在需要配置的Logtail環境變數前增加sls_首碼。如下圖所示,例如您需要添加Logtail參數max_read_buffer_size,則配置的環境變數為sls_max_read_buffer_size。圖例表示每條日誌讀取的最大值為524288,單位:Byte。更多參數,請參見設定Logtail啟動參數

    image

  • 環境變數與Logtail啟動參數對應關係

    具體資訊,請參見環境變數說明

配額與限制

一個阿里雲帳號最多可建立200個Logstore資源、50個Project資源。Log Service基礎資源的使用限制,會影響SAE應用的日誌收集結果,例如導致日誌儲存時間過短、日誌收集失敗等。更多使用限制,請參見基礎資源

計費說明

使用Log Service會產生額外費用,請參見SLS計費說明

常見問題

  • SAE日誌功能是否支援滾動日誌?

    支援。您可以通過給記錄檔名稱添加萬用字元的方式滾動日誌。

    檔案名稱萬用字元支援星號(*)和問號(?)。

  • 查看檔案日誌時,在SLS控制台無資料展示,如何處理?

    通常SLS預設查詢最近15分鐘內的查詢結果。如果SLS無資料顯示,建議使用Webshell查看您的應用是否有檔案日誌資訊。詳細操作,請參見使用Webshell診斷應用

    • 如果有日誌資訊,請加入釘群(釘群號:32874633),聯絡產品技術專家進行諮詢。

    • 如果沒有日誌資訊,請檢查您的應用資訊。