如何解决Java应用程序的AWS Elastic Beanstalk默认CloudWatch日志位置
我已经使用负载均衡器和最多2个EC2实例在AWS Elastic Beanstalk环境中部署了JAR文件。
我的环境似乎正在使用新的统一CloudWatch代理,而不是旧的CloudWatch Logs代理
在控制台的环境配置中,我打开了“实例日志流式传输到CloudWatch Logs”,现在在CloudWatch Logs中,我得到以下组:
-
/aws/elasticbeanstalk/myapp-myenv/var/log/eb-engine.log
-
/aws/elasticbeanstalk/myapp-myenv/var/log/eb-hooks.log
-
/aws/elasticbeanstalk/myapp-myenv/var/log/nginx/access.log
-
/aws/elasticbeanstalk/myapp-myenv/var/log/nginx/error.log
-
/aws/elasticbeanstalk/myapp-myenv/var/log/web.stdout.log
这很好。值得注意的是,Web服务器访问位于access.log
中,甚至我的JAR文件的STDOUT控制台输出也位于web.stdout.log
中。到目前为止一切顺利。
现在让我们说我希望我的JAR应用程序生成一个日志文件,并在CloudWatch Logs中自动将其拾取。我已经读过Elastic Beanstalk EC2 logging documentation,上面说我可以在应用程序中捆绑特殊的.ebextensions
来指示新的日志记录位置“ [i]如果您的应用程序在不属于默认值的位置生成日志,您的环境平台的配置”。
短期而言,我不想创建一个.ebextensions
文件。关于“……位置……默认配置的一部分……”的部分引起了我的兴趣。
Elastic Beanstalk Java平台日志是否存在默认位置?换句话说,是否存在一些/var/log/app/
之类的默认位置,我可以将我的应用程序日志简单地存储到该位置(例如(通过环境变量配置),并让带有新的统一代理的CloudWatch Logs自动选择它们,而无需创建.ebextensions
文件? (作为第二好的解决方案,有没有办法我可以使用AWS控制台配置位置?)
解决方法
我不这么认为。您在问题中提到的日志文件被硬编码到配置文件/opt/aws/amazon-cloudwatch-agent/etc/beanstalk.json
中:
{
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/eb-engine.log","log_group_name": "/aws/elasticbeanstalk/A03cBeanstalkApplicationMybeanstalka-env/var/log/eb-engine.log","log_stream_name": "{instance_id}"
},{
"file_path": "/var/log/eb-hooks.log","log_group_name": "/aws/elasticbeanstalk/A03cBeanstalkApplicationMybeanstalka-env/var/log/eb-hooks.log",{
"file_path": "/var/log/nginx/access.log","log_group_name": "/aws/elasticbeanstalk/A03cBeanstalkApplicationMybeanstalka-env/var/log/nginx/access.log",{
"file_path": "/var/log/nginx/error.log","log_group_name": "/aws/elasticbeanstalk/A03cBeanstalkApplicationMybeanstalka-env/var/log/nginx/error.log",{
"file_path": "/var/log/web.stdout.log","log_group_name": "/aws/elasticbeanstalk/A03cBeanstalkApplicationMybeanstalka-env/var/log/web.stdout.log","log_stream_name": "{instance_id}"
}
]
}
}
}
}
aws:elasticbeanstalk:cloudwatch:logs没有添加额外日志文件的选项。
在我看来,您将必须通过extensions
配置文件来自定义配置文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。