Kubernetes集群中DataDog日志采集失效问题排查求助
问题:DataDog Agent无法将应用Pod日志同步至DataDog平台
我们通过DataDog Operator在Kubernetes 1.22集群中部署DataDog,采用Helm安装且未做自定义配置,已遵循官方指引操作。目前Operator、Cluster Agent及节点Agent Pod均正常运行,Agent可与DataDog端点正常通信(集群已显示在DataDog基础设施列表中),但应用Pod的日志未出现在DataDog平台中,无法定位原因。
已确认以下关键信息:
- Agent配置中
agent.log.enabled设为true; - 应用Pod日志存在于
/var/log/pods/目录,包含预期日志内容; - DataDog Agent可访问这些日志文件。
推测问题出在Agent采集到日志到显示在DataDog UI之间的环节,恳请提供排查思路。
Agent配置
apiVersion: datadoghq.com/v1alpha1 kind: DatadogAgent metadata: name: datadog namespace: datadog spec: agent: apm: enabled: false config: tolerations: - operator: Exists image: name: "gcr.io/datadoghq/agent:latest" log: enabled: true process: enabled: false processCollectionEnabled: false clusterAgent: config: admissionController: enabled: true mutateUnlabelled: true clusterChecksEnabled: true externalMetrics: enabled: true image: name: "gcr.io/datadoghq/cluster-agent:latest" replicas: 1 clusterChecksRunner: {} credentials: apiSecret: keyName: api-key secretName: datadog-secret appSecret: keyName: app-key secretName: datadog-secret features: kubeStateMetricsCore: enabled: false logCollection: enabled: true orchestratorExplorer: enabled: false
某DataDog Agent的环境变量
DD_API_KEY : secretKeyRef(datadog-secret.api-key) DD_CLUSTER_AGENT_AUTH_TOKEN : secretKeyRef(datadog.token) DD_CLUSTER_AGENT_ENABLED : true DD_CLUSTER_AGENT_KUBERNETES_SERVICE_NAME : datadog-cluster-agent DD_COLLECT_KUBERNETES_EVENTS : false DD_DOGSTATSD_ORIGIN_DETECTION : false DD_DOGSTATSD_SOCKET : /var/run/datadog/statsd/statsd.sock DD_EXTRA_CONFIG_PROVIDERS : clusterchecks endpointschecks DD_HEALTH_PORT : 5555 DD_KUBERNETES_KUBELET_HOST : fieldRef(v1:status.hostIP) DD_LEADER_ELECTION : false DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL : false DD_LOGS_CONFIG_K8S_CONTAINER_USE_FILE : true DD_LOGS_ENABLED : true DD_LOG_LEVEL : INFO KUBERNETES : yes
排查思路
1. 检查日志采集范围配置
当前环境变量DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL设为false,Agent仅会采集带有ad.datadoghq.com/<container-name>.logs: 'true'标签的Pod日志。可按以下步骤验证:
- 为目标应用Pod添加上述标签,观察日志是否出现在DataDog平台;
- 临时将
DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL改为true,测试是否能采集所有容器日志,确认是否是范围限制导致的问题。
2. 查看Agent内部日志
进入Agent Pod查看日志,定位采集或发送环节的问题:
kubectl exec -n datadog <agent-pod-name> -- tail -f /var/log/datadog/agent.log
重点关注:
- 日志文件的采集状态(成功/失败记录);
- 日志发送至DataDog端点时的报错(如认证失败、网络不通);
- 日志过滤、丢弃相关的日志条目。
3. 检查DataDog平台日志管道规则
登录DataDog平台,进入Logs -> Pipelines页面:
- 检查是否存在将目标应用日志标记为丢弃的规则;
- 验证管道匹配条件是否正确,避免因规则错误导致日志未被解析显示。
4. 确认日志索引与存储配置
- 检查目标日志是否被发送到非默认索引,导致在默认视图中无法找到;
- 确认日志保留期限设置,排查是否因日志过期被清理。
5. 验证Agent日志发送连通性
- 确认
DD_SITE环境变量是否正确(若使用非默认DataDog站点); - 在Agent Pod内测试与日志接收端点的连通性:
kubectl exec -n datadog <agent-pod-name> -- curl -I https://http-intake.logs.datadoghq.com/v1/input
内容的提问来源于stack exchange,提问作者James Brady
相关产品推荐
相关产品推荐

