Cloudwatch代理未将日志发送到cloudwatch

时间:2019-11-01 11:48:10

标签: amazon-web-services amazon-cloudwatch

我正在尝试向CloudWatch发送两个日志。

这是两个日志:

  1. /var/log/apache2/access.log
  2. /var/log/apache2/error.log

我使用amazon-cloudwatch-agent-config-wizard创建了配置文件,下面是该文件的片段,显示了正确的文件路径:

"collect_list": [
    {
         "file_path": "/var/log/apache2/access.log",
         "log_group_name": "*group_name*",
         "log_stream_name": "apache-access"
    },
    {
         "file_path": "/var/log/apache2/error.log",
         "log_group_name": "group-name*",
         "log_stream_name": "apache-error"
    }
]

我在配置中加载了:

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s

并且没有遇到任何错误,也没有错误并显示在amazon-cloudwatch-agent.log中。

检查Amazon CloudWatch Agent的状态表明它正在运行并且没有错误。还指出该架构有效。

所有这一切的独特之处在于,我删除了旧的CloudWatch代理并安装了新的。我已经在两个EC2实例上完成了此操作,其中一个实例一切运行正常,另一个实例未将日志发送到CloudWatch。

简而言之,为什么日志不上CloudWatch?我该怎么做才能解决此问题?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

检查

  • CloudWatch Agent日志-{ "type" : "struct", "fields" : [ { "name" : "date_generated", "type" : "string", "nullable" : true, "metadata" : {} }, { "name" : "time_generated", "type" : "string", "nullable" : true, "metadata" : {} } ] } 。 在这两个文件中,您都应该看到一些类似于-/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log的行。

  • 代理toml文件,以确保配置了两个文件路径,并检查了该区域- Reading from /var/log/apache2/access.log

答案 1 :(得分:0)

因此,该问题原来是基于权限的。 CloudWatch配置向导默认使用cwagent作为运行CloudWatch的用户,官方指南中也重申了这一点。

更改运行用户使用root可以解决该问题,即使在尝试运行该文件时,所有相关文件都具有777权限。

您编辑的配置文件为:

sudo nano /opt/aws/amazon-cloudwatch-agent/bin/config.json

在文件顶部,您将看到:

"agent": {
    "metrics_collection_interval": 60,
    "run_as_user": "cwagent"
},

您需要将run_as_user更改为root,例如:

"agent": {
    "metrics_collection_interval": 60,
    "run_as_user": "root"
},

更改后,您只需重新加载配置文件:

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s

然后重新启动服务:

sudo systemctl restart amazon-cloudwatch-agent.service

然后您应该看到日志进入CloudWatch。期待一些回填。