全部產品
Search
文件中心

Container Service for Kubernetes:通過Sidecar方式採集日誌

更新時間:Sep 18, 2025

阿里雲Log ServiceSLS支援通過Sidecar模式採集ECI日誌。本文介紹如何部署Sidecar容器,以及建立Logtail配置,實現容器日誌的採集。

前提條件

  • 已建立ACK Serverless叢集。具體操作,請參見建立叢集

  • 已開通Log Service。

    登入Log Service控制台時,如果沒有開通Log Service,將收到相關提示,可根據頁面提示開通。

背景資訊

阿里雲Log ServiceSLS支援在ECI中通過Sidecar模式採集日誌,即在每個ECI執行個體中,除業務容器外,運行一個Sidecar容器作為日誌Agent,用於採集業務容器產生的日誌。

重要

Sidecar模式基於Logtail實現,Logtail必須和業務容器共用日誌目錄,業務容器將日誌寫入到共用目錄中,Logtail通過監控共用目錄中記錄檔的變化並採集日誌。

採集的日誌可以分為以下兩種:

  • 標準輸出

    採集標準輸出依賴於ECI的stdlog卷。建立Pod時可以將該卷掛載到Sidecar容器上,Sidecar可以直接以檔案的方式訪問ECI基礎組件收集的標準輸出日誌。

  • 文字檔

    採集文字檔可以通過Pod內共用的Volume實現。Pod內同一個Volume可以掛載到多個容器,Sidecar可以直接收集業務容器輸出到對應Volume內的文字檔。

步驟一:部署Sidecar容器

  1. 建立一個包含Sidecar容器的Deployment。

    YAML內容樣本如下,請根據實際情況將佔位符變數替換為實際值。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: nginx-log-sidecar-demo
      name: nginx-log-sidecar-demo
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx-log-sidecar-demo
      template:
        metadata:
          labels:
            app: nginx-log-sidecar-demo
        spec:
          containers:
            - name: nginx-log-demo
              image: registry-vpc.${RegionId}.aliyuncs.com/log-service/docker-log-test:latest
              command:
                - /bin/mock_log
              args:
                - '--log-type=nginx'
                - '--stdout=false'
                - '--stderr=true'
                - '--path=/var/log/nginx/access.log'
                - '--total-count=100000000'
                - '--logs-per-sec=100'
              imagePullPolicy: Always
              volumeMounts:
                - mountPath: /var/log/nginx
                  name: nginx-log
            - name: logtail
              image: registry-vpc.${RegionId}.aliyuncs.com/log-service/logtail:latest
              env:
                - name: ALIYUN_LOGTAIL_USER_ID
                  value: "${Aliuid}"
                - name: ALIYUN_LOGTAIL_USER_DEFINED_ID
                  value: nginx-log-sidecar
                - name: ALIYUN_LOGTAIL_CONFIG
                  value: /etc/ilogtail/conf/${RegionId}/ilogtail_config.json
                - name: aliyun_logs_machinegroup
                  value: k8s-group-app-alpine
              imagePullPolicy: Always
              volumeMounts:
                - mountPath: /var/log/nginx
                  name: nginx-log
                - mountPath: /stdlog
                  name: stdlog
          volumes:
            - emptyDir: {}        #文字檔日誌儲存到emptyDir卷
              name: nginx-log
            - name: stdlog        #標準輸出日誌儲存到stdlog卷
              flexVolume:
                driver: alicloud/pod-stdlog
  2. 擷取Pod資訊。

    kubectl get pods -l app=nginx-log-sidecar-demo

    預期返回結果如下:

    NAME                                      READY   STATUS    RESTARTS   AGE
    nginx-log-sidecar-demo-84587d9796-krn5z   2/2     Running   0          32m
    nginx-log-sidecar-demo-84587d9796-vhnld   2/2     Running   0          32m
  3. 查看日誌。

步驟二:配置Logtail採集日誌

部署Sidecar容器後,需要在Log Service控制台建立Logtail配置來採集日誌。

  1. 登入Log Service控制台

  2. 在控制台右側單擊快速接入資料卡片,然後在接入資料頁面,單擊正則 - 文本日誌

  3. 選擇日誌空間,然後單擊下一步

    請選擇Project和Logstore。如果沒有,也可直接單擊立即建立進行建立。

    說明

    系統預設會為每個K8s叢集產生一個名為k8s-log-{K8s叢集ID}的Project。

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

    • 使用情境:選擇K8s情境

    • 部署方式:選擇Sidecar

    • 選擇機器組:在源機器組地區選取項目目標機器組,將該機器組移動到應用機器組地區。如果沒有機器組,請單擊建立機器組

  5. 完成Logtail配置,然後單擊下一步

    Logtail支援通過極簡單行、正則解析、分隔字元解析、JSON解析等模式採集文本日誌。更多資訊,請參見主機文本日誌採集

    以下為配置樣本:

    • 標準輸出樣本

      採集標準輸出時,日誌路徑為stdlog卷在容器的掛載路徑。樣本參數配置如下:

      配置地區

      參數

      樣本

      全域配置

      配置名稱

      stdout

      輸入配置

      Logtail部署模式

      文本日誌採集

      檔案路徑

      /stdlog/**/*.log

      處理配置

      處理模式

      說明

      如需添加處理外掛程式,請參見資料擷取時處理(處理外掛程式)

    • 文字檔樣本

      採集文字檔時,日誌路徑為共用Volume在容器的掛載路徑。樣本參數配置如下:

      配置地區

      參數

      樣本

      全域配置

      配置名稱

      file

      輸入配置

      Logtail部署模式

      文本日誌採集

      檔案路徑

      /var/log/nginx/**/*.log

      處理配置

      處理模式

      說明

      如需添加處理外掛程式,請參見資料擷取時處理(處理外掛程式)

  6. 查詢分析配置。

    預設已設定索引,您也可以根據業務需求,重新設定索引。具體操作,請參見配置索引

  7. 查看採集的ECI日誌。

    完成上述配置後,Log ServiceSLS即可開始採集ECI日誌。下圖為標準輸出日誌採集到SLS日誌庫的效果樣本。

    Sidecar6