我设置了一个AWS Elasticbeanstalk环境,该平台是Tomcat。现在,我的要求是将Tomcat日志catalina.out
流式传输到AWS Cloudwatch。通过关注官方文档,我得到了以下结果:
如果我部署单个war
文件,并且在其根文件夹中有一个.ebextensions文件夹,那么我可以在Cloudwatch中找到catalina.out
了!
但是如果我部署一个zip
文件,它的结构是:
app.zip
- .ebextensions
- app1.war
- app2.war
我在Cloudwatch中找不到日志!
.ebextensions文件夹中的.config文件写为:
files:
"/etc/awslogs/config/beanstalklogs_custom.conf":
mode: "000600"
owner: root
group: root
content: |
[/var/log/tomcat8/catalina.out]
log_group_name = `{"Fn::Join":["/", ["/aws/elasticbeanstalk", { "Ref":"AWSEBEnvironmentName" }, "var/log/tomcat8/catalina.out"]]}`
log_stream_name = {instance_id}
file = /var/log/tomcat8/catalina.out*
我该如何解决这个问题?
答案 0 :(得分:0)
您可以使用AWS Appender将应用程序日志写入CloudWatch。要将其与Elastic Beankstalk一起使用,您需要向Elastic Beanstalk使用的执行角色添加权限。检查您的Elastic Beanstalk Instant profile