【发布时间】:2016-08-17 20:45:16
【问题描述】:
我在弹性 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 添加另一个logrotation claues 来解决这个问题,这解决了这个问题。
但是,当我尝试使用 .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/,但它对我启动的实例也没有任何影响。
任何关于我的配置为何无法影响环境的建议将不胜感激。
【问题讨论】:
-
您是否尝试调试过您的 logrotate 配置? superuser.com/a/255970/141 或 serverfault.com/a/58403/783
-
当我手动添加到服务器时,我的 logrotate 配置工作正常,我遇到的问题是使用 .ebextensions 预配置实例。
-
您可以尝试在您的
.ebextensions路径/etc/logrotate.d/logrotate.elasticbeanstalk.applogs.conf中代替吗?如sandro-keil.de/blog/2015/03/11/logrotate-for-docker-container -
问题不在我的 logrotation 配置中,当我手动设置它们时,它们工作得很好。问题是如何使 .ebextension 中的配置文件工作。您可以查看我附加的 reddit 链接,即使是最简单的操作也没有产生结果。
标签: amazon-web-services docker yaml amazon-elastic-beanstalk