aws弹性beanstalk java应用程序的默认cloudwatch日志位置

bq9c1y66  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(427)

我在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控制台配置位置?)

zz2j4svz

zz2j4svz1#

我不这么认为。您在问题中提到的日志文件是硬编码到配置文件中的 /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",
                                                "log_stream_name": "{instance_id}"
                                        },
                                        {
                                                "file_path": "/var/log/nginx/access.log",
                                                "log_group_name": "/aws/elasticbeanstalk/A03cBeanstalkApplicationMybeanstalka-env/var/log/nginx/access.log",
                                                "log_stream_name": "{instance_id}"
                                        },
                                        {
                                                "file_path": "/var/log/nginx/error.log",
                                                "log_group_name": "/aws/elasticbeanstalk/A03cBeanstalkApplicationMybeanstalka-env/var/log/nginx/error.log",
                                                "log_stream_name": "{instance_id}"
                                        },
                                        {
                                                "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 does 没有任何添加额外日志文件的选项。
在我看来,您必须通过 extensions 配置文件。

相关问题