在Elastic Beanstalk上使用catalina.out缓解存储问题



我遇到了一个问题,Tomcat 8 Java 8 Elastic Beanstalk实例上的catalina.out日志文件正在扩展到该实例中没有剩余存储的地步,这不允许该实例继续向CloudWatch发送日志,并阻止我部署新版本。catalina.out文件通过.eextension.转发到CloudWatch

有什么方法可以缓解这种情况吗?一些理论上的方法可能是滚动日志并删除旧版本的catalina.out,或者在实例没有存储空间时滚动实例。

在回答之前,请考虑以下内容:

  • 我知道日志不应该像现在这样大,这目前是一个限制,在不久的将来或修复此问题之前无法修复。

  • 我已经在使用基于不同参数的缩放,所以基于存储空间的缩放对我来说不可用

  • 我使用的是Log4j2,但catalina.out是由tomcat处理的,所以配置带有删除的滚动文件不是一个选项(特别是通过Log4j2,可能有一种方法可以通过AWS上的tomcat来实现)。

  • 除了将catalina.out文件的内容转发到CloudWatch之外,我还想将其保留在实例上,而不是直接将日志发送到CloudWatch。

  • 无法知道日志文件将占用的最大存储空间,因为您并不总是提前知道何时使用新实例(因此扩展存储空间不是一个长期解决方案)。

  • 将日志文件分离到不同的分区中,临时/实例存储可以很好地实现这一点。因此,即使填充,也不要损坏其他操作:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html

  • 使用CloudWatch日志代理运送和轮换日志:https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html

  • 使用.eextensions设置环境、JVM、Log4J和容器设置:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html

相关内容

  • 没有找到相关文章

最新更新