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

AWS Elastic Beanstalk Docker自定义日志logger.log无法同步至CloudWatch求助

排查Elastic Beanstalk Docker环境自定义日志无法同步到CloudWatch的问题

咱们一步步来拆解这个问题,先从配置细节和调试手段入手:

一、先检查.ebextensions配置的格式问题

YAML格式对缩进和语法要求很严格,你的01_cloudwatch.config可能存在格式疏漏,比如content块内的ini配置、键值对的空格等。正确的配置格式应该是这样的:

files:
  /etc/awslogs/config/my_app_log.conf:
    content: |
      [/var/log/eb-docker/containers/eb-current-app/logger.log]
      log_group_name = /aws/elasticbeanstalk/appname/var/log/eb-docker/containers/eb-current-app/logger.log
      log_stream_name = {instance_id}
      file = /var/log/eb-docker/containers/eb-current-app/logger.log
    group: root
    mode: "000600"
    owner: root

注意:

  • ini配置里的键值对最好加上空格(比如log_group_name = xxx),避免解析异常
  • 确认整个YAML的缩进层级一致,不要出现混合缩进的情况

二、关键调试步骤

1. 查看awslogs自身的运行日志

awslogs服务会把采集失败的原因(比如路径不存在、权限不足、配置错误)记录在本地日志里,执行这条命令查看实时日志:

tail -f /var/log/awslogs.log

如果看到类似No such file or directory或Permission denied的报错,就能直接定位问题。

2. 验证自定义日志配置的合法性

用awslogs自带的工具测试你的配置文件是否有效:

awslogs-agent-cli -c /etc/awslogs/config/my_app_log.conf -t

这个命令会检查配置语法、日志文件路径是否存在、权限是否允许读取,直接给出验证结果。

3. 确认日志文件的权限与内容

虽然你说文件存在,但还是要确认:

  • 执行ls -l /var/log/eb-docker/containers/eb-current-app/logger.log,检查文件的所有者和权限,确保root用户(awslogs服务默认以root运行)有读取权限
  • 确认文件里有实际内容,空日志文件可能不会被立即同步到CloudWatch

4. 检查容器内的日志输出路径

你的Dockerrun.aws.json里配置了Logging: "/path/to/logs",这是容器内的路径,EB会把这个路径映射到主机的/var/log/eb-docker/containers/eb-current-app/下。需要确认:

  • 容器内的/path/to/logs/logger.log确实在输出日志
  • 可以通过docker exec -it <你的容器ID> cat /path/to/logs/logger.log验证容器内的日志内容

5. 确认awslogs服务状态

执行以下命令确保服务正常运行,并且配置修改后已经重启:

sudo service awslogs status
sudo service awslogs restart

三、其他可能的遗漏点

  • 检查CloudWatch Logs控制台,确认是否已经创建了对应的日志组(有时候新日志组会延迟几分钟显示)
  • 替换log_group_name里的appname为你实际的Elastic Beanstalk环境名称,虽然不影响采集,但能和默认日志组的命名规则保持一致,方便管理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:45:56