我正试图将两批日志发送到CloudWatch。
以下是这两条日志:
我使用agent- config -向导来创建配置文件,下面是显示正确文件路径的文件片段:
"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没有遇到错误,也没有错误,并显示在agent.log中。
检查Amazon代理的状态显示它正在运行,并且没有错误。还声明架构是有效的。
所有这些的独特之处在于,我已经删除了旧的CloudWatch代理并安装了新的代理。我已经在两个EC2实例上这样做了,其中一个实例一切都运行良好,另一个实例没有将日志发送到CloudWatch。
简单地说,为什么日志不指向CloudWatch呢?我能做些什么来排除这个问题呢?
任何帮助都将不胜感激。
发布于 2019-11-14 14:15:22
所以问题最终证明是基于许可的。CloudWatch配置向导默认使用cwagent作为运行CloudWatch的用户,官方指南中也重申了这一点。
将运行the更改为root解决了这个问题,尽管在试图使其运行时,所讨论的文件都有777个权限。
您编辑的配置文件是:
sudo nano /opt/aws/amazon-cloudwatch-agent/bin/config.json在文件的顶部,您将看到:
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "cwagent"
},您需要将run_as_user更改为根,例如:
"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。预计会有回填。
发布于 2019-11-13 10:12:49
检查
/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log。在这里,您应该看到两个文件的一些类似于- Reading from /var/log/apache2/access.log的行。Reading from /var/log/apache2/access.log。https://stackoverflow.com/questions/58658744
复制相似问题