如何更改 AWS Elastic Beanstalk docker 个实例中的 logrotate 设置

How to change settings for logrotate in AWS Elastic Beanstalk docker instances

我意识到 AWS EB 的默认 logrotation docker 是 5 个文件,每个文件 10M。这对我来说还不够。

我在/etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.applogs.conf找到配置,内容如下:

  $ cat /etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.applogs.conf
  /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
  }

我想将其更改为更大的尺寸,比方说每个演出的 5 个文件。如何实现?

我熟悉 .ebextensions 框架,我认为答案在于编写 ebextension。首选答案仅更改现有配置中的 "size" 参数,而不写入一个全新的文件,因为我想利用 AWS 在其 docker 产品中所做的任何未来更改。

如果我没理解错的话,您的目标是提供比默认报价更多的可用历史记录。实现此目的的一种方法是启用日志发布到 S3。此选项在每个环境的“配置”页面上的“软件配置”下可用。

此设置将确保本地转出的日志上传到 S3 中的某个位置。此位置通常位于 AWS Elastic Beanstalk 创建的用于存储工件和日志的默认存储桶下。存储桶名称的格式为:

    s3://elasticbeanstalk-<region>-<account id>
Ex: s3://elasticbeanstalk-us-east-1-0123456789012

日志的路径是:

/resources/environments/logs/publish/<environment id>/<instance id>

完整示例:

s3://elasticbeanstalk-us-east-1-0123456789012/resources/environments/logs/publish/e-mpcwnwheky/i-0a1fd158

注意事项

所选实例配置文件需要必要的权限才能将日志文件上传到上述指定位置的 S3 存储桶。

上传到 S3 的日志会保留在那里,直到采取明确的操作,例如删除它们或将它们移动到冰川。

来源: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.logging.html#health-logs-s3location