AliyunLogConfig是日志服务自定义的一类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不存在,日志服务会自动创建。
logtailConfig: # 设置iLogtail采集配置。
inputType: plugin # 设置采集的数据源类型。
configName: test-config # 设置iLogtail采集配置的名称。
inputDetail: # 设置iLogtail采集配置的详细信息。
...
执行如下命令创建
AliyunLogConfig
的CR,会根据该CR自动创建iLogtail采集配置,从而使iLogtail采集配置生效。iLogtail采集配置生效后,Logtail开始采集数据,并发送到日志服务中。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不存在,日志服务会自动创建。
logstore
string
是
目标 Logstore 名称。
说明如果您所指定的Logstore不存在,日志服务会自动创建。
如果您所指定的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组件时,日志服务会自动创建名为
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参数说明。