Elastic Beanstalk没有流式传输到CloudWatch

时间:2018-11-14 15:25:18

标签: amazon-web-services amazon-cloudwatch amazon-elastic-beanstalk

我有一个Elastic Beanstalk实例,将我的日志流式传输到Cloud Watch已有大约一年的时间。本周日志已停止流式传输。这可能是因为我在Beanstalk中“重建”了环境。同时没有进行任何配置更改。

我已再次检查我的Beanstalk角色在IAM中具有正确的权限(它具有CloudWatchFullAccess)。

我还尝试删除所有现有的组日志。然后,我进入Beanstalk“实例日志流式传输到CloudWatch Logs”区域,更改了日志保留期限,然后重新启动了App Server。确保已经重新创建了我的日志组(具有新的保留期),因此我很确定权限看起来不错。尽管如此,日志组中没有出现日志消息。

我已经通过Beanstalk请求了最近的日志,并且可以在App Server上看到消息正在写入日志中。

我的平台是Tomcat 8 with Java 8 running on 64bit Amazon Linux/2.6.2

我不确定从这里去哪里。我没有错误消息可以解决,也没有下一步检查的好主意。

编辑:这是我对CloudWatch的自定义配置,定义为here

files:
  "/etc/awslogs/config/company_log.conf" :
    mode: "000600"
    owner: root
    group: root
    content: |
      [/var/log/tomcat8/company.log]
      log_group_name = `{"Fn::Join":["/", ["/aws/elasticbeanstalk", { "Ref":"AWSEBEnvironmentName" }, "var/log/tomcat8/company.log"]]}`
      log_stream_name = {instance_id}
      file = /var/log/tomcat8/company.*

1 个答案:

答案 0 :(得分:1)

可能是因为不允许这样做。确保允许EC2实例使用的角色进行访问:

2019-08-20T10:02:12.692802|{"id": 936699609, "text": "Sample text for event", "severity": "critical", "about": ["antenna", "connection", "modem", "network"]}
2019-08-20T09:56:58.656774|{"id": 164654307, "text": "Sample text for event", "severity": "info", "about": ["connection", "network"]}
2019-08-20T09:54:11.646938|{"id": 266579356, "text": "Sample text for event", "severity": "critical", "about": ["connection", "network", "antenna", "modem", "signal"]}

对于Elastic Beanstalk,EC2实例使用的IAM角色可能是logs:CreateLogGroup logs:CreateLogStream logs:GetLogEvents logs:PutLogEvents logs:DescribeLogGroups logs:DescribeLogStreams logs:PutRetentionPolicy 。授予该角色访问新策略的权限:aws-elasticbeanstalk-ec2-role(如果有人知道一个更好的名字,让我知道)使用JSON(建议here):

ec2-cloudwatch-logs-stream

它应该在用{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:GetLogEvents", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutRetentionPolicy" ], "Resource": [ "*" ] } ] } 重新启动awslogs服务之后才能工作。如果不;检查日志。您可以在这里找到它:sudo services awslogs restart