我正在 Elastic Beanstalk 上运行一个 Scala 应用程序,服务器因不轮换的容器日志而变得过载。
Beanstalk 的默认方案在 /var/log/eb-docker/containers/eb-current-app/*
文件夹中轮换 Docker 日志,但其他日志正在累积到 /var/lib/docker/containers/<container-id>/*
中,由于它们不会轮换,磁盘很快就会满。
我曾尝试通过手动向 /etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.applogs.conf
添加另一个日志轮换条款来解决这个问题,这解决了问题。
然而,当我尝试使用 .ebextension 配置文件在每个 Beanstalk 实例启动时实现更改时,修改后的日志轮换文件并未出现在服务器上。
以下是我的 .config 文件 -
files:
"/etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.applogs.conf":
mode: "000644"
content: |
/var/log/eb-docker/containers/eb-current-app/* {
size 10M
rotate 5
missingok
compress
notifempty
copytruncate
dateext
dateformat %s
olddir /var/log/eb-docker/containers/eb-current-app/rotated
}
/var/lib/docker/containers/*/*.log {
size 10M
rotate 5
missingok
compress
notifempty
copytruncate
dateext
dateformat %s
olddir /var/log/eb-docker/containers/eb-current-app/rotated
}
我也尝试过在这篇reddit帖子中找到的最简单的配置文件形式 - https://www.reddit.com/r/aws/comments/2u3afj/elastic_beanstalk_issues_with_ebextensions/,但它也未能对我的实例产生任何影响。希望能提供有关为什么我的配置无法影响环境的任何建议。
.ebextensions
中使用路径/etc/logrotate.d/logrotate.elasticbeanstalk.applogs.conf
呢?就像这篇文章中所述:https://sandro-keil.de/blog/2015/03/11/logrotate-for-docker-container/ - VonC