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 容器日志的主要内容,如果未能解决你的问题,请参考以下文章