Postfixログ解析 pflogsumm

メールサーバのログ解析を自作スクリプトでしていたけど
いつのまにかうまく解析できていなかった。

そこで、そろそろ何か導入してみようということで探してみたら
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

関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です