我正在尝试将每个日志文件传输到 s3。有一个自动脚本可以拾取tail_catina.log
并覆盖那里的任何内容。
我希望将每个日志文件:tail_catalina.log1
、、tail_catalina.log2
等tail_catalina.log3
保存到我的 s3 中。
我想要一切!!
我正在尝试将每个日志文件传输到 s3。有一个自动脚本可以拾取tail_catina.log
并覆盖那里的任何内容。
我希望将每个日志文件:tail_catalina.log1
、、tail_catalina.log2
等tail_catalina.log3
保存到我的 s3 中。
我想要一切!!
我使用logrotate、s3cmd和cron的基本组合来非常简单地实现这一点。
我已经在我的博客上进行了详细的撰写和解释。它应该适用于在 linux 环境中运行 Apache 服务器的任何人。我希望人们觉得它有帮助,因为我花了几个小时才敲定细节。
基本脚本如下,请参阅博客文章逐行细分:
# rotate the logs!
# common settings
compress
compresscmd /bin/gzip
compressoptions -9
compressext .gz
dateext
dateformat -%Y-%m-%d-%s
rotate 3
nomail
missingok
daily
size 5k
create 640 username username
/var/logs/www.runpartner.com/*.log {
sharedscripts
postrotate
sudo /usr/sbin/apache2ctl graceful
/usr/bin/s3cmd sync /var/logs/www.runpartner.com/*.gz s3://bucket-logs/www.runpartner.com/
endscript
}
早期的 Beanstalk AMI 没有正确轮换日志。您可以在部署中使用最新的 AMI 来修复它。转到 EC2 控制台、AMI。通过选择 Amazon Images、“elasticbeanstalk”过滤列表,然后按“Source”排序以查看最新的 AMI。
或者,您可以编辑 Beanstalk 服务器上的文件 /etc/logrotate.conf.elasticbeanstalk 以修复日志轮换。以下配置在文件名后附加时间戳。它生成tail_catalina.log-1322236861.gz、tail_catalina.log-1322240461.gz等日志。
/var/log/tomcat6/catalina.out /var/log/tomcat6/monitor_catalina.log /var/log/tomcat6/tail_catalina.log {
size 1M
missingok
rotate 2
compress
notifempty
copytruncate
dateext
dateformat -%s
lastaction
/bin/chown tomcat:elasticbeanstalk /var/log/tomcat6/*gz; /bin/chmod 664 /var/log/tomcat6/*gz
endscript
}