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

如何从Amazon Linux 2023实例将自定义日志流式传输到CloudWatch

解决方案:AL2023 Elastic Beanstalk 自定义日志流式传输适配

核心差异说明

Amazon Linux 2023(AL2023)环境中,Elastic Beanstalk不再使用awslogs服务,而是采用Amazon CloudWatch Agent负责日志采集与流式传输,这是原AL2配置失效的根本原因。

步骤1:创建适配AL2023的CloudWatch Agent配置文件

在项目根目录的.ebextensions文件夹中新建配置文件(例如01-cloudwatch-custom-logs.config),内容如下:

files:
  # 生成CloudWatch Agent的核心配置文件
  "/etc/amazon/cloudwatch-agent/config.json":
    mode: "000644"
    owner: root
    group: root
    content: |
      {
        "agent": {
          "metrics_collection_interval": 60,
          "run_as_user": "root"
        },
        "logs": {
          "logs_collected": {
            "files": {
              "collect_list": [
                # 替换为你的自定义日志路径与日志组配置
                {
                  "file_path": "/var/www/html/app.log",
                  "log_group_name": "/aws/elasticbeanstalk/[你的环境名称]/app-log",
                  "log_stream_name": "{instance_id}",
                  "timestamp_format": "%Y-%m-%d %H:%M:%S"
                },
                {
                  "file_path": "/var/log/your-custom-service.log",
                  "log_group_name": "/aws/elasticbeanstalk/[你的环境名称]/service-log",
                  "log_stream_name": "{instance_id}"
                }
              ]
            }
          }
        }
      }

commands:
  # 重启CloudWatch Agent加载新配置
  01_restart_cloudwatch_agent:
    command: systemctl restart amazon-cloudwatch-agent
    ignoreErrors: true

  # 确保CloudWatch Agent开机自启
  02_enable_cloudwatch_agent:
    command: systemctl enable amazon-cloudwatch-agent
    ignoreErrors: true

配置细节说明:

  • file_path:填写自定义日志文件的绝对路径,避免使用相对路径
  • log_group_name:建议沿用/aws/elasticbeanstalk/[环境名]/[日志标识]的规范,和默认日志组格式保持一致
  • log_stream_name:{instance_id}会自动替换为EC2实例ID,方便区分不同实例的日志流
  • timestamp_format:根据你的日志时间格式填写,若日志无标准时间戳可省略该字段

步骤2:验证IAM权限(可选)

原有的IAM策略已包含CloudWatch日志所需的全部权限(logs:CreateLogGroup、logs:CreateLogStream、logs:PutLogEvents、logs:DescribeLogStreams),无需额外修改。若之前未配置,确保EC2实例角色已附加该策略。

步骤3:部署并验证

  1. 将配置文件提交到代码仓库,部署到Elastic Beanstalk环境
  2. 登录EC2实例,执行systemctl status amazon-cloudwatch-agent确认服务正常运行
  3. 进入CloudWatch控制台,检查对应日志组是否已创建并开始接收日志

常见排查点

  • 日志文件权限:确保CloudWatch Agent(默认以root运行)有读取权限,可执行chmod 644 /path/to/your/log.log调整
  • Agent日志排查:执行tail -f /var/log/amazon/cloudwatch-agent.log查看采集过程中的报错信息
  • 路径正确性:反复确认自定义日志文件的绝对路径是否填写错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:58:14