Elastic Agent在K8s中无法从部分节点采集容器日志求助
排查方向建议:Elastic Agent仅采集部分K8s节点容器日志问题
检查Elastic Agent的节点身份标识配置
- 确认DaemonSet中通过
downwardAPI正确挂载节点名称到Agent容器,确保日志元数据能关联到正确节点:env: - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - 验证Agent配置里的filestream组件是否将节点名称作为核心元数据字段,避免跨节点日志身份混淆。
- 确认DaemonSet中通过
排查CRI-O日志存储的符号链接异常
- 在node-02、03节点执行
ls -l /var/log/containers/,检查目录下的日志文件符号链接目标是否正确指向本地节点的CRI-O日志路径(如/var/log/pods/或/var/log/crio/),确认没有错误指向node-01的路径。
- 在node-02、03节点执行
核查filestream组件的采集规则配置
- 查看Kubernetes集成策略中的filestream输入配置,确认日志路径的匹配规则是否存在错误,比如误将node-01的节点名称作为全局过滤条件。
- 结合Agent诊断报告的
components/filestream-default部分,检查路径匹配、元数据关联的规则是否存在逻辑错误。
验证节点身份与kubelet配置
- 执行
kubectl describe node node-02和kubectl describe node node-03,查看节点的标签、身份标识是否唯一,没有与node-01重复的配置。 - 检查kubelet的日志相关配置,确认节点身份信息能正确传递给Agent。
- 执行
清理Agent本地缓存并重启
- 在node-02、03的Agent容器内执行以下命令清理缓存并重启:
rm -rf /usr/share/elastic-agent/data/* kill 1 - 重启后观察日志采集是否恢复正常,是否还出现跨节点日志关联的问题。
- 在node-02、03的Agent容器内执行以下命令清理缓存并重启:
核对版本兼容性
- 确认Elastic Stack v8.7与K8s v1.25、CRI-O的版本兼容性,排查是否存在已知的CRI-O日志采集相关bug。
内容的提问来源于stack exchange,提问作者Bartosz Rydz
相关产品推荐
相关产品推荐

