filebeat收集不上k8s日志排查小记

背景:

在一个k8s集群上,以daemonset的方式部署的filebeat,收集k8s各节点运行容器的日志。发现其中有一个宿主机节点的日志无法被收集上来,其他节点日志收集正常。

排查:

1. Filebeat运行的POD状态为Running状态。

2. 查看该filebeat运行日志,无异常信息。

3. 登录该异常的宿主机节点,进入filebeat配置文件配置的收集容器日志的目录,存在日志文件。

似乎看起来都正常。

再仔细看filebeat运行日志,在harvester相关的日志条目中,没有容器日志的目录。

同事找到了相关的文章,记一次EFK采集不到k8s日志数据的解决过程 - 代码天地

此文章出现问题的原因和我们的情况相似,但没有具体分析root cause。我来展开分析一下root cause:

filebeat pod挂载的容器Volume映射到宿主机上默认是/var/lib/docker/containers,而该k8s节点安装的docker不按标准的方式,放在了另外一个位置,导致宿主机的该目录,没有被挂载到filebeat pod中。而filebeat在pod收集的日志文件,需要通过软链接的方式,指向到/var/lib/docker/containers目录中。结果,在pod中,该软链接指向到了一个不存在的文件。尽管,在宿主机中,此软链接能正常指向。

兼容解决办法:

在filebeat的daemonset yaml配置文件中,添加该特殊目录至volumes和volumeMounts中。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值