我在aws弹性beanstalk环境中部署了一个jar文件,使用了一个负载均衡器和最多2个ec2示例。
我的环境似乎在使用新的统一cloudwatch代理,而不是遗留的cloudwatch logs代理
在控制台的环境配置中,我打开了“示例日志流到cloudwatch日志”,现在在cloudwatch日志中,我得到了以下组: /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日志中自动获取它。我读过elastic beanstalk ec2日志记录文档,其中说我可以绑定特殊的 .ebextensions
在我的应用程序中,指示新的日志记录位置“[i]f您的应用程序在不属于您的环境平台默认配置的位置生成日志”。
在短期内,我宁愿不创造一个 .ebextensions
文件。关于“…一个位置…默认配置的一部分…”的部分引起了我的兴趣。
elastic beanstalk java平台日志是否有默认位置?换句话说,是否有一些默认位置,例如 /var/log/app/
我可以简单地让我的应用程序登录到(例如,通过环境变量配置)并让新的统一代理的cloudwatch日志自动获取它们,而无需创建 .ebextensions
文件(作为第二个最佳解决方案,是否有一种方法可以使用aws控制台配置位置?)
1条答案
按热度按时间zz2j4svz1#
我不这么认为。您在问题中提到的日志文件是硬编码到配置文件中的
/opt/aws/amazon-cloudwatch-agent/etc/beanstalk.json
:这个aws:elasticbeanstalk:cloudwatch:logs does 没有任何添加额外日志文件的选项。
在我看来,您必须通过
extensions
配置文件。