我在AWS上有一个Elastic Beanstalk环境,我通过Docker容器进行部署。我已经从Bean配置的Bean配置中启用了默认日志,我们在CloudWatch中获得了标准日志,例如eb-activity.log。
我的目标是将自定义日志文件: logger.log集成到CloudWatch中。
Dockerrun.aws.json 看起来像这样:
{
"AWSEBDockerrunVersion": "1",
"Ports": [
{
"ContainerPort": "3000"
}
],
"Logging": "/path/to/logs"
}
然后在 .ebextensions / 01_cloudwatch.config 我有
files:
/etc/awslogs/config/my_app_log.conf:
content: |
[/var/log/eb-docker/containers/eb-current-app/logger.log]
log_group_name=/aws/elasticbeanstalk/appname/var/log/eb-docker/containers/eb-current-app/logger.log
log_stream_name={instance_id}
file=/var/log/eb-docker/containers/eb-current-app/logger.log
group: root
mode: "000600"
owner: root
eb-user 拥有CloudWatch(CloudWatchFullAccess和CloudWatchLogsFullAccess)的完全权限。另外,我可以验证是否存在 /var/log/eb-docker/containers/eb-current-app/logger.log 。
但是,日志不会出现在CloudWatch中。在同一目录中有出现在CloudWatch中的afc818177506-stdouterr.log文件,它们在/etc/awslogs/config/beanstalklogs.conf中配置。此外,我确保 sudo service awslogs restart 。
任何想法如何调试问题或者您是否看到我做的任何明显错误,因此logger.log不会出现在CloudWatch中?非常感谢!
PS。我已经查看了类似的问题并且已经花了很多时间来解决问题而没有成功,所以需要你的帮助。
答案 0 :(得分:0)
根据this reference底部的Cloudwatch代理常见问题解答,这些是未发送日志事件的常见原因:
最后 - 要解决为什么cloudwatch日志代理可能会失败,请检查
/var/log/awslogs.log
并且在EC2实例上正确安装了代理进行故障排除,请检查/var/log/awslogs-agent-setup.log
查看这些提示是否有帮助,如果您仍然遇到更多信息,请回复,我们会继续尝试为您提供帮助。