amazon-web-services - AWS Elastic Beanstalk 日志轮换

标签 amazon-web-services amazon-elastic-beanstalk logrotate

我在 AWS Elastic Beanstalk 上运行 Java 应用程序(Java 8 在 64 位 Amazon Linux/2.7.4 上运行)默认情况下,Java 应用程序记录到 STDOUT,Elastic Beanstalk 自动将 STDOUT 存储在/var/log/web-1.log 中。这按预期工作。

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-procfile.html有关 Elastic Beanstalk 如何捕获和存储 STDOUT 的更多信息。

在 web-1.log 文件达到一定大小后,它会轮换到/var/log/rotated/web-1.logXXX.gz。但是,一旦发生这种情况,原始 web-1.log 文件将被清除(预期)并且不会向该文件写入更多日志消息(预期)。所有 future 的日志消息似乎都直接转到旋转日志目录中的文件。

任何想法可能导致这种情况?我没有对 Elastic Beanstalk 处理日志轮换的方式进行任何更改。

最佳答案

Elastic Beanstalk 实例(至少是我正在使用的实例)运行 logrotate 守护进程。也许你可以通过在 /etc/logrotate.d 中放置一个配置文件来配置它?

空日志的问题可能是日志轮换时的陈旧文件句柄?见 this answer有关如何处理的一些示例。

关于amazon-web-services - AWS Elastic Beanstalk 日志轮换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52206545/

相关文章:

linux - 在多个地方定义的规则的 Logrotate 行为

php - 如何使用 php 日志配置 logrotate

amazon-web-services - AWS Certificate Manager - 如何为内部 ALB 创建公共(public)证书?

amazon-web-services - AWS BeanstalkL 错误 : InvalidParameterValueError - No Application Version named?

amazon-web-services - CodePipeline 无法找到 SAM 模板 yaml 文件

php - 将 Symfony2 应用程序部署到 AWS Elastic Beanstalk - 部署后缓存清除

mysql - 将数据从 Local Rails 应用程序推送到 Elastic Beanstalk

cron - logrotate 是否依赖于 cron?

postgresql - 经常更新的最佳缓存策略数据(Redis/Memcached vs Nginx/Varnish vs Materialized view)

amazon-web-services - 在Jenkins Execute Shell中找不到命令