You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CloudWatch Logs不采集Docker /var/logs路径日志问题排查求助

跨区域EC2实例CloudWatch Agent日志采集范围差异排查方案

1. 核对CloudWatch Agent实际运行配置

两台实例部署模板一致不代表运行时配置完全相同,优先导出实际生效配置比对:

  • 分别在两台实例执行命令导出配置:sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a get-config
  • 重点对比logs.collect_list段的file_path规则:确认法兰克福实例的配置是否仅包含/var/lib/docker/overlay2/**/*.log类窄匹配规则,未添加/、/var路径下的通配采集规则
  • 注意路径匹配优先级:如果窄范围规则写在广域规则之前,会优先命中窄规则,导致后续广域路径规则不生效

2. 核对IAM权限配置

权限限制会导致日志即使配置了采集也无法推送:

  • 确认两台EC2关联的IAM角色都包含CloudWatchAgentServerPolicy托管策略,或自定义策略中放开了logs:CreateLogGroup、logs:CreateLogStream、logs:PutLogEvents三个必要权限
  • 检查自定义策略是否配置了aws:RequestedRegion区域限制条件,确认法兰克福区域在允许的访问列表内

3. 核对日志路径访问权限

采集路径权限不足是最常见的采集失败原因:

  • 执行命令确认Agent运行身份:ps aux | grep amazon-cloudwatch-agent
  • 核对法兰克福实例/、/var路径下目标日志文件的权限,确认Agent运行身份对日志文件有读权限、对日志父目录有执行权限
  • Docker默认的/var/lib/docker目录权限为700,仅root用户可访问:如果Agent未以root身份运行,只有被单独放开权限的overlay2子路径能被采集,上层/、/var路径会因权限不足无法读取

4. 核对Docker运行时配置

docker-compose配置一致不代表节点级Docker配置完全相同:

  • 分别在两台实例执行命令查看默认日志驱动:docker info | grep LoggingDriver,确认两边配置一致
  • 执行命令查看运行中容器的日志存储路径:docker inspect <容器ID> | grep LogPath,确认美国区实例能采集到的/、/var下的日志,是否为容器挂载到宿主机的共享路径,法兰克福实例的对应容器未做相同挂载配置

5. 查看CloudWatch Agent运行日志

Agent自身日志会直接输出采集失败的具体原因:

  • 默认日志存储路径为/var/log/amazon/cloudwatch-agent/,搜索日志中permission denied、no such file or directory、pattern matches no files类报错,可直接定位根因

6. 核对CloudFormation区域差异化配置

模板静态一致不代表部署时的参数传递一致:

  • 检查CloudFormation模板是否配置了区域级别的条件参数,比如不同区域给Agent配置传入了不同的采集路径列表
  • 检查EC2实例的UserData脚本是否存在区域判断逻辑,导致不同区域的实例初始化时生成了不同的Agent配置文件

内容的提问来源于stack exchange,提问作者Joe Crane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:54:03