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採集配置。
執行如下命令建立一個YAML檔案。
cube.yaml
為檔案名稱,請根據實際情況替換。
vim cube.yaml
在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採集配置的詳細資料。
...
執行如下命令建立
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採集配置。
編輯已有的
AliyunLogConfig
YAML檔案。cube.yaml
為檔案名稱,請根據實際情況替換。
vim cube.yaml
在YAML檔案中修改配置參數。關於詳細參數配置,請參見CR參數說明。
執行如下命令使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
是
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參數說明。