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

通過CRD采集應用日志

阿里云日志服務SLS(Log Service)是針對日志數據的一站式服務,讓您無需開發就能快捷完成日志數據采集、消費、投遞以及查詢分析等功能。ACK Serverless集群提供了日志服務托管功能。本文介紹如何在ACK Serverless集群中配置CRD并進行應用日志采集管理。

前提條件

注意事項

通過SLS CRD方式開啟日志采集僅對后續創建的ECI Pod生效。如果想要采集存量Pod的日志,需要對存量Pod進行一次滾動發布。

創建日志采集配置CRD

在集群內部署alibaba-log-controller組件后,您可以定義AliyunLogConfig CRD資源來創建Logtail配置。

  1. 登錄容器服務管理控制臺

  2. 集群頁面,單擊目標集群名稱,進入集群管理頁面。

  3. 在集群中安裝alibaba-log-controller組件。

    1. 在集群管理頁左側導航欄,選擇運維管理>組件管理

    2. 單擊日志與監控頁簽,找到alibaba-log-controller卡片,然后單擊安裝

    3. 在彈出的對話框中,單擊確定

      安裝完成后,alibaba-log-controller卡片右上角會顯示已安裝。

  4. 創建日志采集配置CRD。

    在集群內部署alibaba-log-controller組件后,您可以日志采集配置CRD(AliyunLogConfig CRD)來創建Logtail配置。

    說明

    創建日志采集配置CRD后,您可以在日志服務控制臺查看對應生成的日志庫及logtail配置。如果后續需要更新配置,可以直接編輯CRD,系統將自動同步配置到日志服務SLS。

    1. 連接集群。

    2. 參考YAML示例編寫日志采集配置CRD的YAML配置文件。

      采集的日志分為標準輸出(包括錯誤輸出)和文件日志兩種。詳細參數說明請參見Logtail配置

      標準輸出CRD YAML示例

      將以下內容保存為log-stdout.yaml。

      apiVersion: log.alibabacloud.com/v1alpha1      
      kind: AliyunLogConfig                         
      metadata:
        name: test-stdout               #資源名,在當前Kubernetes集群內唯一。
      spec:
        project: k8s-log-c326bc86****   #可選配置,Project名稱,可自定義,推薦使用[k8s-log-集群ID]命名
        logstore: test-stdout           #必選配置,Logstore名稱,如果不存在,日志服務會自動創建                  
        shardCount: 2                   #可選配置,Shard數量,默認為2,取值范圍為1~10                         
        lifeCycle: 90                   #可選配置,Logstore中日志保留時間,單位為天,該參數值僅在新建Logstore時生效。默認為90,取值范圍為1~3650。3650表示永久保留
        logtailConfig:                  #Logtail配置
          inputType: plugin             #采集的數據源類型,file表示文件日志,plugin表示標準輸出                                
          configName: test-stdout       #Logtail配置的名稱,必須與資源名(metadata.name)相同 
          inputDetail:                  #Logtail配置的詳細信息
            plugin:
              inputs:
                - type: service_docker_stdout
                  detail:
                    Stdout: true
                    Stderr: true
      #              IncludeEnv:
      #                aliyun_logs_test-stdout: "stdout"

      文件日志CRD YAML示例

      將以下內容保存為log-file.yaml

      apiVersion: log.alibabacloud.com/v1alpha1
      kind: AliyunLogConfig
      metadata:
        name: test-file                  #資源名,在當前Kubernetes集群內唯一。
      spec:
        project: k8s-log-c326bc86****    #可選配置,Project名稱,可自定義,推薦使用[k8s-log-集群ID]命名
        logstore: test-file              #必選配置,Logstore名稱,如果不存在,日志服務會自動創建   
        logtailConfig:                   #Logtail配置
          inputType: file                #采集的數據源類型,file表示文件日志,plugin表示標準輸出
          configName: test-file          #Logtail配置的名稱,必須與資源名(metadata.name)相同 
          inputDetail:                   #Logtail配置的詳細信息
            logType: common_reg_log      #對于分隔符類型的日志,logType可以設置為json_log
            logPath: /log/               #日志文件夾
            filePattern: "*.log"         #文件名, 支持通配符,例如log_*.log
            dockerFile: true             #采集容器內的文件,dockerFile設置為true
            #用作解析時間的key''
            #timeKey: 'time'
            #時間解析方式''
            #timeFormat: '%Y-%m-%dT%H:%M:%S'
            #避免不同采集配置中存在相同采集目錄而導致沖突
            #dockerIncludeEnv:
            #  aliyun_logs_test-file: "/log/*.log"
    3. 執行以下命令創建日志采集配置CRD。

      kubectl create -f log-stdout.yaml
      kubectl create -f log-file.yaml

創建應用以測試日志采集

創建日志采集配置CRD后,日志服務會自動采集后續創建的業務Pod的日志。

  1. 連接集群。

  2. 創建應用。

    以Deployment為例,YAML內容示例如下,示例中容器啟動后會執行相關命令,不斷打印標準輸出和日志文件。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: eci-sls-demo
      labels:
        app: sls
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: sls
      template:
        metadata:
          name: sls-test
          labels:
            app: sls
            alibabacloud.com/eci: "true" 
        spec:
          containers:
          - args:
            - -c
            - mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /log/busy.log; sleep 1;done
            command:
            - /bin/sh
            image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/busybox:1.30
            imagePullPolicy: Always
            name: busybox

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

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

    kubetcl get pod

    預期返回:

    NAME                            READY   STATUS    RESTARTS   AGE
    eci-sls-demo-7bf8849b9f-cgpbn   1/1     Running   0          2m14s
  4. 查看日志。

    1. 登錄日志服務控制臺

    2. 單擊目標Projcect名稱。

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

      • 標準輸出

        日志crd0
      • 文件日志

        日志crd1

關閉日志采集

創建日志采集配置CRD后,系統會自動采集所有符合條件的Pod的日志。對于一些不想要采集日志的Pod,您可以配置Annotation(k8s.aliyun.com/eci-sls-enable: "false")來關閉日志采集,避免系統自動創建Logtail而造成資源浪費。

重要
  • Annotation請添加在Pod的metadata下,例如:創建Deployment時,Annotation需添加在spec>template>metadata下。

  • 僅支持在創建ECI Pod時添加ECI相關Annotation來生效ECI功能,更新ECI Pod時添加或者修改ECI相關Annotation均不會生效。

配置示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: eci-sls-demo2
  labels:
    app: sls
spec:
  replicas: 1
  selector:
    matchLabels:
      app: sls
  template:
    metadata:
      name: sls-test
      labels:
        app: sls
        alibabacloud.com/eci: "true"
      annotations:
        k8s.aliyun.com/eci-sls-enable: "false"    #關閉日志采集
    spec:
      containers:
      - args:
        - -c
        - mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /log/busy.log; sleep 1;
          done
        command:
        - /bin/sh
        image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
        imagePullPolicy: Always
        name: busybox