3

我正在尝试将每个日志文件传输到 s3。有一个自动脚本可以拾取tail_catina.log并覆盖那里的任何内容。

我希望将每个日志文件:tail_catalina.log1、、tail_catalina.log2tail_catalina.log3保存到我的 s3 中。

我想要一切!!

4

2 回答 2

6

我使用logrotates3cmdcron的基本组合来非常简单地实现这一点。

我已经在我的博客上进行了详细的撰写和解释。它应该适用于在 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
}
于 2012-07-15T17:08:59.627 回答
1

早期的 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
}
于 2011-12-06T08:23:12.057 回答