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 日志轮换

是否有一种工具可以从 AWS Elastic Beanstalk 以聚合方式轻松搜索 S3 中每小时轮换的日志?

Elastic Beanstalk 日志轮换到 S3

Github repo 如何在没有 .env 文件的情况下使用 AWS laravel 弹性 beanstalk 环境变量

AWS Elastic Beanstalk

AWS Beanstalk - 创建新环境时向 Lambda 发送 SNS 通知