我们有一个PHP应用程序,它生活在AmazonElasticBean秸秆上。应用程序启用了日志旋转和对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的新备份。不旋转。当下载包日志时,该文件就在那里,它现在拥有大约80 in的荣耀(经过几天的积累)。
亚马逊的文档非常稀少。但它确实说:
当您为日志旋转配置应用程序的日志文件时,应用程序不需要创建日志文件的副本。弹性Bean秸秆将日志旋转配置为为每次旋转创建应用程序日志文件的副本。
我做错了什么?
发布于 2017-11-29 23:15:53
要做到这一点,您需要配置日志旋转,这有点棘手。由于高度依赖于您正在使用的实例。但让我试试。将这两个files添加到您的配置中。第一,创建日志旋转配置;第二,配置cron,以便使用该配置运行日志旋转。
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
https://stackoverflow.com/questions/47454520
复制相似问题