メールサーバのログ解析を自作スクリプトでしていたけど
いつのまにかうまく解析できていなかった。
そこで、そろそろ何か導入してみようということで探してみたら
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

