AWS beanstalk 环境没有轮换 docker 容器日志
Posted
技术标签:
【中文标题】AWS beanstalk 环境没有轮换 docker 容器日志【英文标题】:AWS beanstalk environment isn't rotating docker container logs 【发布时间】: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 链接,即使是最简单的操作也没有产生结果。
【参考方案1】:
遗憾的是,问题最终是一个错字。 我创建了一个名为 .ebextentsion 的文件夹。当我修复它时,一切都开始正常工作了。
【讨论】:
以上是关于AWS beanstalk 环境没有轮换 docker 容器日志的主要内容,如果未能解决你的问题,请参考以下文章
是否有一种工具可以从 AWS Elastic Beanstalk 以聚合方式轻松搜索 S3 中每小时轮换的日志?
Github repo 如何在没有 .env 文件的情况下使用 AWS laravel 弹性 beanstalk 环境变量