AWS Cloudwatch 日志状态显示正在运行,但日志在 AWS 控制台中不可用
Posted
技术标签:
【中文标题】AWS Cloudwatch 日志状态显示正在运行,但日志在 AWS 控制台中不可用【英文标题】:AWS Cloudwatch logs status shows running but logs are not available in AWS console 【发布时间】:2021-06-22 01:02:58 【问题描述】:我是 aws 新手,我必须将应用程序服务日志发布到云手表。我尝试了 AWS 文档中提到的步骤及其工作。我通过詹金斯管道配置了相同的步骤。在这里我面临一个问题。日志未发布,即我无法从 AWS 控制台看到日志。我登录到 ec2 实例并检查 cloudwatch 服务状态,它显示
"status": "running",
"starttime": "2021-03-25T07:40:21+0000",
"configstatus": "configured",
"cwoc_status": "stopped",
"cwoc_starttime": "",
"cwoc_configstatus": "not configured",
"version": "1.247347.3b250378"
不明白这里有什么问题:(。
任何帮助都会有所帮助。
提前致谢。
【问题讨论】:
您绑定到 EC2 的 IAM 角色是否有权写入 CloudWatch? 是的,绑定到 EC2 的 IAM 角色有权写入 CloudWatch 您能分享更多您遵循哪个文档进行设置的信息。我关注了这个Quick Start: Install and Configure the CloudWatch Logs Agent on a Running EC2 Linux Instance,它没有任何问题。 @samtoddler 我已经按照这里提到的步骤link 【参考方案1】:我点击了你提到的链接Installing and Running the CloudWatch Agent on Your Servers。
以下是我用于推送日志和其他一些指标的配置,由该命令生成
Run the CloudWatch Agent Configuration Wizard
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
"agent":
"metrics_collection_interval": 60,
"run_as_user": "root"
,
"logs":
"logs_collected":
"files":
"collect_list": [
"file_path": "/var/log/messages",
"log_group_name": "messages",
"log_stream_name": "instance_id"
]
,
"metrics":
... # metrics configuration here
按照文档中的说明启动客户端
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a \
fetch-config -m ec2 -s -c file:///opt/aws/amazon-cloudwatch-agent/bin/config.json
Start the CloudWatch Agent Using the Command Line
# /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status
"status": "running",
"starttime": "2021-03-26T11:46:14+0000",
"version": "1.247345.35"
如果有问题可以在logs目录里面找
[root@ip-xx amazon-cloudwatch-agent]# ls
amazon-cloudwatch-agent.log configuration-validation.log state
[root@ip-xx amazon-cloudwatch-agent]# pwd
/var/log/amazon/amazon-cloudwatch-agent
附带说明,如果我只想将日志推送到 cloudwatch,我会使用这个
Quick Start: Install and Configure the CloudWatch Logs Agent on a Running EC2 Linux Instance
【讨论】:
我的配置和步骤都是一样的。我能看到的唯一区别是用户。 “run_as_user”:“cwagent” 会是这个原因吗?? @Priyanka 是的,如果用户cwagent
没有读取您尝试推送的日志的权限,那么这会造成麻烦。 Running the CloudWatch Agent as a Different User。尝试将用户更改为root
。如果没有,应该可以工作,您可以按照链接的指南以不同的用户身份运行代理。
那是问题.. run_as_user : cwagent 没有权限。将其更改为 root .. 现在它工作正常.. 谢谢 :)以上是关于AWS Cloudwatch 日志状态显示正在运行,但日志在 AWS 控制台中不可用的主要内容,如果未能解决你的问题,请参考以下文章
如何匹配 aws cloudwatch 日志中的多个模式以触发 lambda
AWS Elastic Beanstalk PHP 日志不在 CloudWatch 中
使用 Terraform 将 AWS Lambda 日志写入 CloudWatch 日志组
AWS Elastic Beanstalk:将容器日志流式传输到 CloudWatch 问题