Linux

Postfix トラブル調査でメールログを調べる手順

ログファイルのアクセス権は600(初期状態)に設定されています。
root以外でログインしている場合は、rootに切り替えます。

 

次にログファイルの場所へ移動します。

 

最初に、送受信トラブルが発生した時のアドレスや時間など、わかっている特定キーワードで検索を行います。
下記は、送信元アドレスをキーワードに検索した場合のコマンド例です。

 

さきほどのコマンドを実行した結果が下記になります。
4行=4件の該当するメールが見つかったことになります。

多くの場合、条件に合致するメールが複数件抽出されます。
残念ながら、この状態では各メールの処理の詳細までは知ることができません。

ここからさらにキューIDごとに絞込検索をかけ、各メールの処理詳細を追跡することになります。
エラーが発生したおおよその時間帯がわかっていれば、どのキューIDを追跡したらよいかあたりをつけることができます。それでない場合は、すべてのキューIDを調べていく必要があります。

※「831F78322B9」「73B928322E9」「A32198322F3」「EBD65832B18」がキューIDに該当します。

 

ためしに、キューID(EBD65832B18)で絞込検索をしてみます。

 

結果がこちら。下記がキューID(EBD65832B18)に対して行われた一連の処理を表しています。

 

ログの中で確認するポイントはstatus=XXXXの部分です。

bonce、deferredなどのステータスに注目。これらは配送されていないメールのステータスとなる。
status=sent 配送OK
status=bounce 配送NG
status=deferred 一時的に配送できなかったがリトライ

出典:Postfixで未配信メールの確認 - OpenGroove

bounceやdeferredの後ろに、エラーの内容が記載されています。

 

上記の例では以下がエラーメッセージです。
message size 14550452 exceeds size limit 10485760 of server XXX.XXX.XX.XX[XXX.XXX.XX.XX]

メールがサイズ上限を超えたためのエラーであることがわかりますね。

 

ログに関する補足説明

おそらくログはローテーションを組んでいるため、一定期間を経過すると圧縮(gzip形式)されている可能性があります。
圧縮されたログの中身も検索したい場合は、下記のzcatコマンドを使います。

最後に

業務でPostfixを使用しているなら、下記の本はおススメ。勉強してみる価値ありです。

Postfix実用ガイド

  • この記事を書いた人
  • 最新記事

だっち

30代 二人の子持ち。 婿はなにかと肩身が狭いので、寺泊で釣りができることが何よりの癒しです。シーバス、アジング、メバリング、ショアジギング、たまにぶっこみ釣りやサビキ釣りも。冬にはスノボを楽しみます。