Amazon web services 如何在Amazon Elastic Beanstalk上将我自己的日志添加到日志轮换/S3备份?

Amazon web services 如何在Amazon Elastic Beanstalk上将我自己的日志添加到日志轮换/S3备份?,amazon-web-services,amazon-s3,amazon-elastic-beanstalk,Amazon Web Services,Amazon S3,Amazon Elastic Beanstalk,我们有一个生活在Amazon Elastic Beanstalk上的PHP应用程序。应用程序启用了日志循环和S3备份。Apache访问和错误日志每小时都会得到正确的轮换和备份 但是,应用程序也会创建自己的日志文件。我想用它做同样的事情——每小时它都应该轮换并备份到S3。按照说明,我创建了以下文件: .ebextensions/publish logs.config files: "/opt/elasticbeanstalk/tasks/publishlogs.d/cloud-init.co

我们有一个生活在Amazon Elastic Beanstalk上的PHP应用程序。应用程序启用了日志循环和S3备份。Apache访问和错误日志每小时都会得到正确的轮换和备份

但是,应用程序也会创建自己的日志文件。我想用它做同样的事情——每小时它都应该轮换并备份到S3。按照说明,我创建了以下文件:

.ebextensions/publish logs.config

files: 
  "/opt/elasticbeanstalk/tasks/publishlogs.d/cloud-init.conf" :
    mode: "000755"
    owner: root
    group: root
    content: |
      /var/app/current/log/*.log
然后我把新版本上传到亚马逊

结果-我看到日志文件在第一次循环时备份到S3一次。它不是压缩的,只是复制的。在那之后,什么都没有。没有到S3的新备份。没有轮换。当下载捆绑日志时,该文件就在那里,现在它的最大容量约为80MB(经过几天的积累)

亚马逊的文档非常稀少。但它确实说:

当您为日志循环配置应用程序的日志文件时,应用程序不需要创建日志文件的副本。Elastic Beanstalk将logrotate配置为为为每次旋转制作应用程序日志文件的副本


我做错了什么?

要做到这一点,需要配置logrotate,这有点棘手。因为高度依赖于您正在使用的实例。但是让我试试。将这两个
文件添加到您的配置中。首先为logrotate创建配置,然后配置cron以使用该配置运行logrotate

files:
    "/etc/logrotate.d/logrotate.elasticbeanstalk.php.conf":
        mode: "000655"
        owner: root
        group: root
        content: |
            /var/app/current/log/*.log {
                rotate 14
                size 100M
                daily
                compress
                delaycompress
            }
    "/etc/cron.daily/cron.logrotate.elasticbeanstalk.php.conf":
        mode: "000655"
        owner: root
        group: root
        content: |
            #!/bin/sh
            test -x /usr/sbin/logrotate || exit 0
            /usr/sbin/logrotate /etc/logrotate.d/logrotate.elasticbeanstalk.php.conf
            /sbin/service awslogs restart

试试看。如果失败-请提供您正在使用的AMI ID

是否确实需要第二部分?文档中说,
您可以在/etc/logrotate.elasticbeanstalk.hourly/…中找到logrotate的弹性Beanstalk配置文件。。。配置文件由/etc/cron.hourly/
中的cron作业调用-这表明我不需要配置cron,对吗?(事实上我更希望他们每小时轮换一次)哦,顺便说一句,我今天晚些时候会检查文档,并提供详细的解释,我想是的。我设法用ssh连接到其中一个框,并查看amazon自己做了什么。一切都在那里,就像你描述的那样。我仍在尝试让配置工作,但应该很快完成。