全部產品
Search
文件中心

Simple Log Service:使用AliyunLogConfig管理採集配置

更新時間:Oct 25, 2024

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

前提條件

  • 已安裝iLogtail組件。具體操作,請參見安裝Logtail組件(阿里雲Kubernetes叢集)

  • 目標容器持續產生日誌。

    重要

    iLogtail只採集增量日誌。如果下發iLogtail配置後,記錄檔無更新,則iLogtail不會採集該檔案中的日誌。更多資訊,請參見讀取日誌

使用限制

通過AliyunLogConfig CR建立的配置,在控制台上對其修改不會同步到CR中。因此,如需修改由AliyunLogConfig CR建立的配置內容,只能修改CR資源,不能直接在控制台操作,避免配置不一致。

配置步驟

建立iLogtail採集配置

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

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

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

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

apiVersion: log.alibabacloud.com/v1alpha1      # 使用預設值,無需修改。
kind: AliyunLogConfig                          # 使用預設值,無需修改。
metadata:
  name: test-config                            # 設定資源名,在當前Kubernetes叢集內唯一。
spec:
  logstore: k8s-stdout                         # 設定Logstore名稱。如果您所指定的Logstore不存在,Log Service會自動建立。
  logtailConfig:                               # 設定iLogtail採集配置。
    inputType: plugin                          # 設定採集的資料來源類型。
    configName: test-config                    # 設定iLogtail採集配置的名稱。
    inputDetail:                               # 設定iLogtail採集配置的詳細資料。
      ...
  1. 執行如下命令建立AliyunLogConfig的CR,會根據該CR自動建立iLogtail採集配置,從而使iLogtail採集配置生效。iLogtail採集配置生效後,Logtail開始採集資料,並發送到Log Service中。cube.yaml為檔案名稱,請根據實際情況替換。

kubectl apply -f cube.yaml

查看iLogtail採集配置

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

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

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

    您可以執行kubectl get aliyunlogconfigs <config_name> -o yaml命令進行查看。其中,<config_name>AliyunLogConfig的名稱,請根據實際情況替換。

    返回結果參考如下所示,執行結果中的status欄位和statusCode欄位表示iLogtail採集配置的狀態。

    • 如果statusCode欄位的值為200,表示應用iLogtail採集配置成功。

    • 如果statusCode欄位的值為非200,表示應用iLogtail採集配置失敗。

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      name: example-k8s-file
      namespace: kube-system
    spec:
      project: k8s-log-test
      logstore: k8s-file
      logtailConfig:
        inputType: file
        configName: example-k8s-file
        inputDetail:
          logType: common_reg_log
          logPath: /data/logs/app_1
          filePattern: test.LOG
          dockerFile: true
    status:
      status: OK
      statusCode: 200

更新iLogtail採集配置

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

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

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

vim cube.yaml
  1. 在YAML檔案中修改配置參數。關於詳細參數配置,請參見CR參數說明

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

kubectl apply -f cube.yaml

刪除iLogtail採集配置

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

kubectl delete aliyunlogconfigs <config_name>
說明

CR刪除後,iLogtail採集配置也會自動被刪除。

CR參數說明

  • ApiVersion

    固定為log.alibabacloud.com/v1alpha1

  • Kind

    固定為AliyunLogConfig

  • Metadata

    參數

    資料類型

    是否必填

    說明

    name

    string

    CR 的唯一標識,建議與Spec.logtailConfig.configName相同。

    namespace

    string

    CR 所在的命名空間。

  • Spec

    參數

    資料類型

    是否必填

    說明

    project

    string

    目標 Project 名稱。叢集預設配置的 Project,alibaba-log-controller 環境變數 ALICLOUD_LOG_PROJECT 的值。

    說明

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

    logstore

    string

    目標 Logstore 名稱。

    說明
    • 如果您所指定的Logstore不存在,Log Service會自動建立。

    • 如果您所指定的Logstore已存在,後續所有Logstore相關的參數將不會生效。

    logtailConfig

    AliyunLogConfigDetail

    iLogtail採集配置詳情。

    uid

    string

    目標帳號的 uid。如果是跨帳號投遞日誌,需要配置該參數,並在 alibaba-log-controller 的環境變數中配置 ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}}

    說明
    • 該參數需要alibaba-log-controller 0.3.2及以上版本支援。

    • 該參數僅控制Project所屬的帳號,iLogtail資料投遞到該帳號需要另外配置iLogtail的使用者標識,詳情請參見配置使用者標識

    endpoint

    string

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

    說明
    • 該參數需要alibaba-log-controller 0.4.1及以上版本支援。

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

    logstoreMode

    string

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

    • query:查詢型Logstore。

    • standard:標準型Logstore。

    說明

    該參數需要alibaba-log-controller 0.3.3及以上版本支援。

    shardCount

    int

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

    logstoreMaxSplitShard

    int

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

    logstoreAutoSplit

    bool

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

    lifeCycle

    int

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

    logstoreHotTTL

    int

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

    logstoreTelemetryType

    string

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

    • None:日誌類型。

    • Metrics:Metrics 類型。

    logstoreAppendMeta

    bool

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

    logstoreEnableTracking

    bool

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

    logstoreEncryptConf

    object

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

    logstoreMeteringMode

    string

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

    • ChargeByFunction:按功能計費

    • ChargeByDataIngest:按寫入量計費。

    說明
    • 該參數需要alibaba-log-controller 0.4.3及以上版本支援。

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

    • 如果帳號未開通寫入量計費,只能配置為ChargeByFunction。

    machineGroups

    array

    iLogtail採集配置關聯的機器組列表。更多資訊,請參見機器組簡介。安裝logtail-ds組件時,Log Service會自動建立名為k8s-group-${your_k8s_cluster_id}的機器組,預設值為該機器組。

    configTags

    map

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

    說明

    該參數需要alibaba-log-controller 0.4.2及以上版本支援。

    AliyunLogConfigDetail

    詳細的參數說明請參見Logtail配置,AliyunLogConfigDetail的資料格式與Logtail配置一致。

    參數

    資料類型

    是否必填

    說明

    configName

    string

    Logtail配置的名稱,在其所屬Project內必須唯一。建立Logtail配置成功後,無法修改其名稱。建議與資源名相同(metadata.name)。

    命名規則如下:

    • 只能包括小寫字母、數字、短劃線(-)和底線(_)。

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

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

    logSample

    string

    日誌範例。需要小於1500位元組。

    inputType

    string

    日誌輸入的方式。可選值如下:

    • plugin:通過Logtail外掛程式採集標準輸出、MySQL Binlog等日誌。

    • file:通過固定模式(正則模式、分隔字元模式等)採集文字檔中的日誌。

    inputDetail

    Object

    日誌輸入的相關配置。更多資訊,請參見inputDetail參數說明