tencent cloud

文档反馈

自建 K8S 日志采集排查指南

最后更新时间:2024-01-20 17:11:57
    按照自建 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
    查看日志: kubectl logs cls-provisioner-xxx -n kube-system 如下图所示:
    
    查看 cls-provisioner 的日志,来看同步错误的具体原因。
    注意:
    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。 采集 container 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
    
    确定是否有如上图所示类似 readFile logs send succ!|topicid 的字样,如果有,则表示日志成功采集到对应的 topic 了;如果没有如上的字样,那说明采集有问题,可以联系相关研发人员。 如果已经采集到了 topic,但是检索不到,可以先看下是否打开 topic 的全文索引。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持