最近更新时间:2024.03.28 10:17:46
首次发布时间:2022.05.07 14:30:55
日志服务支持通过 DaemonSet 方式采集 Kubernetes 集群的容器文本日志,本文档演示控制台创建采集配置的相关操作步骤。
在容器中安装日志服务提供的采集插件 LogCollector、并创建采集配置之后,LogCollector 会根据容器中的 Label 和环境变量确定待采集的容器,持续采集指定容器路径内产生的文本日志,并将文本日志和容器名等容器相关的元数据信息一起上传至服务端。LogCollector 还支持断点续传,checkpoint 文件中会留存采集相关的位点信息,即使 LogCollector 停止后重新启动,也会从上一次保存的位点继续采集。
此外,LogCollector 采集容器文本日志时,支持单行、多行等多种采集配置,除各种采集配置默认附加的预留字段之外,日志服务还会对 LogCollector 采集到的容器文本日志添加以下预留字段,并默认为其创建索引。
预留字段 | 说明 |
---|---|
| 镜像名称。 |
| 容器名称。 |
| 容器或 Pod 的 IP 地址。 |
| Pod 名称。 |
| Pod 的唯一标识。 |
| Pod 所属的 Namespace。 |
${your_labels}
的值一致,例如 nginx-log。/run/docker.sock
访问 Docker 容器引擎,请确保该路径存在且 LogCollector 具备访问权限。/run/containerd/containerd.sock
访问 Containerd 容器引擎,请确保该路径存在且 LogCollector 具备访问权限。填写基本规则配置。
配置 | 说明 |
---|---|
规则名称 | 规则名称即 LogCollector 采集配置的名称。 |
容器日志采集 | 选择启用。 |
采集类型 | 选择K8s 容器文本日志。 |
(可选)启用通用容器采集规则。
通用容器采集规则通过容器的通用信息指定待采集的内容,也可以同时排除不采集的内容。
说明
未启用通用容器采集规则和K8s 采集规则时,表示采集范围为全部容器。同时配置两种采集规则时,两种规则的逻辑关系为与,即必须同时满足两种规则才能成功采集。
配置 | 说明 | |
---|---|---|
容器名称 | 待采集的容器名称。若未指定容器名称,表示采集机器组中全部容器。 说明 正则模糊匹配时,必须添加 | |
容器Label | 启用白名单 | 容器 Label 白名单通过容器 Label 指定待采集的容器,不启用白名单时指定采集全部容器。
说明
|
启用黑名单 | 容器 Label 黑名单用于指定不采集的容器范围,不启用黑名单时表示采集全部容器。
说明
| |
容器环境变量 | 启用白名单 | 容器环境变量白名单通过容器环境变量指定待采集的容器,不启用白名单时表示指定采集全部容器。
说明
|
启用黑名单 | 容器环境变量黑名单用于指定不采集的容器范围,不启用黑名单时表示采集全部容器。
说明
| |
容器环境变量日志标签 | 是否将环境变量作为日志标签,添加到原始日志数据中。开启后,日志服务将在日志中新增容器环境变量相关字段,设置多个键值对时,表示添加多个字段。 |
(可选)启用K8s 采集规则。
K8s 采集规则用通过 Kubernetes 容器的信息指定待采集的内容,也可以同时排除不采集的内容。
说明
未启用通用容器采集规则和K8s 采集规则时,表示采集范围为全部容器。同时配置两种采集规则时,两种规则的逻辑关系为与,即必须同时满足两种规则才能成功采集。
配置 | 说明 | |
---|---|---|
Namespace | 待采集的 Kubernetes Namespace 名称,不指定 Namespace 名称时表示采集全部容器。 说明 正则模糊匹配时,必须添加 | |
工作负载类型 | 通过工作负载的类型指定采集的容器,仅支持选择一种类型。未指定类型时,表示采集全部类型的容器。
| |
工作负载名称 | 通过工作负载的名称指定待采集的容器。未指定工作负载名称时,表示采集全部容器。 | |
Pod Label | 启用白名单 | Pod Label 白名单用于指定待采集的容器。未开启 Pod Label白名单时,表示采集全部容器。
说明
|
启用黑名单 | 通过 Pod Label 黑名单指定不采集的容器,不启用表示采集全部容器。
说明
| |
Pod 名称匹配规则 | Pod 名称匹配规则用于指定待采集的容器。可选,不指定此项时,表示采集全部容器。 | |
K8s Label 日志标签 | 是否将 Kubernetes Label 作为日志标签,添加到原始日志数据中。开启后,日志服务将在日志中新增 Kubernetes Pod Label 相关字段。设置多个键值对时,表示添加多个字段。 | |
K8s Annotation 日志标签 | 是否将 Kubernetes Annotation 作为日志标签,添加到原始日志数据中。开启后,日志服务将在日志中新增 Kubernetes Pod Annotation 相关字段。设置多个键值对时,表示添加多个字段。 |
填写采集路径。
采集路径即日志所在的目录和文件名,LogCollector 会按照采集路径中的目录部分匹配符合规则的目录,监听这些目录下符合规则的日志文件。最多设置 10 个不同的采集路径。
采集路径可以指定完整的目录和文件名,也可以通过通配符模糊匹配。
说明
*
)、双星号(**
)和半角问号(?
)。双星号(**
)最多只能配置一个。常见的采集路径的配置方式及示例如下。
配置方式 | 日志路径示例 | 说明 |
---|---|---|
完整名称 |
| 指定完整的目录和文件名,不包含通配符,表示监听指定目录下的指定文件,不监听其子目录。 |
文件名模糊匹配 |
| 不指定文件名,表示监听所有日志文件;指定部分文件名规则,表示监听符合规则的部分文件。 |
路径模糊匹配 |
| 通过 |
DaemonSet 方式采集容器文本日志时,支持在采集路径中配置预留字段占位符,占位符格式为 {预留字段}
,用于动态匹配预留字段中 LogCollector 自动写入的容器元数据。支持的预留字段可参考背景信息,详细说明请参考容器日志路径占位符。
例如预留字段中包括字段 __pod_name__
,则采集路径可配置为 /var/log/basic_log/POD_{__pod_name__}/tlsapi/access.log
,其中{__pod_name__}
为占位符,LogCollector 采集日志时会使用实际的 Pod 名称自动替换该占位符。
设置采集路径黑名单。
配置采集路径黑名单之后,日志服务通过 LogCollector 采集日志时,会忽略指定的目录和文件。选择启用后,请根据页面提示设置黑名单目录和文件。
说明
/var/log/project/*.log
,需要过滤其中/var/log/project
目录下的所有子目录,则采集路径黑名单应设置为目录路径,配置路径为/var/log/project/**
。采集路径黑名单中的路径类型支持设置为目录路径和文件路径。
配置 | 说明 |
---|---|
目录路径 | 采集时忽略指定的目录。目录路径支持完整匹配和通配符模式匹配。
|
文件路径 | 采集时忽略指定的文件,需配置文件路径及文件名。文件路径支持完整匹配和通配符模式匹配。
|
设置采集策略。
采集策略表示 LogCollector 采集增量日志还是全量日志。默认为增量日志。
配置 | 说明 |
---|---|
全量 | LogCollector 从每个文档的起始位置开始采集日志,此时 LogCollector 会采集历史日志数据。 |
增量 | LogCollector 采集日志时,只采集文件内新增的内容。监控范围内的日志文件写入新的日志时,触发 LogCollector 日志采集行为。对于首次采集的日志文件:
|
指定采集模式。
采集模式决定了 LogCollector 解析日志文件的模式,您可以根据实际业务场景选择对应的采集模式,并配置指定模式下的日志解析规则。详细说明请参考各个采集模式文档中的步骤 6. 配置采集模式部分。
(可选)启用插件配置。
通过 LogCollector 采集文本日志时,如果业务日志结构复杂、格式不固定,无法通过 JSON 模式等常规的日志采集模式进行解析时,可以通过 LogCollector 插件进行采集后处理。详细说明请参考插件概述。
(可选)启用高级设置。
请根据您的需求选择高级配置。如果没有特殊需求,建议保持默认配置。
配置 | 说明 |
---|---|
过滤器 | 是否开启日志字段过滤规则。默认为关闭状态。开启后,通过正则表达式配置过滤规则,完全匹配正则表达式的日志才会被采集上报,帮助您筛选出有价值的日志数据。 |
上传解析失败日志 | 是否上传解析失败的日志,默认为关闭状态。
|
上传hostname字段 | 是否上传 hostname 字段,默认为关闭状态。
|
解析采集路径 | 通过正则表达式提取采集路径中的字段,并将其作为元数据添加到日志数据中。此功能默认为关闭状态。
|
HashKey路由Shard | 指定 HashKey 将数据写入到符合范围要求的日志分区。此功能默认为关闭状态。
|
上传原始日志 | 是否将原始日志作为一个字段上传到日志服务,默认为关闭状态。
|
上传常量字段 | 开启后,LogCollector 会将指定字段的 Key 和 Value 封装到每一条日志中。常量字段需遵循以下限制:
|
扩展配置 | LogCollector 扩展配置,JSON 对象格式。目前支持的参数包括 CloseInactive、CloseRemoved、CloseRenamed、CloseEOF 和 CloseTimeout。详细的参数说明请参考CreateRule中的数据结构Advanced。 |
确认采集配置,并单击下一步。
创建采集配置之后,LogCollector 会根据指定规则开始监听日志文件并采集日志。日志服务会将日志数据保存在指定的日志主题中,您可以在日志主题中执行检索分析操作。