日志服务 自建 K8S 日志采集排查指南

按照自建 K8S 集群安装 LogListener 部署完成后,就可以通过创建 LogConfig 或者通过控制台去设置采集配置,开始日志采集了。
如果出现日志采集异常,首先按照以下流程进行自查。

相关产品
日志服务 产品页,含版本规格、价格与购买入口。

一、1. 确认 logconfig 状态

·执行kubectl get logconfig命令查看集群所有的采集配置。

·执行kubectl get logconfig xxx -o yaml命令查看具体某一个采集配置。

·查看 logconfig 同步的状态,status 非 Synced 状态都是异常的,异常信息会在 reason 里面,正常都是 success 的状态。
如上 logconfig 的状态同步是成功的,那么采集异常的原因就是其他方面的。如下:

想要进一步了解同步错误的原因,可以查看 cls-provisioner 的日志。

二、2. 查看 cls-provisioner 日志

·执行以下命令确定 cls-provisioner 的 Pod 名称。

kubectl get pods -n kube-system -o wide |grep cls-provisioner

·获取到 cls-provisioner 的 Pod 名称后, 执行以下命令查看 cls-provisioner 日志,并定位错误的具体原因。

kubectl logs cls-provisioner-xxx -n kube-system

注意:cls-provisioner 组件的作用是和 CLS 服务端通信,将 logconfig 采集配置经过转换,同步到 CLS 服务端,这样采集器才能从服务端获取到采集配置,进而进行正常日志采集。

三、3. 查看采集端日志

如果采集配置同步正常,但是日志还是采集有异常,可以具体看下采集端的相关日志。

·查看软连是否建立成功。
我们以采集标准输出为例:
会在/var/log/tke-log-agent/<采集配置名称(logconfig 名称)>/stdout-docker-json 下创建需要采集的 Pod 的标准输出日志的软连,创建好之后才能正常采集。


我们是以 Docker 为例的,如果 runtime 是 containerd,那么路径是/var/log/tke-log-agent/<采集配置名称(logconfig 名称)>/stdout-containerd。
采集 contianer file 的软连建立方式如下:
/var/log/tke-log-agent/<采集配置名称(logconfig 名称)>/
如下:


确认按照上面示例的软连是否建立 OK,如果未建立,则是有异常的。如果建立成功,则要继续看下采集器 loglistener 的日志。

·执行以下命令,查看采集器 loglistener 日志。

kubectl get pods -n kube-system -o wide |grep tke-log-agent

首先找到日志采集异常 Pod 对应宿主机上的 tke-log-agent 的 Pod名称,然后执行以下命令查看 loglistener 日志。

kubectl logs tke-log-agent-xxx -n kube-system -c loglistener

如果已经采集到了 topic,但是检索不到,可以先看下是否打开 topic 的全文索引。

赞 (0)
上一篇 4天前
下一篇 4天前