如何排查与 Elastic Beanstalk 环境的 CloudWatch 流式传输相关的错误?

1 分钟阅读
0

我想排查与 AWS Elastic Beanstalk 环境的 Amazon CloudWatch 流式传输相关的错误。

简短描述

将您的日志流式传输到 CloudWatch 有助于保护护您的数据。例如,如果您的 Elastic Beanstalk 环境遇到了终止的 Elastic Compute Cloud(Amazon EC2)实例,那么您仍然可以从 CloudWatch 恢复日志。您还可以使用日志轮换来防止数据丢失。

如果即使在激活了日志流式传输之后,您环境的实例日志仍未流式传输到 CloudWatch,则必须研究以下常见问题

  • 您的 IAM 实例配置文件角色缺少所需的 IAM 权限。
  • 您在不支持 CloudWatch Logs 的 AWS 区域启动了您的环境。
  • 您的一个自定义日志文件在您指定的路径中不存在。

解决方法

1.    验证您的 Elastic Beanstalk 环境实例配置文件角色是否具有以下权限:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

2.    如果您要流式传输自定义日志,则使用配置文件直接安装 CloudWatch Logs 代理并配置文件。此外,您还必须验证该配置文件的格式和缩进。有关将自定义日志流式传输到 CloudWatch 的更多信息,请参阅示例配置文件

3.    检查 CloudWatch 代理状态和代理日志,找出日志流式传输问题的原因。

检查旧的 CloudWatch 代理(awslogsd)状态和日志:

  • **代理状态:**systemctl status awslogsd.service
  • 代理日志位置:/var/log/awslogs.log

检查最新的 CloudWatch 代理(amazon-cloudwatch-agent)状态和日志:

  • **代理状态:**systemctl status amazon-cloudwatch-agent.service
  • 代理日志位置:/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

有关在 Elastic Beanstalk 中自定义日志文件的更多信息,请参阅我要如何在 Elastic Beanstalk 中自定义日志文件?


相关信息

将 Elastic Beanstalk 与 Amazon CloudWatch Logs 配合使用

logs-streamtocloudwatch-linux.config

AWS 官方
AWS 官方已更新 1 年前