有奖捉虫:云通信与企业服务文档专题,速来> HOT
本文介绍通过控制台配置 TKE Serverless 集群的日志采集功能。

前提条件

登录 容器服务控制台,并为 Serverless 集群开启日志采集功能。操作详情请参见 开启日志采集

操作步骤

为集群开启日志采集功能后,您可根据以下操作进行配置:

配置日志规则

开启日志采集后,需要配置日志规则,确认日志源、消费端、日志解析方式等。
1. 登录 容器服务控制台,选择左侧导航栏中的日志管理 > 日志规则
2. 日志规则页面上方选择地域和 TKE Serverless 集群,单击新建
3. 新建日志采集规则页面中配置日志服务消费端,在消费端 > 类型中选择 CLS
日志集:根据日志所在地域展示您已经创建的日志集,若现有日志集不合适,您可以在 日志服务控制台 新建日志集。操作详情见 创建日志集
日志主题:选择日志集下对应的日志主题,支持“自动创建”和“选择已有”日志主题两种模式。
注意:
日志服务 CLS 目前只能支持同地域的容器集群进行日志采集上报。
日志集和日志主题在日志规则完成后不可更新。
4. 选择采集类型并配置日志源。目前采集类型支持容器标准输出容器文件路径
采集容器标准输出日志
采集容器内文件日志
选择容器标准输出采集类型,并根据自身需求,配置日志源。如下图所示:

该类型日志源支持采集:
所有容器:所有 Namespace 或某个 Namespace 下的所有容器。
指定工作负载:某 Namespace 下,指定工作负载下的某些容器,并支持添加多个 Namespace。
指定 Pod Labels:某 Namespace 下,指定多个 Pod Labels,采集符合该 Labels 的所有容器。
选择容器文件路径采集类型,并根据自身需求,配置日志源。如下图所示:

该类型日志源支持采集:
指定工作负载:某 Namespace 下,指定工作负载下的容器的指定文件路径。
指定 Pod Labels:某 Namespace 下,指定多个 Pod Labels,采集符合该 Labels 的所有容器的指定文件路径。
采集文件路径支持文件路径和通配规则,例如当容器文件路径为 /opt/logs/*.log,可以指定采集路径为 /opt/logs,文件名为 *.log
注意:
如果选择采集类型为“容器文件路径”时,对应的“容器文件路径”不能为软链接,否则会导致软链接的实际路径在采集器的容器内不存在,采集日志失败。

说明:
对于容器的标准输出及容器内文件,除了原始的日志内容,还会带上容器或 kubernetes 相关的元数据(例如,产生日志的 Pod name)一起上报到 CLS,方便用户查看日志时追溯来源或根据容器标识、特征(例如,容器名、Labels)进行检索。 容器或 kubernetes 相关的元数据请参考下方表格:
字段名
含义
cluster_id
日志所属的集群 ID。
container_name
日志所属的容器名称。
image_name
日志所属容器的镜像名称 IP。
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)。

5. 配置采集策略。您可以选择全量或者增量
全量:全量采集指从日志文件的开头开始采集。
增量:增量采集指从距离文件末尾1M处开始采集(若日志文件小于1M,等价于全量采集)。
6. 单击下一步,选择日志解析方式。
编码模式:支持UTF-8GBK
提取模式:支持多种类型的提取模式,详情如下:
解析模式
说明
相关文档
单行全文
一条日志仅包含一行的内容,以换行符 \\n 作为一条日志的结束标记,每条日志将被解析为键值为 CONTENT 的一行完全字符串,开启索引后可通过全文检索搜索日志内容。日志时间以采集时间为准。
多行全文
指一条完整的日志跨占多行,采用首行正则的方式进行匹配,当某行日志匹配上预先设置的正则表达式,就认为是一条日志的开头,而下一个行首出现作为该条日志的结束标识符,也会设置一个默认的键值 CONTENT,日志时间以采集时间为准。
单行 - 完全正则
指将一条完整日志按正则方式提取多个 key-value 的日志解析模式,您需先输入日志样例,其次输入自定义正则表达式,系统将根据正则表达式里的捕获组提取对应的 key-value。
多行 - 完全正则
适用于日志文本中一条完整的日志数据跨占多行(例如 Java 程序日志),可按正则表达式提取为多个 key-value 键值的日志解析模式,您需先输入日志样例,其次输入自定义正则表达式,系统将根据正则表达式里的捕获组提取对应的 key-value。
JSON
JSON 格式日志会自动提取首层的 key 作为对应字段名,首层的 value 作为对应的字段值,以该方式将整条日志进行结构化处理,每条完整的日志以换行符 \\n 为结束标识符。
分隔符
指一条日志数据可以根据指定的分隔符将整条日志进行结构化处理,每条完整的日志以换行符 \\n 为结束标识符。日志服务在进行分隔符格式日志处理时,您需要为每个分开的字段定义唯一的 key,无效字段即无需采集的字段可填空,不支持所有字段均为空。
组合解析
当您的日志结构太过复杂,涉及多种解析模式,单种解析模式(如 Nginx 模式、完整正则模式、JSON 模式等)无法满足日志解析需求时,您可以使用 Loglistener 组合解析格式解析日志,此模式支持用户在控制台输入代码(json 格式)用来定义日志解析的流水线逻辑。您可添加一个或多个 Loglistener 插件处理配置,Loglistener 会根据处理配置顺序逐一执行。
注意:
一个日志主题目前仅支持一个采集配置,请保证选用该日志主题的所有容器的日志都可以接受采用所选的日志解析方式。若在同一日志主题下新建了不同的采集配置,旧的采集配置会被覆盖。
过滤器:LogListener 仅采集符合过滤器规则的日志,Key 支持完全匹配,过滤规则支持正则匹配,如仅采集 ErrorCode = 404 的日志。您可以根据需求开启过滤器并配置规则。
7. 单击完成

更新日志规则

1. 登录 容器服务控制台,选择左侧导航栏中的日志管理 > 日志规则
2. 日志规则页面中,选择需要更新的日志规则,单击右侧的编辑收集规则
3. 根据需求更新相应配置,单击完成