Postfixログの見方

Postfixログ

Postfixログの見方を理解してメール障害を調査しよう

メールサーバの運用において、最も重要な調査資料となるのがログです。

メールが送信できない、受信できない、配送が遅い、SMTP認証に失敗するなど、ほとんどのメール障害はログを確認することで原因を特定できます。

Postfixはメール配送に関する詳細なログを出力するため、ログの読み方を理解することはメールサーバ管理者にとって必須のスキルです。

本記事ではPostfixログの確認方法や代表的なログメッセージの意味について解説します。

なぜPostfixログが重要なのか

メールサーバでは様々な問題が発生します。

  • メール送信失敗
  • メール受信失敗
  • SMTP認証失敗
  • DNS障害
  • 配送遅延
  • スパムメール送信

これらの原因はログに記録されます。

そのため、まずログを確認する習慣を身につけることが重要です。

Postfixログの保存場所

AlmaLinuxやRocky Linuxでは、環境によってログの確認方法が異なります。

従来のsyslog環境では以下のファイルに保存されます。

/var/log/maillog

またはsystemd環境ではjournalctlから確認できます。
# journalctl -u postfix

現在ではjournalctlを利用する環境も増えています。

ログをリアルタイムで確認する

メール送信テストを行いながら確認する場合はtailコマンドを利用します。

# tail -f /var/log/maillog

またはsystemd環境では以下です。
# journalctl -u postfix -f

リアルタイムでログを監視できます。

Postfixログの基本構造

代表的なログ例を見てみましょう。

Jul 15 10:00:00 mail postfix/smtp[1234]:
A1B2C3D4E5:
to=,
relay=gmail-smtp-in.l.google.com,
delay=2.1,
status=sent

このログにはメール配送に必要な情報が含まれています。

日時の確認

ログの先頭には日時が表示されます。

Jul 15 10:00:00

障害発生時刻と照らし合わせる際に利用します。

ホスト名の確認

次にホスト名が表示されます。

mail

複数メールサーバを運用している場合は重要な情報です。

プロセス名の確認

どのPostfixサービスが出力したログか確認できます。

postfix/smtp

代表的なサービスは以下の通りです。

サービス役割
postfix/smtpdSMTP受信
postfix/smtpSMTP配送
postfix/localローカル配送
postfix/qmgrキュー管理
postfix/cleanupメール整形

まずはプロセス名を見る習慣をつけましょう。

Queue IDとは

各メールにはQueue IDが付与されます。

A1B2C3D4E5

同じメールを追跡する際に利用します。

障害調査では非常に重要です。

送信先アドレス

配送先メールアドレスです。

to=

どのメールのログか判断できます。

relayの意味

relayは配送先SMTPサーバです。

relay=gmail-smtp-in.l.google.com

メールがどのSMTPサーバへ送られたか確認できます。

delayの意味

配送完了までの時間です。

delay=2.1

単位は秒です。

値が大きい場合は配送遅延が発生している可能性があります。

statusの意味

配送結果を表します。

status=sent

これが最も重要な項目です。

status=sent

メール配送成功を意味します。

status=sent

正常配送時に表示されます。

まずはこの文字列を探します。

status=deferred

配送保留を意味します。

status=deferred

メールキューへ保存され、後で再送されます。

障害調査でよく見るログです。

status=bounced

配送失敗を意味します。

status=bounced

再送しても成功しない場合に表示されます。

status=expired

メールキュー保持期限切れです。

status=expired

長期間配送できなかったメールが削除されています。

SMTP認証成功ログ

SMTP認証成功例です。

sasl_method=LOGIN,
sasl_username=student

どのユーザーが認証したか確認できます。

SMTP認証失敗ログ

認証失敗例です。

authentication failed

主な原因は以下です。

  • パスワード間違い
  • ユーザー名間違い
  • Dovecot停止
  • TLS設定不備

Host not found

DNS名前解決失敗です。

Host not found

MXレコードやDNS設定を確認します。

Connection refused

相手SMTPサーバへ接続できません。

Connection refused

ネットワークやファイアウォールを確認します。

Relay access denied

SMTPリレー拒否です。

Relay access denied

SMTP認証やmynetworks設定を確認します。

User unknown

存在しないメールアドレスです。

User unknown

入力ミスの可能性があります。

メールをQueue IDで追跡する

特定メールのログだけを確認できます。

grep A1B2C3D4E5 /var/log/maillog

1通のメールの流れを追跡する際に便利です。

よく利用するログ確認コマンド

エラー確認です。

grep error /var/log/maillog

配送失敗確認です。

grep deferred /var/log/maillog

認証失敗確認です。

grep sasl /var/log/maillog

障害調査で頻繁に利用します。

実務で最初に確認するポイント

メール障害時は以下を順番に確認します。

  1. status=sentか
  2. status=deferredか
  3. status=bouncedか
  4. SMTP認証エラーか
  5. DNSエラーか
  6. メールキューに残っているか

この順番で確認すると原因を特定しやすくなります。

まとめ

Postfixログはメール障害調査において最も重要な情報源です。

特にstatus=sent、status=deferred、status=bouncedの意味は必ず理解しておきましょう。

また、Queue IDを利用すると1通のメールを追跡できます。

メールサーバ運用ではログ確認が基本となるため、日頃からログの見方に慣れておくことが重要です。