使用限制
操作步骤
创建日志采集规则
1. 登录 容器服务控制台,在左侧导航栏中选择集群。
2. 在集群列表中,单击目标集群 ID,进入集群详情页。
3. 选择左侧导航栏中的日志,在日志采集页签中单击业务日志右侧的新增采集配置。如下图所示:

4. 在新建日志采集规则页面中配置收集规则名称,您可以自定义日志收集规则名称。
5. 参考如下配置日志服务消费端:
类型:选择 CLS。
日志所在地域:CLS 支持跨地域日志投递,您可通过下拉框选择日志投递的目标地域。
日志主题:选择日志集下对应的日志主题,支持“自动创建”和“选择已有”日志主题两种模式。
说明:
CLS 不支持国内和境外地域之间跨地域日志投递;针对 CLS 未开通日志服务的地域仅支持就近投递,如深圳集群采集的容器日志仅支持投递到广州,天津集群采集的容器日志仅支持投递到北京;详情可通过控制台查看。
一个日志主题目前仅支持一个采集配置。请确保所选日志主题未被其他采集配置占用;若使用同一日志主题新建其他采集配置,原采集配置会被覆盖。若日志集下已存在500个日志主题,则不能新建日志主题。
6.
选择采集类型
并配置日志源,目前采集类型支持容器标准输出、容器文件路径和节点文件路径。说明:
采集集群内任意服务下的容器日志,仅支持 Stderr 和 Stdout 的日志。
日志源支持所有容器、指定工作负载、指定 Pod Labels 三种类型。如下图所示:
所有容器

命名空间指定方式:选择命名空间指定方式,支持指定命名空间和排除命名空间。
所属 Namespace:指定命名空间时,支持勾选全部命名空间或全选当前命名空间。
全部命名空间:包含当前以及未来创建的所有命名空间。
全选当前命名空间:即选中当前所有命名空间,不包含未来创建的命名空间。
需注意,kube-system 命名空间中包含容器日志采集组件及其他大量系统组件的日志,组件异常时可能产生大量日志并带来额外成本,建议不要采集该命名空间下的日志。
指定工作负载

所属 Namespace:选择工作负载所在的命名空间。
工作负载类型:选择需要采集的工作负载类型。
工作负载名称:选择需要采集的工作负载。
容器名称:填写需要采集的容器名称,多个容器名称使用英文逗号分隔。
指定 Pod Labels

命名空间指定方式:选择命名空间指定方式,支持指定命名空间和排除命名空间。
所属 Namespace:指定命名空间时,支持勾选全部命名空间或全选当前命名空间。
全部命名空间:包含当前以及未来创建的所有命名空间。
全选当前命名空间:即选中当前所有命名空间,不包含未来创建的命名空间。
Pod Label:新增需匹配的 Pod 标签,支持等于(
=)和不等于(!=)。不同 Pod Label 之间为“与”关系;同一 Label 的多个 value 之间为“或”关系,多个 value 使用英文逗号分隔。容器名称:新增容器名称,支持等于或不等于。若需采集符合上述 Pod Label 的全部容器日志,请填写
*。说明:
采集集群内指定容器内的文件日志。
日志源支持指定工作负载、指定 Pod Labels 两种类型。
容器文件路径由日志目录和文件名组成。日志目录以
/ 开头,文件名不能以 / 开头;日志目录和文件名均支持通配符 * 和 ?,不支持英文逗号。/**/ 表示监听指定目录下所有层级中匹配的日志文件。多条采集路径之间为“或”关系。例如,采集 /opt/logs/*.log 时,可将日志目录配置为 /opt/logs,文件名配置为 *.log。如下图所示:采集路径黑名单:开启后,可忽略采集路径下指定的完整文件路径或目录路径,支持完全匹配以及
*、?、** 通配符匹配。文件路径和目录路径两种过滤类型可以同时使用,且黑名单路径必须是采集路径的子集。注意:
仅
1.1.12 及以上版本的容器日志采集组件支持多采集路径。升级前创建的采集配置不能直接增加多采集路径,需要重新创建采集配置。采集路径黑名单需要容器日志采集组件
1.1.2 及以上版本。

注意:
“容器文件路径”不能为软链接,否则软链接的实际路径可能在采集组件容器内不存在,导致日志采集失败。
如果业务 Pod 使用 HostPath 挂载日志目录,且同一节点上的多个 Pod 最终写入同一个宿主机真实日志文件,可能出现多个容器采集路径解析到同一真实文件的情况,导致同一文件被重复采集。建议在业务工作负载的挂载配置中使用 Kubernetes subPathExpr,按 Pod 名称或 Pod UID 为不同 Pod 隔离宿主机子目录;也可以由业务侧改造为不同 Pod 写入不同日志文件。相关配置可参见 Kubernetes 官方文档。
说明:
采集集群内指定节点路径的文件。
节点文件路径由日志目录和文件名组成。日志目录以
/ 开头,文件名不能以 / 开头;日志目录和文件名均支持通配符 * 和 ?,不支持英文逗号。/**/ 表示监听指定目录下所有层级中匹配的日志文件。多条采集路径之间为“或”关系。例如,需要采集 /opt/logs/service1/*.log 和 /opt/logs/service2/*.log 时,可将日志目录配置为 /opt/logs/service*,文件名配置为 *.log。采集路径黑名单:开启后,可忽略采集路径下指定的完整文件路径或目录路径,支持完全匹配以及
*、?、** 通配符匹配。文件路径和目录路径两种过滤类型可以同时使用,且黑名单路径必须是采集路径的子集。注意:
仅
1.1.12 及以上版本的容器日志采集组件支持多采集路径。升级前创建的采集配置不能直接增加多采集路径,需要重新创建采集配置。采集路径黑名单需要容器日志采集组件
1.1.2 及以上版本。您可根据实际需求自定义添加 Key-Value 形式的 metadata,metadata 将会添加到日志记录中。


注意:
“节点文件路径”不能为软链接,否则软链接的实际路径可能在采集组件中不存在,导致日志采集失败。
一个节点日志文件只能被一个日志主题采集。
说明:
请确保 Pod 的 label 配置正确,即 Pod 的 label,而非工作负载的 label。您可以按照以下步骤查询:
1.1 登录 容器服务控制台,选择左侧导航栏中的集群。
1.2 在集群管理页面,选择集群 ID,进入集群的基本信息页面。
1.3 在工作负载中,选择具体的工作负载名称,进入工作负载详情页。
1.4 在 YAML 页签中,查看 template 下的 labels。如下图所示:

对于“容器标准输出”和“容器内文件”(不包含“节点文件路径”),除原始日志内容外,您还可以按需选择是否上传容器或 Kubernetes 相关元数据,例如容器 ID、容器名称和 Pod Label。上传元数据后,可用于追溯日志来源;是否能够根据这些字段检索日志,取决于对应字段是否已配置索引。可选元数据如下表所示:
字段名 | 含义 |
container_id | 日志所属的容器 ID。 |
container_name | 日志所属的容器名称。如果 pod 下多个容器挂载相同路径,元数据会将多个容器名称通过‘ ; ’拼接。 |
image_name | 日志所属容器的镜像名称。 |
namespace | 日志所属 pod 的 namespace。 |
pod_uid | 日志所属 pod 的 UID。 |
pod_name | 日志所属 pod 的名字。 |
pod_ip | 日志所属 pod 的 IP 地址。 |
pod_label_{label name} | 日志所属 pod 的 label(例如一个 pod 带有两个 label:app=nginx,env=prod,则在上传的日志中会附带两个 metadata:pod_label_app:nginx,pod_label_env:prod)。 |
7. 元数据、索引配置:
元数据配置:决定随日志上传哪些容器或 Kubernetes 元数据,您可按需选择默认元数据或添加自定义元数据。
索引配置:决定元数据字段是否可用于日志检索。您可按需为已上传的元数据字段配置索引。
说明:
8. 配置采集策略。您可以选择全量或者增量。
全量:全量采集指从日志文件的开头开始采集。
增量:仅采集日志文件内新增的内容。
注意:
普通容器文件路径:如果 Pod 重建后日志文件会清空或重新生成,建议选择全量采集,以采集 Pod 启动阶段已写入文件的日志。
CBS PVC 路径:如果日志文件写在 CBS 云硬盘挂载路径上,Pod 重建后历史日志文件仍会保留。建议通过 Kubernetes Downward API 获取 Pod UID,并按 Pod 实例生成独立日志文件,例如 /data/logs/${POD_UID}/app.log;在此基础上选择增量采集,降低 Pod 重建后重复采集历史日志的风险。
CFS 共享路径:不建议作为容器文件日志采集路径。多个 Pod 可能重复上报同一文件,造成重复日志和重复计费;如必须使用,建议选择增量采集,并确保不同 Pod 写入不同日志文件。
9. 单击下一步,选择日志解析方式。
编码模式:支持 UTF-8 和 GBK。
提取模式:支持多种类型的提取模式,详情如下:
解析模式 | 说明 | 相关文档 |
单行全文 | 一条日志仅包含一行的内容,以换行符 \\n 作为一条日志的结束标记,每条日志将被解析为键值为 __CONTENT__ 的一行完全字符串,开启索引后可通过全文检索搜索日志内容。日志时间以采集时间为准。 | |
多行全文 | 指一条完整的日志跨占多行,采用首行正则的方式进行匹配,当某行日志匹配上预先设置的正则表达式,就认为是一条日志的开头,而下一个行首出现作为该条日志的结束标识符,也会设置一个默认的键值 __CONTENT__,日志时间以采集时间为准。支持自动生成正则表达式。 | |
单行 - 完全正则 | 指将一条完整日志按正则方式提取多个 key-value 的日志解析模式,您需先输入日志样例,其次输入自定义正则表达式,系统将根据正则表达式里的捕获组提取对应的 key-value。支持自动生成正则表达式。 | |
多行 - 完全正则 | 适用于日志文本中一条完整的日志数据跨占多行(例如 Java 程序日志),可按正则表达式提取为多个 key-value 键值的日志解析模式,您需先输入日志样例,其次输入自定义正则表达式,系统将根据正则表达式里的捕获组提取对应的 key-value。支持自动生成正则表达式。 | |
JSON | JSON 格式日志会自动提取首层的 key 作为对应字段名,首层的 value 作为对应的字段值,以该方式将整条日志进行结构化处理,每条完整的日志以换行符 \\n 为结束标识符。 | |
Nginx 日志模板 | 适用于 Nginx 日志。 | - |
分隔符 | 指一条日志数据可以根据指定的分隔符将整条日志进行结构化处理,每条完整的日志以换行符 \\n 为结束标识符。日志服务在进行分隔符格式日志处理时,您需要为每个分开的字段定义唯一的 key,无效字段即无需采集的字段可留空,不支持所有字段均为空。 | |
组合解析 | 当您的日志结构太过复杂,涉及多种解析模式,单种解析模式(如 Nginx 模式、完整正则模式、JSON 模式等)无法满足日志解析需求时,您可以使用 LogListener 组合解析格式解析日志,此模式支持用户在控制台输入代码(JSON 格式)用来定义日志解析的流水线逻辑。您可添加一个或多个 LogListener 插件处理配置,LogListener 会根据处理配置顺序逐一执行。 |
过滤器:LogListener 仅采集符合过滤器规则的日志,Key 支持完全匹配,过滤规则支持正则匹配,如仅采集
ErrorCode = 404 的日志。您可以根据需求开启过滤器并配置规则。说明:
一个日志主题目前仅支持一个采集配置,请保证选用该日志主题的所有容器的日志都可以接受采用所选的日志解析方式。若在同一日志主题下新建了不同的采集配置,旧的采集配置会被覆盖。
10. 单击完成,完成投递到 CLS 的容器日志采集规则创建。
更新日志规则
1. 登录 容器服务控制台,在左侧导航栏中选择集群。
2. 在集群列表中,单击目标集群 ID,进入集群详情页。
3. 选择左侧导航栏中的日志,在日志采集页签中单击采集规则右侧的编辑。如下图所示:

4. 根据需求更新相应配置,单击完成。
相关文档