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

Amazon Linux 2环境下Elastic Beanstalk无法向CloudWatch传输自定义日志

自定义日志无法推送至CloudWatch的排查方案

问题概述

已创建CloudWatch Agent配置文件/opt/aws/amazon-cloudwatch-agent/etc/shoryuken.json并执行追加配置命令,配置验证成功,Agent已启停,但CloudWatch未接收到/var/app/current/log/shoryuken.log的日志内容。

配置文件内容:

{
  "logs": {
    "logs_collected": {
      "files": {
        "collect_list": [
          {
            "file_path": "/var/app/current/log/shoryuken.log",
            "log_group_name": "/aws/elasticbeanstalk/Demo-env/var/app/current/log/shoryuken.log",
            "log_stream_name": "{instance_id}"
          }
        ]
      }
    }
  }
}

执行的追加命令:

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/etc/shoryuken.json -s

命令输出显示配置验证成功,但日志推送问题未解决。


排查步骤

1. 检查日志文件的可读性与权限

CloudWatch Agent运行用户(通常为cwagent或root)必须具备读取目标日志文件的权限:

  • 查看文件权限:
    ls -l /var/app/current/log/shoryuken.log
    
  • 模拟Agent用户读取文件:
    sudo -u cwagent cat /var/app/current/log/shoryuken.log
    
    如果报错Permission denied,需调整文件或目录权限(如执行chmod o+r /var/app/current/log/shoryuken.log,或修改文件所属组)。

2. 查看CloudWatch Agent自身日志

Agent日志会记录推送过程中的错误,路径通常为:

/var/log/amazon/cloudwatch-agent/amazon-cloudwatch-agent.log

搜索关键信息定位问题:

grep -E "shoryuken|error|denied" /var/log/amazon/cloudwatch-agent/amazon-cloudwatch-agent.log

3. 确认日志组与Region匹配

  • 登录CloudWatch控制台,检查日志组/aws/elasticbeanstalk/Demo-env/var/app/current/log/shoryuken.log是否存在于EC2实例所在的Region。
  • 核对Agent检测到的Region是否与控制台一致(从命令输出可知Agent已从EC2获取Region,需确认控制台未选错Region)。

4. 验证日志文件是否有新内容

如果目标日志文件长时间无更新,Agent可能不会触发推送:

  • 手动写入测试日志:
    echo "CloudWatch test log entry: $(date)" >> /var/app/current/log/shoryuken.log
    
  • 等待3-5分钟后,查看CloudWatch日志组是否出现该测试条目。

5. 检查EC2实例的IAM权限

EC2实例的IAM角色必须具备CloudWatch日志推送的权限,需包含以下至少一项:

  • 内置权限CloudWatchLogsFullAccess
  • 精细权限:logs:CreateLogGroup、logs:CreateLogStream、logs:PutLogEvents
  • 登录IAM控制台,检查实例关联角色的权限策略是否配置正确。

6. 确认CloudWatch Agent运行状态

  • 查看Agent当前状态:
    /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status
    
  • 如果状态异常,强制重启Agent:
    /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a stop
    /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a start
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 18:28:24