メールサーバのログ解析を自作スクリプトでしていたけど
いつのまにかうまく解析できていなかった。
そこで、そろそろ何か導入してみようということで探してみたら
Perlで書かれたpflogsumm.plがよさそうだったので、早速試してみた。
Postfix Log Entry Summarizer
pflogsumm.pl
PostfixがかつてVMailerと呼ばれていた頃からあるツールなので
十分枯れているでしょう。
CentOSではyumでインストールできるという記事も見つかったけれども
yum searchで見あたらなかったので、手作業でインストールした。
といってもPerlスクリプトファイル一個というシンプルな構成
cd /usr/local/src/ wget http://jimsun.linxnet.com/downloads/pflogsumm-1.1.1.tar.gz tar zxvf pflogsumm-1.1.1.tar.gz cd pflogsumm-1.1.1/ cp pflogsumm.pl /usr/local/bin/pflogsumm
一緒にmanページのファイルもインストール
cp pflogsumm.1 /usr/share/man/man1/pflogsumm.1 chmod 644 /usr/share/man/man1/pflogsumm.1
一番簡単な使い方はmaillogを指定するだけ。
pflogsumm /var/log/maillog
複数のログを読み込ませることもできる
pflogsumm /var/log/maillog /var/log/maillog.1
表示ではメール配信数、転送料、時間統計などを表示してくれる。
ここでは示していないけれどドメインごとの統計も表示される。
そのほかでは、エラーや警告があったメール配信なども検知してくれる。
Grand Totals ------------ messages 48 received 51 delivered 0 forwarded 0 deferred 0 bounced 12 rejected (19%) 0 reject warnings 0 held 0 discarded (0%) 25493k bytes received 25497k bytes delivered 31 senders 22 sending hosts/domains 16 recipients 15 recipient hosts/domains Per-Day Traffic Summary date received delivered deferred bounced rejected -------------------------------------------------------------------- Jan 24 2010 1 1 0 0 6 Jan 25 2010 19 19 0 0 3 Jan 26 2010 28 31 0 0 3 Per-Hour Traffic Daily Average time received delivered deferred bounced rejected -------------------------------------------------------------------- 0000-0100 0 0 0 0 0 0100-0200 0 0 0 0 0 0200-0300 0 0 0 0 0 ...truncated 1900-2000 0 0 0 0 0 2000-2100 1 1 0 0 0 2100-2200 1 1 0 0 0 2200-2300 0 0 0 0 0 2300-2400 1 2 0 0 0
たとえば、一日前のログからレポートを作成して毎日root宛にメールを送る場合は
たとえばこんな感じ。
vi /root/bin/mailreport.sh --------------------------------------------------------------------------- #!/bin/sh MAILLOGS="/var/log/maillog /var/log/maillog.1" /usr/local/bin/pflogsumm -h 20 -u 15 -d yesterday $MAILLOGS | mail -s "Maillog Report [`hostname`]" root --------------------------------------------------------------------------- chmod 755 /root/bin/mailreport.sh /root/bin/mailreport.sh
自分の環境に合わせて変更してください。これくらいだったらCRONの設定に
直接書いてしまってもよいかもしれません。
cron -e --------------------------------------------------------------------------- 0 1 * * * /root/bin/mailreport.sh > /dev/null 2>&1 ---------------------------------------------------------------------------
オプションについてはmanページを参照してください。
man pflogsumm