fluentdでApacheログを監視するためのrotatelogs設定


fluentdでApacheのログ監視をするよ

監視担当の要望でaccess_logをfluentdで監視するにあたり名前を固定化してほしいとの要望があり対応を入れた。
最初はlogrotationで対応しようとしたのだがaccess_logがでかすぎなのと連携しているTomcatとの切断とかが終わる前にApacheが起動してしまいログがきれいに回らなかったので2.4から入ったオプションで対応した。

access_logの設定

10分間隔ログ取得
CustomLog "|/usr/sbin/rotatelogs -c -l -L /var/log/httpd/access_log /var/log/httpd/access_log.%Y%m%d%H%M 600" combined

1時間間隔ログ取得
CustomLog "|/usr/sbin/rotatelogs -c -l -L /var/log/httpd/access_log /var/log/httpd/access_log.%Y%m%d%H 3600" combined

1日間隔ログ取得
CustomLog "|/usr/sbin/rotatelogs -c -l -L /var/log/httpd/access_log /var/log/httpd/access_log.%Y%m%d%H 86400" combined

1週間間隔ログ取得
CustomLog "|/usr/sbin/rotatelogs -c -l -L /var/log/httpd/access_log /var/log/httpd/access_log.%Y%m%d 604800" combined

error_logの設定

10分間隔ログ取得
ErrorLog "|/usr/sbin/rotatelogs -l -c -L /var/log/httpd/error_log /var/log/httpd/error_log.%Y%m%d%H%M 600"

1時間間隔ログ取得
ErrorLog "|/usr/sbin/rotatelogs -l -c -L /var/log/httpd/error_log /var/log/httpd/error_log.%Y%m%d%H 3600"

1日間隔ログ取得
ErrorLog "|/usr/sbin/rotatelogs -l -c -L /var/log/httpd/error_log /var/log/httpd/error_log.%Y%m%d%H 86400"

1週間間隔ログ取得
ErrorLog "|/usr/sbin/rotatelogs -l -c -L /var/log/httpd/error_log /var/log/httpd/error_log.%Y%m%d 604800"

ハードリンク設定を始めて使ったけどfluentdと併用するなら今後はスタンダードになっていくじゃないだろうか。

※ただしrotatelogsはログを自動で削除してくれないので削除シェル+cron対応が必要なので注意。

初期構築前に言ってくれればもうちょう対応早くできたのに・・・と思うこのごろ。

メモ:
LoadModule log_config_module modules/mod_log_config.so