amazon-web-services - 降低 AWS EC2 的日志轮换频率

标签 amazon-web-services amazon-ec2 log4j amazon-elastic-beanstalk

我有一个在弹性beanstalk上运行的java应用程序,设置了到S3的日志轮换并且工作正常。但是,我发现我的 catalina.out 日志文件在滚动到新文件之前最多只存在 15 分钟,这使得同一天的调试问题变得更加乏味(从 s3 获取 gz 并解压缩,而不是仅仅 ssh-ing 和读取日志文件)。

有什么方法可以通过 tomcat/log4j 或 elastic-beanstalk 控制台进行配置吗?我相信这是 AWS 的事情,因为我们在 Dotcloud 上部署了相同的应用程序,并且它每天保留一个日志文件。

最佳答案

截至今天,情况并非如此。您唯一可以做的就是修改运行应用程序的 EC2 实例中的文件/etc/logrotate.conf.elasticbeanstalk。

更改日志的大小,这应该将更多日志信息放入一个文件中:

/var/log/tomcat6/catalina.out /var/log/tomcat6/monitor_catalina.log /var/log/tomcat6/tail_catalina.log {
    size 20M <-- change to the file size that you want
    missingok
    rotate 2
    compress
    notifempty
    copytruncate
    dateext
    dateformat -%s
    lastaction
        /bin/chown tomcat:elasticbeanstalk /var/log/tomcat6/*gz; /bin/chmod 664 /var/log/tomcat6/*gz
    endscript
}

这里还有另一篇文章提供了更多信息:

Rotating S3 Logging using log4j with Elastic Beanstalk

关于amazon-web-services - 降低 AWS EC2 的日志轮换频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21187974/

相关文章:

linux - 弹性beantalk ssh - 多用户

java - 某些日志不会在 Javaagent 中打印

log4j - Drools 业务规则管理是否受 CVE-2021-44228 影响

javascript - AWS Lambda 到 AWS Lambda 权限

amazon-ec2 - 仅从 EC2 实例配置文件中获取 boto3 凭证

amazon-web-services - 如何使用 Amazon Lex 获取客户的语音输入并使用 amazon connect 将该信息传递到正确的路径?

node.js - 通过 UDP 和 Node.js 通过 WAN 在两台计算机之间传递 OSC 消息

java - Log4j 和 Logback FileAppender maxFileSize 和 maxBackupIndex

ajax - 发送至 Amazon S3 的跨域 AJAX 请求

linux - 如何使用 cloudwatch 以外的脚本获取 AWS RDS CPU 和内存指标