日志服务支持通过 Sidecar 方式采集 Kubernetes 集群的容器文本日志,本文档演示控制台创建采集配置的相关操作步骤。
背景信息
LogCollector 支持通过 Sidecar 模式采集容器的文本日志,将采集到的日志数据和容器的元数据一起上传到服务端。
通过 Sidecar 模式采集容器的文本日志时,LogCollector 具备以下功能特点:
前提条件
- 已在待采集的容器中安装了 LogCollector。相关操作步骤请参考Sidecar 方式部署 LogCollector。
- 已创建了机器组,并在机器组中添加了容器所在的宿主机。
推荐使用机器标识类型的机器组,机器标识可配置为您在安装 LogCollector 时配置的用户自定义标识,即需与 ConfigMap 中设置的 ${your_labels}
的值一致,例如 nginx-log。相关操作步骤请参考创建机器组(机器标识)。
限制说明
- Sidecar 模式不支持采集业务容器的标准输出、标准错误。
- 通过 Sidecar 模式采集业务容器的文本日志时,需要从 LogCollector 容器和业务容器共享的日志目录中采集。需注意:
- 业务容器将日志写入共享目录中,LogCollector 周期性地扫描共享目录中的日志文件并采集日志。所以,控制台中配置的采集路径必须是 LogCollector 容器视角下的日志文件的路径。
- 推荐使用 emptyDir 挂载采集路径,挂载方式请参考 Sidecar 方式部署 LogCollector。
- 支持采集软链接,前提是 LogCollector 容器能够访问软链接指向业务容器的日志文件。
- LogCollector 容器和业务容器所属于的 Pod 停止之后,LogCollector 容器将停止,进而停止采集业务容器的日志。如果此时 LogCollector 采集业务容器的日志出现延迟,则可能丢失停止采集之前的部分日志。
- 获取容器元数据信息,依赖于 LogCollector 容器中配置的环境变量。LogCollector 首先读取环境变量 LOG_COLLECTOR_ENV_TAGS,然后按照竖线(|)将其切割为多个环境变量键,最后读取这些环境变量键对应的值,并且在日志中携带键值对。所以,需要在 LogCollector 容器中设置所需要的容器元数据信息。需要注意的是,除了
__namespace__
、__node_ip__
、__node_name__
、__pod_ip__
、__pod_name__
五个容器元数据之外,其他元数据不能以双下划线(__)开头或结尾,否则采集时将被忽略。
创建 LogCollector 采集配置
步骤一 选择日志空间
- 登录日志服务控制台。
- 在顶部导航栏中,选择日志服务所在的地域。
- 在左侧导航栏中,选择常用功能 > 日志接入。
- 在日志接入页面的LogCollector日志采集页签中,选择日志采集模式。
- 选择日志空间,单击下一步:选择机器组。
选择日志项目和日志主题,采集到的日志数据将被存储到该日志主题中。
步骤二 选择机器组
- 在全部机器组区域中,选择需要被采集日志的机器组。
如果列表中无可用的机器组,您需要先创建机器组。具体操作,请参考创建机器组(机器标识)、创建机器组(IP地址) - 在已选机器组区域中确认机器组无误后,单击下一步:采集规则。
步骤三 配置采集规则
采集模式决定了 LogCollector 解析日志文件的模式,您可以根据实际业务场景选择对应的采集模式,并配置指定模式下的日志解析规则。通过 Sidecar 模式采集采集容器日志时,支持的日志采集模式如下,您可以参考对应的文档完成日志采集。
说明
Sidecar模式下无需启用容器日志采集选项。
步骤四 检查索引配置
- 检查索引配置。
根据页面提示,按需设置或更新索引,您也可以单击导入已有索引配置,导入其他日志主题的索引。
- 若此日志主题未设置索引,可以参考配置索引进行设置。
- 若此日志主题已设置索引,可以根据采集规则中解析的日志字段判断是否需要更新索引。
说明
- 启用索引后,您才能检索分析采集到的日志数据。
- 更新后的索引设置仅对后续写入的新数据生效。其他检索分析的使用说明及限制请参考检索概述和分析概述。
- 单击完成:检查索引配置。
后续步骤
创建采集配置之后,LogCollector 会根据指定规则开始监听日志文件并采集日志。日志服务会将日志数据保存在指定的日志主题中,您可以在日志主题中执行检索分析操作。