TKE 容器服务日志

最近更新时间:2019-09-11 10:18:30

简介

TKE 容器服务用户可以直接在控制台,通过配置日志收集规则进行集群内日志的收集,并将收集到的日志发送至日志服务 CLS 的指定日志主题。基于日志收集功能,使用日志服务平台可进行集群服务日志的实时检索、消费、投递等功能。

接入步骤

1. 创建日志集和日志主题

登录 日志服务控制台 新建日志集及日志主题。创建日志主题时,由于容器服务的日志有独立的采集能力,日志主题无需开启【使用 LogListener】。详情请参见 创建日志集和日志主题

注意:

目前 TKE 容器集群的日志只能投递到同地域的日志服务。

2.关联 TKE 容器服务集群

(1)登录 容器服务控制台,单击左侧导航栏【日志采集】。在日志采集页面上方选择地域与集群后,单击【新建】。
(2)新建日志收集规则。

规则配置项说明如下:

配置项 详情
收集规则名称 最长63个字符,只能包含小写字母、数字及分隔符("-"),且必须以小写字母开头,数字或小写字母结尾
配置名称设置后不可修改
类型 支持三种采集类型:采集容器标准输出日志采集容器内文件日志采集主机内文件日志
日志源 可选择采集所有容器日志或指定的容器日志
消费端 选择日志服务 CLS
日志服务实例 选择日志集和日志主题
说明:

TKE 容器服务支持三种采集类型,下面详细介绍这三种采集类型的配置。

采集容器标准输出日志

用户可以通过配置将 Kubernetes 集群内指定容器的标准输出日志投递到日志服务 CLS 中,投递的日志内容会附加相关的 Kubernetes metadata,包括容器所属 pod 的 label 和 annotation 等信息。

(1)在新建日志收集规则页面,选择【容器标准输出】采集类型,并配置日志源。

(2)选择容器标准输出采集类型时,会默认为每条日志添加以下 metadata,其中 log 为原始日志信息。且该类型日志源支持一次选择多个 Namespace 的工作负载。

字段名 含义
docker.container_id 日志所属的 container ID
kubernetes.annotations 日志所属 pod 的 annotations
kubernetes.container_name 日志所属的 container name
kubernetes.host 日志所属 pod 所在的机器 IP
kubernetes.labels 日志所属 pod 的 labels
kubernetes.namespace_name 日志所属 pod 的 namespace
kubernetes.pod_id 日志所属 pod 的 ID
kubernetes.pod_name 日志所属 pod 的名字
log 原始日志信息

采集容器内文件日志

用户可以通过配置将集群内指定 pod 内文件的日志投递到日志服务 CLS 中,投递日志格式为 JSON 格式,并会附加相关的 Kubernetes metadata,包括容器所属 pod 的 label 和 annotation 等信息。

注意:

目前仅支持采集存储在 volume 的日志文件,即需要在工作负载创建时挂载 emptyDir、hostpath 等 volume,并将日志文件存到指定 volume。

(1)指定【容器文件路径】采集类型,并配置日志源。
用户可以通过指定日志文件的路径来采集 pod 上相应路径的日志文件,路径支持文件路径和通配规则,例如/var/log/nginx.log/var/lib/docker/containers/*/*.log

(2)选择容器文件路径采集类型时,会默认为每条日志添加以下 metadata,其中 message 为原始日志信息。且该类型日志源不支持选择多个 Namespace 的工作负载。

字段名 含义
docker.container_id 日志所属的 container ID
kubernetes.annotations 日志所属 pod 的 annotations
kubernetes.container_name 日志所属的 container name
kubernetes.host 日志所属 pod 所在的机器 IP
kubernetes.labels 日志所属 pod 的 labels
kubernetes.namespace_name 日志所属 pod 的 namespace
kubernetes.pod_id 日志所属 pod 的 ID
kubernetes.pod_name 日志所属 pod 的名字
file 源日志文件
message 原始日志信息

采集主机内文件日志

用户可以通过配置将集群内所有节点的指定主机路径的日志投递到日志服务 CLS,投递日志格式为 JSON 格式,并会附加用户指定的 metadata,包括日志来源文件的路径和用户自定义的 metadata。

(1)在新建日志采集规则页面,指定【节点文件路径】采集类型。
用户可以通过指定日志文件的路径来采集集群内节点上相应路径的日志文件,路径支持文件路径和通配规则,例如 /var/log/nginx.log/var/lib/docker/containers/*/*.log

(2)用户可根据实际需求进行添加自定义的 “metadata” ,将采集到的日志信息附加指定 Key-Value 形式的 “metadata”,作为日志信息的 metadata 标记。
附加 metadata 将会以 json field 的形式添加到日志记录中。

例如:

  • 当不指定附加 metadata 时,采集到的日志如下图所示:
  • 当用户指定附加 metadata 时,采集到的日志如下图所示:

相比不指定附加 Metadata 时,附加 Metadata 的 json 日志增加了 keyservice。
日志 metadata 含义如下表:

字段名 含义
path 日志的来源文件
message 日志信息
自定义 key 自定义 value

3.检索 TKE 容器日志

前提条件:检索日志前需先开启并配置索引规则,详情请参见 开启索引

(1)登录 日志服务控制台,在左侧导航栏单击【日志检索】,进入检索页面。
(2)选择关联容器服务的日志主题,单击【搜索】进行查询。