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

通過Pod環境變量配置應用日志采集

容器計算服務 ACS(Container Compute Service)集成了阿里云日志服務SLS。您可在創建ACS集群時啟用日志服務,快速采集集群內的容器日志,包括容器的標準輸出以及容器內的文本文件。本文介紹如何在ACS集群中通過Pod環境變量采集應用日志。

步驟一:啟用日志服務組件

您可以在創建ACS集群時勾選使用日志服務來自動啟用日志服務組件。若創建時未勾選,您也可以通過以下步驟為已有集群啟用日志服務組件。

  1. 登錄容器計算服務控制臺,在左側導航欄選擇集群。

  2. 集群頁面,單擊目標集群ID,然后在左側導航欄,選擇運維管理組件管理

  3. 日志與監控區域找到alibaba-log-controller。單擊安裝,并在安裝組件對話框中單擊確定。

重要

如果您已安裝的alibaba-log-controller組件為舊版本,可以對組件進行升級。升級組件后,集群會重置組件參數。如果您曾自定義alibaba-log-controller的配置和環境變量,參數將被覆蓋,請重新配置。

步驟二:創建應用時配置日志服務

您可以在創建應用的同時配置日志服務,從而對容器的日志進行采集。目前支持通過控制臺和YAML模板兩種方式進行配置。

通過控制臺向導創建應用并配置日志服務

  1. 登錄容器計算服務控制臺,在左側導航欄選擇集群

  2. 集群頁面,單擊目標集群ID,然后在左側導航欄,選擇工作負載 > 無狀態

  3. 無狀態頁面上方的命名空間下拉框中設置命名空間,然后單擊頁面右上角的使用鏡像創建。

    說明

    此處是以無狀態應用為例子,對于其它類型的工作負載(例如:有狀態)配置方式相同。

  4. 應用基本信息頁簽,設置應用名稱、副本數量類型,單擊下一步,進入容器配置頁面。

    說明

    以下僅介紹日志服務相關的配置。關于其他的應用配置項,請參見創建無狀態工作負載Deployment。

  5. 日志配置區域,配置日志相關信息。

    1. 設置采集配置。

      單擊+圖標創建新的采集配置,每個采集配置由日志庫容器內日志路徑兩項構成。

      • 日志庫:配置Logstore名稱,用于指定所采集日志存儲于該Logstore。如果該Logstore不存在,ACS將會自動為您在集群關聯的日志服務Project下創建相應的Logstore。

        說明

        新創建的Logstore中的日志默認保存時間為180天。

      • 容器內日志路徑:指定希望采集的日志所在的路徑,例如使用/usr/local/tomcat/logs/catalina.*.log來采集Tomcat的文本日志。

        說明

        指定為stdout時,表示采集容器的標準輸出和標準錯誤輸出。

        每一項采集配置都會被自動創建為對應Logstore的一個采集配置,默認采用極簡模式(按行)進行采集。

        采集配置

    2. 設置自定義Tag

      單擊+圖標創建新的自定義Tag,每一個自定義Tag都是一個鍵值對,會拼接到所采集到的日志中,您可以使用它來為容器的日志數據進行標記,例如版本號。

      自定義tag

  6. 當完成所有配置后,可單擊右上角的下一步進入后續流程。

    后續操作,可參見創建無狀態工作負載Deployment

通過YAML模板創建

  1. 登錄容器計算服務控制臺,在左側導航欄選擇集群。

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇工作負載 > 無狀態。

  3. 無狀態頁面上方的命名空間下拉框中設置命名空間,然后單擊頁面右上角的使用YAML創建資源。

    說明

    此處是以無狀態應用為例子,對于其它類型的工作負載(例如:有狀態)配置方式相同。

  4. 配置YAML文件。

    YAML模板的語法同Kubernetes語法,但是為了給容器指定采集配置,需要使用env來為容器增加采集配置自定義Tag。以下是一個簡單的Pod示例:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-demo
    spec:
      containers:
      - name: my-demo-app
        image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
        env:   # 配置環境變量
        - name: aliyun_logs_log-stdout
          value: stdout
        - name: aliyun_logs_log-varlog
          value: /var/log/*.log
        - name: aliyun_logs_mytag1_tags
          value: tag1=v1
        command: ["sh", "-c"]
        args: ["echo 'Starting my demo app'; sleep 3600"]

    根據您的需求按照以下順序進行配置。

    說明

    如果您有更多的日志采集需求,請參見步驟三:日志采集的高級參數設置

    1. 通過環境變量來創建您的采集配置自定義Tag,所有與配置相關的環境變量都采用aliyun_logs_作為前綴。

      • 創建采集配置的規則如下:

        apiVersion: v1
        kind: Pod
        metadata:
          name: my-demo
        spec:
          containers:
          - name: my-demo-app
            image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
            env:
            - name: aliyun_logs_log-stdout
              value: stdout
            - name: aliyun_logs_log-varlog
              value: /var/log/*.log    
            command: ["sh", "-c"]
            args: ["echo 'Starting my demo app'; sleep 3600"]                    

        示例中創建了兩個采集配置,格式為aliyun_logs_{key},對應的{key}分別為log-stdoutlog-varlog

        • aliyun_logs_log-stdout:該env表示創建一個名為log-stdoutLogstore,日志采集路徑為stdout的配置,對應的日志服務采集配置名稱也是log-stdout,目的是將容器的標準輸出采集到log-stdout這個Logstore中。

        • aliyun_logs_log-varlog:該env表示創建一個Logstore名為log-varlog,日志采集路徑為/var/log/*.log的配置,對應的日志服務采集配置名稱也是log-varlog,目的是將容器的/var/log/*.log文件內容采集到log-varlog這個Logstore中。

      • 創建自定義Tag的規則如下:

        apiVersion: v1
        kind: Pod
        metadata:
          name: my-demo
        spec:
          containers:
          - name: my-demo-app
            image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
            env:
            - name: aliyun_logs_mytag1_tags
              value: tag1=v1           
            command: ["sh", "-c"]
            args: ["echo 'Starting my demo app'; sleep 3600"]            

        配置Tag后,當采集到該容器的日志時,會自動附加對應的字段到日志服務。其中mytag1任意不包含'_'的名稱。

    2. 如果您的采集配置中指定了非stdout的采集路徑,需要在此部分創建相應的volumeMounts

      示例中采集配置添加了對/var/log/*.log的采集,因此相應地添加了/var/log的volumeMounts

  5. 當YAML編寫完成后,單擊創建,即可將相應的配置交由ACS集群執行。

步驟三:日志采集的高級參數設置

通過容器環境變量配置采集支持多種配置參數。您可根據實際需求設置高級參數,以滿足日志采集的特殊需求。

環境變量名

說明

示例

注意事項

aliyun_logs_{key}

  • 必選項。{key}只能包含小寫字母、數字和-。

  • 若不存在aliyun_logs_{key}_logstore,則默認創建并采集到名為{key}的logstore。

  • 當值為stdout時,時,表示采集容器的標準輸出;其他值為容器內的日志路徑。

  • - name: aliyun_logs_catalina
    
      value: stdout
  • - name: aliyun_logs_access-log
    
      value: /var/log/nginx/access.log
  • 默認采集方式為極簡模式。如需解析日志內容,建議使用日志服務控制臺。

  • {key}表示日志服務組件采集配置的名稱,需保持在K8s集群內唯一。

aliyun_logs_{key}_tags

可選。值為{tag-key}={tag-value}類型,用于對日志進行標識。

- name: aliyun_logs_catalina_tags

  value: app=catalina

不涉及。

aliyun_logs_{key}_project

可選。值為指定的日志服務Project。當不存在該環境變量時為您安裝時所選的Project。

- name: aliyun_logs_catalina_project

  value: my-k8s-project

Project需與您的日志服務組件工作所在Region一致。

aliyun_logs_{key}_logstore

可選。值為指定的日志服務Logstore。當不存在該環境變量時Logstore和{key}一致。

- name: aliyun_logs_catalina_logstore

  value: my-logstore

不涉及。

aliyun_logs_{key}_shard

可選。值為創建Logstore時的shard數,取值范圍為[1 , 10]。當不存在該環境變量時值為2。

說明

若logstore已經存在,則該參數不生效。

- name: aliyun_logs_catalina_shard

  value: 4

不涉及。

aliyun_logs_{key}_ttl

可選。值為指定的日志保存時間,取值范圍為[1 , 3650]。

  • 當取值為3650時,指定日志的保存時間為永久保存。

  • 當不存在該環境變量時,默認指定日志的保存時間為90天。

說明

若Logstore已經存在,則該參數不生效。

- name: aliyun_logs_catalina_ttl

  value: 3650

不涉及。

aliyun_logs_{key}_machinegroup

可選。值為應用的機器組。當不存在該環境變量時與安裝日志服務組件的默認機器組一致。關于該參數的詳細使用方法,請參見下文的特殊場景二:將不同應用數據采集到不同的Project

- name: aliyun_logs_catalina_machinegroup

  value: my-machine-group

不涉及。

aliyun_logs_{key}_logstoremode

可選。值為指定的日志服務Logstore的類型,不指定該參數的話,默認值為standard,取值:

說明

若Logstore已經存在,則該參數不生效。

  • standard:支持日志服務一站式數據分析功能,適用于實時監控、交互式分析以及構建完整的可觀測性系統等場景。

  • query:支持高性能查詢,索引流量費用約為standard的一半,但不支持SQL分析,適用于數據量大、存儲周期長(周、月級別以上)、無日志分析的場景。

  • - name: aliyun_logs_catalina_logstoremode
      value: standard 
  • - name: aliyun_logs_catalina_logstoremode
      value: query 

不涉及。

  • 特殊場景一:將多個應用數據采集到同一Logstore

    如果您需要將多個應用數據采集到同一Logstore,可以設置 aliyun_logs_{key}_logstore參數,例如以下配置將2個應用的stdout采集到stdout-logstore中。

    示例中應用1的{key}app1-stdout,應用2的{key}app2-stdout。

    應用1設置的環境變量為:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-demo
    spec:
      containers:
      - name: my-demo-app
        image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
        env:    # 配置環境變量
        - name: aliyun_logs_app1-stdout
          value: stdout
        - name: aliyun_logs_app1-stdout_logstore
          value: stdout-logstore
        command: ["sh", "-c"]
        args: ["echo 'Starting my demo app'; sleep 3600"]

    應用2設置的環境變量為:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-demo
    spec:
      containers:
      - name: my-demo-app
        image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
        env:	# 配置環境變量
        - name: aliyun_logs_app2-stdout
          value: stdout
        - name: aliyun_logs_app2-stdout_logstore
          value: stdout-logstore
        command: ["sh", "-c"]
        args: ["echo 'Starting my demo app'; sleep 3600"]
  • 特殊場景二:將不同應用數據采集到不同的Project

    如果您需要將不同應用的數據采集到多個Project中,您需要進行以下操作:

    1. 在每個Project中創建一個機器組,選擇自定義標識,標識名為k8s-group-{cluster-id},其中{cluster-id}為您的集群ID,機器組名稱可以自定義配置。

    2. 每個應用的環境變量中配置project、logstore、machinegroup信息,其中機器組名稱為您在上一步創建的機器組名。

      如下示例中應用1的{key}app1-stdout,應用2的{key}app2-stdout。其中如果兩個應用在同一個K8s集群中,對應machinegroup可以使用同一個machinegroup。

      應用1設置的環境變量為:

      apiVersion: v1
      kind: Pod
      metadata:
        name: my-demo
      spec:
        containers:
        - name: my-demo-app
          image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
          env:	# 配置環境變量
          - name: aliyun_logs_app1-stdout
            value: stdout
          - name: aliyun_logs_app1-stdout_project
            value: app1-project
          - name: aliyun_logs_app1-stdout_logstore
            value: app1-logstore
          - name: aliyun_logs_app1-stdout_machinegroup
            value: app1-machine-group
          command: ["sh", "-c"]
          args: ["echo 'Starting my demo app'; sleep 3600"]

      應用2設置的環境變量為:

      apiVersion: v1
      kind: Pod
      metadata:
        name: my-demo
      spec:
        containers:
        - name: my-demo-app
          image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
          env:	# 應用2 配置環境變量
          - name: aliyun_logs_app2-stdout
            value: stdout
          - name: aliyun_logs_app2-stdout_project
            value: app2-project
          - name: aliyun_logs_app2-stdout_logstore
            value: app2-logstore
          - name: aliyun_logs_app2-stdout_machinegroup
            value: app1-machine-group
          command: ["sh", "-c"]
          args: ["echo 'Starting my demo app'; sleep 3600"]

步驟四:通過日志服務控制臺查看日志

本例中查看通過控制臺向導創建的應用日志。完成配置后,應用日志已被采集并存儲到日志服務中,您可以在日志服務控制臺查看容器日志。

  1. 登錄日志服務控制臺

  2. Project列表區域選擇ACS集群對應的Project(默認為k8s-log-{ACS集群ID}),進入日志庫列表頁簽。

  3. 在列表中找到相應的Logstore(采集配置中指定),將鼠標懸浮在相應的Logstore名稱的右側,單擊button圖標,并單擊查詢分析。

    本例中,在日志查詢頁面,可以查看應用的標準輸出日志和容器內文本日志,且自定義tag附加到日志字段中。

更多信息