うちで動かしているawstatsは、httpdのaccess_logを切り詰めた後に「処理済みログファイルのバックアップ」を吐き出すようにしている。
ところが、次のような問題点がある。
1.処理の取りこぼし
access_logファイルのローテートのタイミングと、cronで動かしているawstatsの処理のタイミングの関係で微妙に統計処理に取りこぼしが出る。
2.バックアップファイルの肥大化
snortも動かし始めたことだし、バックアップを取らないように設定する方法も考えたが、やっぱり生ログに目を通したいときもある。ところが、このバックアップファイルが放っておくとどんどん肥大化する。今までは手動ローテート(笑)していたのだが、あんまりスマートではない。
というわけで、/etc/logrotate.d/apacheをいじって、バックアップファイルの方をローテートするようにしてみた。
ついでに、proftpdが吐き出すxferlogもサイズが大きくなってきたので、ローテートすることにした。
方法は次の通り。
[apache]
/etc/logrotate.d/apacheを以下のように編集する。
/var/log/httpd/access_log {
↓
/awstatsのバックアップログファイル {
[proftpd]
/etc/logrotate.d/proftpdを以下の内容で新規作成する。
/var/log/xferlog {
missingok
postrotate
/bin/kill -HUP `cat /var/run/proftpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
最後に、試しにすべてのログを従来の2倍の8世代までローテートする設定にしてみた。
/etc/logrotate.confを以下のように編集する。
# keep 4 weeks worth of backlogs
rotate 4
↓
rotate 8
サーバーのセキュリティー管理をこれからますますしっかりしていきたいと思う。
