日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過環境變量方式采集日志

ECI支持通過容器的環境變量傳入日志相關的自定義配置。本文介紹如何通過環境變量來配置日志采集,實現通過阿里云日志服務SLS自動采集容器日志。

背景信息

阿里云日志服務SLS(Log Service)是針對日志數據的一站式服務,您無需開發就能快捷完成日志數據采集、消費、投遞以及查詢分析等功能。更多信息,請參見日志服務簡介

前提條件

已開通日志服務。登錄日志服務控制臺時,如果沒有開通日志服務,將收到相關提示,您可以根據頁面提示開通。

注意事項

  • 僅在創建ECI實例時才能通過環境變量自定義配置日志采集,更新實例時傳入的日志相關環境變量不會生效。

  • 對于自定義配置的日志Project和Logtail配置,如果后續不再使用,請及時刪除相關Project和Logtail配置,避免產生不必要的費用。

配置說明

日志相關環境變量名稱的格式前綴為aliyun_logs_{key},可配置的環境變量如下:

重要

{key}表示日志服務中Logtail采集配置的名稱,只能包含小寫字母、數字和短劃線(-)。您可以自定義配置{key},但必須保證在K8s集群內唯一。

配置對象

是否必選

環境變量名稱

說明

Logtail配置

aliyun_logs_{key}

創建Logtail配置。取值說明如下:

  • 采集標準輸出,取值如下:

    • stdout:采集正常輸出和錯誤信息。

    • stderr-only:只采集錯誤信息,不采集正常輸出。

    • stdout-only:只采集正常輸出,不采集錯誤信息。

  • 采集文本文件時,取值為容器內的文件目錄。

項目

aliyun_logs_{key}_project

指定日志服務Project。

如果不設置該環境變量,則使用默認的Project。默認的Project的名稱格式為k8s-log-<cluster-id>。

日志庫

aliyun_logs_{key}_logstore

指定日志服務Logstore。

如果不設置該環境變量,則Logstore和{key}一致。

機器組

aliyun_logs_{key}_machinegroup

指定機器組。

如果不設置該環境變量,則使用默認的機器組。

分區

aliyun_logs_{key}_shard

設置日志分區數。

  • 取值范圍為1~10。

  • 如果不設置該環境變量,則默認分區數為2。

日志保留時間

aliyun_logs_{key}_ttl

設置日志保留時間,單位為天。

  • 取值范圍為1~3650。取值為3650時,表示永久保留日志。

  • 如果不設置該環境變量,則日志默認保留90天。

標簽

aliyun_logs_{key}_tags

綁定標簽。取值格式為tag-key=tag-value,用于對日志進行標識。

配置示例

  1. 連接集群。

  2. 創建應用。

    在容器的環境變量中可以傳入日志相關配置。以Deployment為例,YAML內容示例如下,示例中容器啟動后會執行相關命令,不斷打印標準輸出和日志文件。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: sls
      name: eci-sls-demo
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: sls
      template:
        metadata:
          labels:
            app: sls
            alibabacloud.com/eci: "true" 
        spec:
          containers:
          - image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/alpine:3.5
            imagePullPolicy: Always
            args:
            - -c
            - mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /log/alpine.log; sleep 1;done
            command:
            - /bin/sh
            name: alpine
            env:
            #配置Project,如果使用默認的Project,則可以不填
            - name: aliyun_logs_test-stdout_project
              value: k8s-log-c21492
            - name: aliyun_logs_test-file_project
              value: k8s-log-c21492
            #配置機器組,如果使用默認的機器組,則可以不填
            - name: aliyun_logs_test-stdout_machinegroup
              value: k8s-group-app-alpine
            - name: aliyun_logs_test-file_machinegroup
              value: k8s-group-app-alpine
            #將標準輸出采集到名為test-stdout的Logstore,采集路徑為標準輸出stdout
            - name: aliyun_logs_test-stdout
              value: stdout
            #將/log/*.log目錄下的日志采集到名為test-file的Logstore,采集對象為/log目錄下的所有.log文件
            - name: aliyun_logs_test-file
              value: /log/*.log
            #設置日志保留時間,只對名為test-stdout的Logstore生效
            - name: aliyun_logs_test-stdout_ttl
              value: "7"
            #設置日志分區數,只對名為test-stdout的Logstore生效
            - name: aliyun_logs_test-stdout_shard
              value: "2"
            #掛載EmptyDir Volume。除標準輸出外,其它自定義目錄的日志采集必須掛載EmptyDir Volume
            volumeMounts:
            - name: volume-sls
              mountPath: /log
          volumes:
          - name: volume-sls
            emptyDir: {}

    將以上YAML保存為test-sls-env.yaml,執行以下命令創建應用。

    kubectl create -f test-sls-env.yaml
  3. 確認應用狀態。

    kubectl get pod

    預期返回:

    NAME                             READY   STATUS    RESTARTS   AGE
    eci-sls-demo-b97bbd7d6-z9twz     1/1     Running   0          2m45s
  4. 查看日志。

    1. 登錄日志服務控制臺

    2. 單擊目標Project名稱。

    3. 找到目標日志庫,單擊日志庫名稱查看日志。

      • 標準輸出

        日志env0

      • 文件日志

        日志env1