AKS 1.20+containerd环境下DataDog Agent无法采集应用日志问题问询
AKS 1.20+集群Datadog Agent日志采集失败排查步骤
1. 检查日志采集核心开关配置
你当前的values.yaml未包含日志功能的启用配置,需补充以下配置:
datadog: # 开启日志采集总开关 logs: enabled: true containerCollectAll: true # 开启CRI格式日志解析,适配containerd运行时 containerUseCRI: true
2. 补充日志目录挂载配置
AKS 1.20+使用containerd作为运行时后,容器控制台日志默认存储在/var/log/pods和/var/lib/docker/containers路径下,你当前的values.yaml未挂载这两个主机目录,需在agents的volumes和volumeMounts中补充配置:
agents: volumes: # 原有certs卷配置保留,新增以下卷 - hostPath: path: /var/log/pods name: podslog - hostPath: path: /var/lib/docker/containers name: dockercontainers volumeMounts: # 原有certs挂载配置保留,新增以下挂载 - name: podslog mountPath: /var/log/pods readOnly: true - name: dockercontainers mountPath: /var/lib/docker/containers readOnly: true
3. 验证Agent日志采集模块状态
进入任意运行正常的Datadog Agent Pod,执行以下命令查看日志采集组件状态:datadog-agent status | grep -A 20 "Logs Agent"
重点排查以下信息:
- 日志采集组件是否处于Running状态
- 是否检测到可采集的容器日志路径
- 是否存在路径访问权限、日志格式解析类报错
4. 检查containerd套接字挂载正确性
确认criSocketPath对应的套接字文件已被Agent正常挂载,默认Datadog Helm chart会自动挂载该路径,若未自动挂载需手动补充到volumes和volumeMounts中:
agents: volumes: - hostPath: path: /var/run/containerd/containerd.sock name: containerdsock volumeMounts: - name: containerdsock mountPath: /var/run/containerd/containerd.sock readOnly: true
5. 验证主机日志路径权限
通过特权容器进入节点后,执行ls -l /var/log/pods确认目录权限为755,目录下的日志文件权限为644,确保Agent运行用户(默认dd-agent)有读取权限。
内容的提问来源于stack exchange,提问作者Sean Ivins
相关产品推荐
相关产品推荐

