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
障害発生時刻と照らし合わせる際に利用します。
ホスト名の確認
次にホスト名が表示されます。
複数メールサーバを運用している場合は重要な情報です。
プロセス名の確認
どのPostfixサービスが出力したログか確認できます。
postfix/smtp
代表的なサービスは以下の通りです。
| サービス | 役割 |
|---|---|
| postfix/smtpd | SMTP受信 |
| postfix/smtp | SMTP配送 |
| 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
障害調査で頻繁に利用します。
実務で最初に確認するポイント
メール障害時は以下を順番に確認します。
- status=sentか
- status=deferredか
- status=bouncedか
- SMTP認証エラーか
- DNSエラーか
- メールキューに残っているか
この順番で確認すると原因を特定しやすくなります。
まとめ
Postfixログはメール障害調査において最も重要な情報源です。
特にstatus=sent、status=deferred、status=bouncedの意味は必ず理解しておきましょう。
また、Queue IDを利用すると1通のメールを追跡できます。
メールサーバ運用ではログ確認が基本となるため、日頃からログの見方に慣れておくことが重要です。





