• ホーム
  • サーバ
  • Postfix
  • ログ
  • ログ(Postfix)

    
    ■main.cf でのログの設定
    Postfixのログはsyslogdによって記録されます
    syslog_facility = mail	(デフォルト)
    
    /etc/syslog.conf には下記のように記載
    mail.*		/var/log/mail.log
    
    □さらに詳細なログを取る
    /etc/postfix/master.cf で詳細な出力を行いたいプログラムに-vオプションを付与します
    またさらに詳細なログは-vv オプションを使用します(-vvvでもっと詳細)
    全てのプログラムに-vをつけたい場合は、postfix -vが便利です
    	※ログが膨大になるので注意
    smtp	inet	n	-	n	-	-	smtpd -v
    
    
    
    ■ログの内容
    日時、ホスト名、syslog_name、postfix内部プログラム名、プロセスID、メッセージ の順
    
    [メールを送信したときの参考ログ]…[x.x.x.x]はアクセスしてきたクライアントIPを示します
    Sep  7 15:43:25 smtpsv1 mail:info postfix/smtpd[90288]: connect from unknown[x.x.x.x]
    	1.[クライアントIP]からsmtpdにアクセスがあった
    Sep  7 15:43:26 smtpsv1 mail:info postfix/smtpd[90288]: 0AE89173: client=unknown[x.x.x.x]
    	2.[クライアントIP]からの接続に対してsmtpdがキューID「0AE89173」として処理を開始
    Sep  7 15:43:26 smtpsv1 mail:info postfix/cleanup[233530]: 0AE89173: message-id=<D668A29AC55840D6ABFC8AAA2BEF4E44@testpc>
    	3.cleanupが同キューIDのメッセージ形式を確認し、そのメッセージIDがD668A29A…(省略)である
    Sep  7 15:43:26 smtpsv1 mail:info postfix/qmgr[307414]: 0AE89173: from=<test@example.com>, size=1301, nrcpt=1 (queue active)
    	4.qmgrが同キューIDのメッセージを処理し、配送先は1つ(nrcpt)でサイズは1301(size)である
    Sep  7 15:43:26 smtpsv1 mail:info postfix/smtpd[90288]: disconnect from unknown[x.x.x.x]
    	5.[クライアントIP]からsmtpdへの接続が終了
    Sep  7 15:43:26 smtpsv1 mail:info postfix/smtp[245990]: 0AE89173: to=<test2@example.com>, relay=送信先[送信先IP]:25, delay=0.55, delays=0.2/0/0.08/0.26, dsn=2.0.0, status=sent (250 2.0.0 m876k7NI000505 Message accepted for delivery)
    	6.test2@example.com宛てのメール(同キューIDのメッセージ)が、0.55秒(delay)で配信された
    	  なお受け取った時の相手のキューIDは m876k7NI000505 である(相手はこのキューIDでメールを処理する)
    Sep  7 15:43:26 smtpsv1 mail:info postfix/qmgr[307414]: 0AE89173: removed
    	7.qmgrから同キューIDのメッセージが無くなった(多分そういう意味かと…)
    終了
    
    
    ■ログを検索するときは
    上記のように一連のログは、キューIDが同じなので
    1、grep メールアドレス maillog で検索し、該当のメールキューIDが判別
    2、grep キューID maillog のように再度キューIDで検索すると良いかも
    
    
    ■応用編
    ログから特定のキーワードを含む行の、IPアドレスをカウントする
    Feb 27 12:44:28 server01 postfix/smtpd[35254]: connect from xxx.example.com[x.x.x.x]
    上記のようなログがあったとする
    下記のようにコマンドを打つと、同じIPからのconnectが多い順に表示できます。
    grep " connect from" /var/log/maillog | awk '{ print $8 }' | sort | uniq -c | sort -r | more
    
    解説
    grep " connect from" /var/log/maillog	メールログファイルから" connect from"を含む行を抽出
    awk '{ print $8 }'	8カラム目だけに絞る(8カラムとはスペースやタブで区切られた8個目の列の事)
    			このログの8カラム目はxxx.example.com[x.x.x.x]になる
    sort			上記で抜き出したものをソートする
    uniq -c			同じ行は表示させず-cで数も表示
    sort -r			それを数の多い順に並べる為に再度sort
    more			出力が多すぎると見えないので1ページずつ表示
    
    
    

    前へ  トップへ inserted by FC2 system