首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cloudwatch代理不向cloudwatch发送日志

Cloudwatch代理不向cloudwatch发送日志
EN

Stack Overflow用户
提问于 2019-11-01 11:48:10
回答 2查看 7.3K关注 0票数 3

我正试图将两批日志发送到CloudWatch。

以下是这两条日志:

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

我使用agent- config -向导来创建配置文件,下面是显示正确文件路径的文件片段:

代码语言:javascript
复制
"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"
    }
]

我在配置中加载了以下内容:

代码语言:javascript
复制
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呢?我能做些什么来排除这个问题呢?

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-14 14:15:22

所以问题最终证明是基于许可的。CloudWatch配置向导默认使用cwagent作为运行CloudWatch的用户,官方指南中也重申了这一点。

将运行the更改为root解决了这个问题,尽管在试图使其运行时,所讨论的文件都有777个权限。

您编辑的配置文件是:

代码语言:javascript
复制
sudo nano /opt/aws/amazon-cloudwatch-agent/bin/config.json

在文件的顶部,您将看到:

代码语言:javascript
复制
"agent": {
    "metrics_collection_interval": 60,
    "run_as_user": "cwagent"
},

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

代码语言:javascript
复制
"agent": {
    "metrics_collection_interval": 60,
    "run_as_user": "root"
},

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

代码语言:javascript
复制
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

然后重新启动服务:

代码语言:javascript
复制
sudo systemctl restart amazon-cloudwatch-agent.service

然后,您将看到日志进入CloudWatch。预计会有回填。

票数 7
EN

Stack Overflow用户

发布于 2019-11-13 10:12:49

检查

  • CloudWatch代理日志- /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log。在这里,您应该看到两个文件的一些类似于- Reading from /var/log/apache2/access.log的行。
  • 是代理toml文件,以确保配置了两个文件路径并检查该区域-Reading from /var/log/apache2/access.log
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58658744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档