各ログファイルをs3に転送しようとしています。そこにあるものをすべてピックアップしtail_catina.log
て上書きする自動スクリプトがあります。
tail_catalina.log1
、、などの各ログ ファイルを s3 に保存しますtail_catalina.log2
。tail_catalina.log3
私はすべて欲しいです!!
各ログファイルをs3に転送しようとしています。そこにあるものをすべてピックアップしtail_catina.log
て上書きする自動スクリプトがあります。
tail_catalina.log1
、、などの各ログ ファイルを s3 に保存しますtail_catalina.log2
。tail_catalina.log3
私はすべて欲しいです!!
これを非常に簡単に実現するために、 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 イメージ、「elasticbeanstalk」を選択してリストをフィルタリングし、「ソース」で並べ替えて最新の 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
}