本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

【推薦】使用AliyunPipelineConfig管理採集配置

更新時間:2024-12-20 19:02

AliyunPipelineConfig是Log Service自訂的一類CRD,您可以通過配置YAML檔案建立對應的CR,從而管理iLogtail採集配置。本文主要介紹通過AliyunPipelineConfig管理iLogtail採集配置的操作步驟。

前提條件

配置步驟

重要

alibaba-log-controller定期會同步AliyunPipelineConfig所定義的iLogtail採集配置到服務端,所以對於通過CR建立的iLogtail採集配置,其修改只能通過更新相應的CR來實現,在Log Service控制台配置的Logtail採集配置會被CR覆蓋,建議只使用一種方法管理Logtail採集配置。

建立iLogtail採集配置

您需要建立AliyunPipelineConfig的CR,alibaba-log-controller會根據CR自動建立iLogtail採集配置。建立完成後,系統自動應用該iLogtail採集配置。

建立步驟:

  1. 擷取叢集KubeConfig並通過kubectl工具串連叢集

  2. 執行如下命令建立cube.yaml檔案,請根據實際情況替換檔案名稱。

vim cube.yaml
  1. 在YAML檔案中輸入如下指令碼,並根據實際情況設定其中的參數。CR結構的詳細參數請參見CR參數說明

apiVersion: telemetry.alibabacloud.com/v1alpha1 # 使用預設值,無需修改。
kind: ClusterAliyunPipelineConfig               # 使用預設值,無需修改。
metadata:
  name: test-config                             # 設定資源名,在當前Kubernetes叢集內唯一。
spec:
  project:                                      # 設定目標Project名稱。
    name: k8s-your-project                      
  config:                                       # 設定iLogtail採集配置。
    inputs:                                     # 設定iLogtail採集配置裡的輸入外掛程式
      ...
    flushers:                                   # 設定iLogtail採集配置裡的輸出外掛程式
      ...
  1. 執行如下命令建立AliyunPipelineConfig的CR,alibaba-log-controller會根據該CR自動建立iLogtail採集配置,從而使iLogtail採集配置生效。iLogtail採集配置生效後,Logtail開始採集資料,並發送到Log Service中。cube.yaml為檔案名稱,請根據實際情況替換。

kubectl apply -f cube.yaml

查看iLogtail採集配置

  • 查看當前Kubernetes叢集中所有由AliyunPipelineConfig建立的iLogtail採集配置。

    您可以執行以下命令,查看所有由AliyunPipelineConfig建立的iLogtail採集配置。

    kubectl get clusteraliyunpipelineconfigs
  • 查看由AliyunPipelineConfig建立的iLogtail採集配置的詳細資料和狀態。

    您可以執行以下命令進行查看。其中,<config_name>AliyunPipelineConfig的名稱,請根據實際情況替換。

    kubectl get clusteraliyunpipelineconfigs <config_name> -o yaml

    返回結果參考如下所示,可以根據status查看iLogtail採集配置的應用情況。

    apiVersion: telemetry.alibabacloud.com/v1alpha1
    kind: ClusterAliyunPipelineConfig
    metadata:
      creationTimestamp: null
      finalizers:
        - finalizer.pipeline.alibabacloud.com
      name: example-config
    # 預期的配置
    spec:
      config:
        flushers:
          - Endpoint: cn-hangzhou-intranet.log.aliyuncs.com
            Logstore: example-config-logstore
            Region: cn-hangzhou
            TelemetryType: logs
            Type: flusher_sls
        inputs:
          - FilePaths:
              - /var/log/*.log
            Type: input_file
        processors:
          - SourceKey: content
            Type: processor_parse_json_native
      logstores:
        - name: example-config-logstore
      project:
        name: k8s-log-clusterid
    # 應用狀態
    status:
      # CR 是否應用成功
      success: true
      # CR 當前的狀態資訊
      message: success
      # 當前 status 的更新時間
      lastUpdateTime: "2024-06-13T12:02:19.133422+08:00"
      # 上次成功應用的配置資訊,該配置資訊為填充預設值後實際生效的配置
      lastAppliedConfig:
        # 上次成功應用的時間
        appliedTime: "2024-06-13T12:02:19.133422+08:00"
        # 上次成功應用的配置詳情
        config:
          configTags:
            sls.crd.cluster: clusterid
            sls.crd.kind: ClusterAliyunPipelineConfig
            sls.logtail.channel: CRD
          flushers:
            - Endpoint: cn-hangzhou-intranet.log.aliyuncs.com
              Logstore: example-config-logstore
              Region: cn-hangzhou
              TelemetryType: logs
              Type: flusher_sls
          global: null
          inputs:
            - FilePaths:
                - /var/log/*.log
              Type: input_file
          name: example-config
          processors:
            - SourceKey: content
              Type: processor_parse_json_native
        logstores:
          - appendMeta: true
            autoSplit: true
            encryptConf: {}
            maxSplitShard: 64
            name: example-config-logstore
            shardCount: 2
            ttl: 30
        machineGroups:
          - name: k8s-group-clusterid
        project:
          description: k8s log project, created by alibaba cloud log controller
          endpoint: cn-hangzhou.log.aliyuncs.com
          name: k8s-log-clusterid

更新iLogtail採集配置

您只需要修改已有的AliyunPipelineConfig的YAML檔案並重新應用,就可以更新iLogtail採集配置。

  1. 擷取叢集KubeConfig並通過kubectl工具串連叢集

  2. 編輯已有的AliyunPipelineConfig檔案。cube.yaml為檔案名稱,請根據實際情況替換。

vim cube.yaml
  1. 在YAML檔案中修改配置參數。

  2. 執行如下命令使iLogtail採集配置生效。cube.yaml為檔案名稱,請根據實際情況替換。

kubectl apply -f cube.yaml

刪除iLogtail採集配置

如果您要刪除iLogtail採集配置,只需刪除對應的CR即可。其中,<config_name>AliyunPipelineConfig的名稱,請根據實際情況替換。

kubectl delete clusteraliyunpipelineconfigs <config_name>
重要
  • 在iLogtail採集配置成功刪除後,CR會釋放。

  • 如果iLogtail採集配置刪除失敗,CR不會被釋放,可以查看CR的status中的報錯資訊。如果想忽略報錯直接刪除CR,可以手動刪除CR metadata中的finalizers欄位。

CR參數說明

  • ApiVersion

    固定為telemetry.alibabacloud.com/v1alpha1

  • Kind

    固定為ClusterAliyunPipelineConfig

  • Metadata

    參數

    資料類型

    是否必填

    說明

    參數

    資料類型

    是否必填

    說明

    name

    string

    CR的唯一標識,同時也是建立出的iLogtail採集配置的名字。

    注意:

    該參數會作為iLogtail採集配置名稱使用,在所屬Project內唯一,且建立成功後無法修改。需要滿足以下條件:

    只能包括小寫字母、數字、-和_。

    必須以小寫字母或數字開頭和結尾。

    長度必須在2~128字元之間。

  • Spec

    參數

    資料類型

    是否必填

    說明

    參數

    資料類型

    是否必填

    說明

    project

    PipelineProject

    目標Project的資訊。

    說明

    project欄位在CR建立後不允許更改,如需切換project請建立新的CR。

    config

    PiplineConfig

    定義iLogtail 採集配置詳情。

    logstores

    PipelineLogstore

    需要建立的Logstore列表,支援建立多個Logstore。

    說明
    • name以外的所有參數僅在建立logstore時生效。

    • 該列表並不指定iLogtail採集配置的發送目標,只會按需建立Logstore。iLogtail採集配置的發送目標,由config中的flusher外掛程式決定。如果 iLogtail 採集配置中指定的目標 Logstore 已存在,此處可不填寫。

    • 該列表只可以在logstores列表中新增/刪除logstore定義,不支援修改已定義的Logstore。

    machineGroups

    PipelineMachineGroup

    需要與iLogtail採集配置關聯的機器組列表。安裝logtail-ds組件時,Log Service會自動建立名為k8s-group-${your_k8s_cluster_id}的機器組,預設值為僅包含該機器組的列表。

    說明

    alibaba-log-controller會保證iLogtail採集配置關聯的機器組嚴格等於machineGroups指定的機器組,不在machineGroups中的機器組會被解除關聯。

    enableUpgradeOverride

    bool

    預設值為false。當叢集中存在AliyunLogConfig定義的採集配置、且與當前的AliyunPipelineConfig指向同一個iLogtail採集配置時,可以:

    • 開啟此開關:alibaba-log-controller會對已有的AliyunLogConfig定義的採集配置進行覆蓋升級。

    • 不開啟此開關:採集配置存在衝突,AliyunPipelineConfig應用失敗。

    說明
    • 指向同一個iLogtail採集配置的定義:

      • 目標project相同。

        AliyunLogConfig中為叢集預設的project或spec.project。AliyunPipelineConfig中為spec.project.name。

      • 目標iLogtail採集配置名相同。

        AliyunLogConfig中為spec.logtailConfig.configName。AliyunPipelineConfig中為metadata.Name。

    • 覆蓋升級的定義:

      首先,AliyunPipelineConfig生效,並更新iLogtail採集配置。

      然後,如果AliyunPipelineConfig成功生效,會刪除叢集內指向同一個iLogtail採集配置的AliyunLogConfig。

      最終,覆蓋更新完成。

    • PipelineProject

      說明

      project欄位在CR建立後不允許更改,如需切換project請建立新的CR。

      參數

      資料類型

      是否必填

      說明

      參數

      資料類型

      是否必填

      說明

      name

      string

      目標 Project 的名稱。

      說明

      如果您所指定的Project不存在,Log Service會自動建立。

      description

      string

      目標 Project 的描述。

      說明

      該參數僅在建立Project時生效。

      endpoint

      string

      目標Project的服務入口。更多資訊,請參見服務入口預設為當前叢集所在的地區,如果目標 Project 與叢集不在同一地區,需要配置該參數。

      說明

      該參數僅控制採集配置所在的region,iLogtail資料投遞到該region需要另外配置iLogtail的config_server_address、data_server_list,參考Logtail設定檔和記錄檔案

      uid

      string

      目標帳號的uid。預設使用當前叢集所屬帳號。如果需要跨帳號投遞日誌,請配置該參數,並在 alibaba-log-controller 的環境變數中配置ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}}

      說明

      該參數僅控制project所屬的帳號,iLogtail資料投遞到該帳號需要另外配置iLogtail的使用者標識,參考配置使用者標識

    • PiplineConfig

      配置中的各項參數要求與CreateLogtailPipelineConfig介面一致。configName會使用CR的metadata.Name,不可單獨配置。

      參數

      資料類型

      是否必填

      說明

      參數

      資料類型

      是否必填

      說明

      sample

      string

      日誌範例。支援多條日誌,總長度不超過1500位元組。

      global

      object

      全域配置。詳細資料,請參見請求參數

      inputs

      object列表

      輸入外掛程式列表。詳細資料與外掛程式參數,參見請求參數

      說明

      目前,只允許配置 1 個輸入外掛程式。

      processors

      object列表

      處理外掛程式列表。詳細資料與外掛程式參數,請參見請求參數

      aggregators

      object列表

      彙總外掛程式列表。詳細資料與外掛程式參數,請參見請求參數

      flushers

      object列表

      輸出外掛程式列表。詳細資料與外掛程式參數,請參見請求參數

      說明

      目前,只允許存在 1 個 flusher_sls 外掛程式。

      configTags

      map

      用於標記iLogtail採集配置的自訂標籤。

    • PipelineLogstore

      說明

      name以外的所有參數僅在建立logstore時生效。

      參數

      資料類型

      是否必填

      說明

      參數

      資料類型

      是否必填

      說明

      name

      string

      需要建立的Logstore的名稱。

      queryMode

      string

      目標Logstore的類型。更多資訊,請參見Logstore類型。預設值為standard,可選值:

      • query:查詢型Logstore。

      • standard:標準型Logstore。

      ttl

      int

      目標Logstore的資料存放區的時間(以天為單位)。更多資訊,請參見資料儲存時間。預設值為30,取值範圍為1~3650,如果配置為3650,表示永久儲存。

      hotTtl

      int

      1. 目標Logstore的熱資料存放區的時間(以天為單位)。更多資訊,請參見智能儲存分層。預設值為0,需要小於ttl且大於等於 7。

      shardCount

      int

      目標Logstore的Shard數量。更多資訊,請參見管理Logstore。預設值為2,取值範圍為1~100。

      maxSplitShard

      int

      目標 Logstore 的最大自動分裂Shard數量。更多資訊,請參見自動分裂Shard。預設值為64,取值範圍為1~256。

      autoSplit

      bool

      目標Logstore是否開啟自動拆分Shard功能。更多資訊,請參見自動分裂Shard。預設值為true。

      telemetryType

      string

      目標 Logstore 的可觀測資料類型。更多資訊,請參見telemetryType。預設值為None,可選值:

      • None:日誌類型。

      • Metrics:Metrics 類型。

      appendMeta

      bool

      目標Logstore是否開通記錄外網IP功能。更多資訊,請參見記錄外網IP。預設值為true。

      enableTracking

      bool

      目標Logstore是否啟用Web Tracking。更多資訊,請參見WebTracking。預設值為false。

      encryptConf

      object

      目標Logstore的加密配置資訊。更多資訊,請參見通用資料結構。預設值為空白。

      meteringMode

      string

      目標Logstore的計費模式。更多資訊,請參見計費模式。預設值為空白,可選值:

      • ChargeByFunction:按功能計費

      • ChargeByDataIngest:按寫入量計費。

      說明

      如果Logstore的queryMode為query,只支援按功能計費。

      如果帳號未開通寫入量計費,無法配置為ChargeByDataIngest。

    • PipelineMachineGroup

      參數

      資料類型

      是否必填

      說明

      參數

      資料類型

      是否必填

      說明

      name

      string

      需要與iLogtail採集配置關聯的機器組名。

      說明

      如果機器組不存在,alibaba-log-controller會自動建立同名的標識型機器組,標識與機器組名相同。詳細資料,參見建立使用者自訂標識機器組。該行為僅在建立機器組時生效。

  • 本頁導讀 (1, M)
  • 前提條件
  • 配置步驟
  • 建立iLogtail採集配置
  • 查看iLogtail採集配置
  • 更新iLogtail採集配置
  • 刪除iLogtail採集配置
  • CR參數說明
文檔反饋
phone 聯絡我們