本文介紹如何在Serverless集群中配置CRD并進行應用日志采集管理。
前提條件
確保您已經創建Serverless集群,具體操作請參閱創建Serverless集群。
確保kubectl工具已經連接目標集群。
注意事項
通過云日志服務CRD開啟日志采集僅對后續創建的ECI Pod生效。如果想要采集存量Pod的日志,需要對存量Pod進行一次滾動發布。
操作步驟
您需要先在集群內安裝ctg-log-operator插件,再通過日志采集配置CRD來配置應用日志采集。
步驟一:安裝ctg-log-operator日志插件
登錄云容器引擎管理控制臺,在左側導航欄選擇“集群列表”。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇“插件”- > “插件市場”。
在插件市場頁面,在插件列表中選擇要安裝的ctg-log-operator插件,點擊“安裝”按鈕。
等待ctg-log-operator插件安裝完成。
步驟二:創建日志采集配置
編寫日志采集配置CRD的YAML配置文件。
說明
創建日志采集配置的 CRD 資源后,您可以在云日志服務控制臺查看相應的日志項目和采集配置。請注意,直接在云日志服務控制臺上修改這些通過 CRD 創建的配置,其更改不會同步回 CRD 資源本身。因此,若您后續需要更新配置,請直接編輯并應用 CRD 資源,避免在云日志服務控制臺進行操作,以防止配置出現不一致的情況。
CtyunLogConfig CRD 配置文件,log-stdout.yaml示例如下:
apiVersion: sce.daliqc.cn/v1
kind: CtyunLogConfig
metadata:
name: simple-stdout-example # 采集配置的名稱,集群內唯一
spec:
project: k8s-my-project # 可選,不填則默認為k8s-log-{ClusterId}
logunit: k8s-stdout # 必填,不存在會自動創建
ttlDays: 90 # 可選,日志單元中日志的保存時長
extractMode: "2" # 采集類型,2為容器標準輸出,3為文件路徑
logPath: "/var/log/*.log" #日志文件所在完整路徑
ruleConfig: # 必填,參考云日志服務API配置://eop.daliqc.cn/ebp/ctapiDocument/search?sid=169&api=15050&data=216&isNormal=1&vid=295
containers:
excludeEnv: {}
excludeK8sLabel: {}
excludeLabel: {}
includeEnv: {}
includeK8sLabel: {}
includeLabel: {}
# 下面這三項必填其一,否則無法創建采集規則
k8sContainerRegex: ".*" # 容器過濾條件
k8sPodRegex: ".*" # Pod過濾條件
k8sNamespaceRegex: "^(default)$" # Namespace過濾條件
參數說明
參數 | 類型 | 是否必填 | 說明 |
|---|---|---|---|
project | string | 否 | 日志項目名稱。不填則默認為k8s-log-{ClusterId} 如果要新建Project,可自定義輸入名稱,如果不存在該Project,系統會自動新建 |
logunit | string | 是 | 日志單元名稱。不存在會自動創建 |
ttlDays | int | 否 | 日志單元中日志的保存時長。默認值為15 |
extractMode | string | 是 | 采集類型,"2"為容器標準輸出,"3"為文件路徑 |
logPath | string | 是 | 日志文件所在完整路徑。采集類型為3時必填 |
ruleConfig | object | 是 | 采集規則配置,包含containers參數,表示容器相關配置。
下面這三項必填其一,否則無法創建采集規則
詳細的參數說明請參考。 |
創建日志采集配置CRD。
命令示例如下。日志采集配置生效后,日志采集開始采集各個容器上的標準輸出或文本日志,并發送到日志服務中。
kubectl apply -f log-stdout.yaml步驟三:測試日志采集
創建日志采集配置CRD后,日志服務會自動采集后續創建的Pod的日志。您可以創建應用來測試日志采集效果。
pod.yaml示例如下,示例中容器啟動后會執行相關命令,不斷打印標準輸出和日志文件。
apiVersion: v1
kind: Pod
metadata:
name: busybox-crd
spec:
containers:
- name: busybox
image: 'registry-huadong1.crs-internal.daliqc.cn/open-source/busybox:1.36'
args:
- -c
- mkdir -p /var/log;while true; do echo hello world; date; echo hello als >> /var/log/test.log; sleep 1;done
command:
- /bin/sh
創建應用:
kubectl create -f pod.yaml確認應用是否已經running。
kubetcl get pod步驟四:查看日志
登錄日志服務控制臺。
在左側導航欄中,選擇“日志管理”。
在日志項目列表區域,單擊對應的日志項目名稱。
在左側日志單元區域,單擊目標日志單元查看對應應用的日志信息。