全部產品
Search
文件中心

Container Service for Kubernetes:在Knative上實現日誌採集

更新時間:Jun 19, 2024

Log Service(Log Service,簡稱 LOG)是針對日誌類資料的一站式服務。您無需開發就能快捷完成日誌資料擷取、消費、投遞以及查詢分析等功能。在Knative中結合Log Service,能有效提升對Serverless應用的營運能力。本文介紹如何在Knative中使用Log Service收集Serverless應用程式容器日誌,採用Log Service收集、分析業務日誌,滿足生產層級的Serverless應用營運的訴求。

前提條件

步驟一:部署服務

本文部署一個名稱為helloworld-go的Knative服務。具體操作,請參見快速部署Serverless應用

步驟二:為服務接入日誌採集

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇叢集資訊

  3. 在叢集資訊頁面,單擊叢集資源頁簽,然後單擊Log Service Project右側的連結。

  4. 在helloworld-go專案頁面的左下角,單擊接入資料,為helloworld-go服務接入日誌採集。

    請參見通過DaemonSet-控制台方式採集容器標準輸出

    1. 快速資料接入頁面的Docker標準輸出 - 容器的卡片上,單擊立即接入,然後根據頁面提示進入Docker標準輸出配置頁面。

      指定採集模式

    2. 選擇日誌空間配置中,確認日誌空間資訊並單擊下一步

    3. 設定建立機器組

      已在前提條件中安裝ogtail-ds日誌組件,因此請單擊使用現有機器組

      您可以選擇Kubernetes或者標準Docker採集進行日誌採集。具體操作,請參見通過Log Service採集Kubernetes容器日誌採集標準Docker容器日誌

    4. 設定機器組配置,完成後單擊下一步

    5. 資料來源設定嚮導頁面,單擊切換為編輯器配置,然後設定外掛程式配置

      本文針對helloworld-go服務,設定採集的環境變數為:"K_SERVICE": "helloworld-go"。並且通過processors分割日誌資訊,如這裡"Keys": [ "time","level", "msg" ]。外掛程式配置樣本如下。

      {
        "inputs": [
          {
            "detail": {
              "IncludeEnv": {
                "K_SERVICE": "helloworld-go"
              },
              "IncludeLabel": {},
              "ExcludeLabel": {}
            },
            "type": "service_docker_stdout"
          }
        ],
        "processors": [
          {
            "detail": {
              "KeepSource": false,
              "NoMatchError": true,
              "Keys": [
                "time",
                "level",
                "msg"
              ],
              "NoKeyError": true,
              "Regex": "(\\d+-\\d+-\\d+\\s+\\d+:\\d+:\\d+)\\s+(\\w+)\\s+(.*)",
              "SourceKey": "content"
            },
            "type": "processor_regex"
          }
        ]
      }
    6. 資料來源設定完成後,單擊下一步

    7. 查詢分析配置頁面,開啟全文索引,設定查詢欄位索引屬性。

    8. 單擊下一步進入結束頁面。

  5. 執行以下命令,訪問helloworld-go樣本服務。

    此時會產生日誌資訊。

    curl -H "Host: helloworld-go.default.example.com" http:<網關IP> # 網關IP和網域名稱請以您的實際資料為準。 

    預期輸出:

    Hello Knative!
  6. 日誌庫的目標日誌右側懸浮滑鼠至表徵圖日誌庫表徵圖上,選擇日誌庫表徵圖 > 查詢分析,可以看該logstore的日誌資訊。

    image.png

  7. 設定查詢分析。

    關於如何查詢和分析日誌,請參見查詢和分析日誌