mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Debian 8 (Jessie) - Postfix ログ解析!

[ サーバ構築 ] [ Debian, Linux, Postfix ]

こんばんは。

Debian GNU/Linux 8 (Jessie) に導入した SMTP サーバ Postfix のログを解析する方法についての記録です。

以前古いバージョンでの作業時に残していた記録を参考に作業を行い、今回更新した作業記録を貼付する形式の内容となっています。
(当然ながら、興味がなければスルーしてください)

0. 前提条件

  • Debian GNU/Linux 8 (Jessie) での作業を想定。
  • 接続元のマシンは Linux Mint 17.1(64bit) を想定。
  • SMTP サーバ Postfix を「Debian 8 (Jessie) - SMTP サーバ Postfix 構築!」の方法で導入済み。
  • ログローテート(logrotate)でメールログがローテーションされていることを想定。(デフォルトでなっているはず)

1. pflogsumm のインストール

Postfix のログ解析ツールである pflogsumm を、以下のようにしてインストールする。

1
# apt-get -y install pflogsumm

2. pflogsumm 実行用スクリプトの作成

pflogsumm を実行するスクリプト “pflogsumm_report” を以下のように作成する。
単純に pflogsumm コマンドを実行するだけでもレポートはできるが、それだとログローテートしている場合に正常に取得できない部分も発生する可能性があるので、それを考慮している。
また、以下のスクリプトでは前日のメールログを解析し、結果を postmaster 宛にメール送信している。

pflogsumm_report
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash

LANG=C
MAILLOG='mktemp'
for log in `ls /var/log/mail.log*|sort -r`
do
    cat $log >> $MAILLOG
done
REPORT=`mktemp`
pflogsumm --problems_first --verbose_msg_detail --mailq -d yesterday $MAILLOG > $REPORT
cat $REPORT | mail -s "`head -1 $REPORT` in `uname -n`" postmaster
rm -f $MAILLOG $REPORT

exit

スクリプト内のメール送信コマンド mail が使用できない場合は、mailutils or heirloom-mailx or bsd-mailx 等をインストールする。複数ある場合は、update-alternatives --config mailx でデフォルト設定をする。(ちなみに当方は、 mailutils ではドメインを指定しないとメール送信ができなかったり、依存するパッケージが多いので、 bsd-mailx をインストールして使用している)

なお、ログローテートしていない場合は、もっと簡単なスクリプトにすることも可能であるし、pflogsumm コマンドを直接実行して運用してもよい。

3. 実行権限の付与

1
# chmod 700 pflogsumm_report

4. スクリプトの実行

作成したスクリプトを実行してみる。
問題がなければ、 postmaster 宛にメールが送信されるはずである。

1
# ./pflogsumm_report

5. 自動実行の設定

毎日自動で実行するように cron 登録する。

1
# mv pflogsumm_report /etc/cron.daily/

以上。

Comments