全部產品
Search
文件中心

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

更新時間:Jun 30, 2024

Serverless 應用引擎 SAE(Serverless App Engine)即時日誌功能支援查看最新的500行日誌資訊。為滿足更高的查閱需求,SAE還提供了檔案日誌收集功能,支援將業務檔案日誌(容器內日誌路徑)、容器標準輸出日誌(stdout)無限制行數地收集至SLS,便於您彙總分析。啟用日誌收集到SLS功能後,SAE將自動在部署、擴容時與SLS對接日誌採集,您即可在SLS控制台根據關鍵字檢索日誌。

前提條件

注意事項

  • 一個阿里雲帳號最多可建立200個Logstore資源、50個Project資源。

    警告

    Log Service基礎資源的使用限制,會影響SAE應用的日誌收集結果,例如導致日誌儲存時間過短、日誌收集失敗等。更多使用限制,請參見基礎資源

  • 應用開始建立後,系統自動檢查SLS服務是否開啟、內建資源是否充足。

    • 如果SLS服務未開啟,請按提示開通。

    • 如果內建資源不足,請加入釘群(釘群號:32874633)申請提升額度。

  • 使用SLS會產生額外費用,檔案日誌收集功能按日誌使用量計費。計費詳情,請參見SLS計費說明

設定檔日誌收集

在建立應用過程中設定檔日誌收集

  1. 登入SAE控制台

  2. 在左側導覽列,單擊應用列表,在頂部功能表列選擇地區,然後單擊建立應用

  3. 應用基本資料設定精靈,配置相關資訊,然後單擊下一步:應用部署配置

  4. 應用部署配置設定精靈,選擇技術棧語言應用部署方式,配置相關資訊。

  5. 展開日誌收集服務地區,在預設顯示的日誌採集到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

  6. 單擊下一步:確認規格

  7. 確認規格設定精靈,查看您所建立應用的詳細資料以及配置費用情況,並單擊確認建立

    頁面會跳轉至建立完成設定精靈,您可以單擊應用詳情頁進入基本資料頁面。

  8. 驗證結果。

    應用部署完成後,SAE依據所配的日誌收集規則收集日誌並存放到指定的檔案內。

    您可以在應用詳情頁面左側導覽列,選擇日誌管理 > 持久化日誌,在持久化日誌頁面查看所收集的日誌資訊。

    如果存在日誌資料,表示日誌收集配置成功,您可以依據日誌資訊進行相關業務分析。

在部署應用過程中設定檔日誌收集

警告

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

更新應用配置的路徑因執行個體數的不同而不同。本文以執行個體數大於等於1為例,介紹如何配置目標功能。當執行個體數等於0時的操作路徑,請參見更新應用

  1. 登入SAE控制台

  2. 在左側導覽列,單擊應用列表,在頂部功能表列選擇地區,然後單擊具體應用程式名稱。

  3. 基本資料頁面右上方,單擊部署應用

  4. 部署應用頁面下方,展開日誌收集服務地區,在預設顯示的日誌採集到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

  5. 配置完成後,單擊確認

    說明

    如果您在應用部署時採用分批發布或者灰階發布策略,同時您配置的日誌源不變,只改變日誌收集的Project或者Logstore,那麼在所有批次的部署流程成功完成之前,您的日誌仍被收集到舊的Project與Logstore中。因為SLS不支援同一個檔案被同時採集到不同的Project或Logstore中。

  6. 驗證結果。

    應用部署完成後,SAE依據所配的日誌收集規則收集日誌並存放到指定的檔案內。

    您可以在應用詳情頁面左側導覽列,選擇日誌管理 > 持久化日誌,在持久化日誌頁面查看所收集的日誌資訊。

    如果存在日誌資料,表示日誌收集配置成功,您可以依據日誌資訊進行相關業務分析。

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

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

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

  • 變數名稱的填寫規則

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

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

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

SLS採集標準輸出去除首碼

如果您需要對SLS日誌內容做更多個人化的欄位提取設定,例如,去除標準輸出日誌的首碼,可選擇完整正則模式,並配置如下資訊。

sc_sls_collect_logs_in_full_regex_mode

  • 行首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,可以添加外掛程式配置

sc_sls_plugin_configuration

{
  "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),聯絡產品技術專家進行諮詢。

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