Postfixのメールログを確認する

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
「Postfixでメール送受信のトラブルが発生した。どのログファイルを確認すればいいのか」
Postfixのログは /var/log/maillog ファイルに出力されます。

この記事では、Postfixのメールログの確認方法と、ログに記録されるエラーメッセージの読み方を解説します。

【この記事でわかること】

・Postfixのログは /var/log/maillog に出力される
・ログは1週間単位で自動ローテーションされ maillog.1maillog.4 の4週間分保持される
tail /var/log/maillog でリアルタイムにログを確認できる
・SASL認証失敗・キュー・遅延メールなどの状況がログから読み取れる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

メールログファイルの場所

# メールログファイルの一覧を確認 # ls -l /var/log/maillog* -rw------- 1 root root 1941316 7月 24 16:47 /var/log/maillog -rw------- 1 root root 10497049 7月 23 04:02 /var/log/maillog.1 -rw------- 1 root root 10312833 7月 16 04:02 /var/log/maillog.2 -rw------- 1 root root 10810720 7月 9 04:02 /var/log/maillog.3 -rw------- 1 root root 9886779 7月 2 04:02 /var/log/maillog.4

メールログの確認方法

1. ログの末尾を確認する(tail)

# ログの末尾を表示 # tail /var/log/maillog # リアルタイムにログを監視(Ctrl+Cで停止) # tail -f /var/log/maillog

2. キーワードで絞り込む(grep)

# 認証失敗のログを絞り込む # grep "authentication failed" /var/log/maillog # 特定のメールアドレスのログを絞り込む # grep "user@example.com" /var/log/maillog

ログの読み方

Postfixのログは以下の形式で記録されます。

# ログ出力例 Jul 24 16:47:28 servername postfix/smtpd[30065]: warning: unknown[80.82.x.x]: SASL LOGIN authentication failed: authentication failure

日時:Jul 24 16:47:28
ホスト名:servername
プログラム名:postfix/smtpd(SMTPデーモン)
PID:[30065]
メッセージ:SASL LOGIN authentication failed(SASL認証失敗)

本記事のまとめ

やりたいこと コマンド
ログの末尾を確認 tail /var/log/maillog
リアルタイムにログを監視 tail -f /var/log/maillog
認証失敗ログを絞り込む grep "authentication failed" /var/log/maillog
過去のログを確認 tail /var/log/maillog.1

systemd journal 時代の Postfix ログ確認(RHEL 9 / Rocky / AlmaLinux 9以降)

RHEL 9系・Ubuntu 22.04 LTS以降では、Postfixのログが従来の /var/log/maillog ではなく、systemd-journald に集約されているディストリビューションが増えています。

1. journalctl でPostfixログを確認する

journalctl -u postfix でPostfixサービス単位のログを参照できます。

# Postfixサービスのログを表示する # journalctl -u postfix # リアルタイムで監視する(tail -f 相当) # journalctl -u postfix -f # 過去1時間分だけ表示する # journalctl -u postfix --since "1 hour ago" # キーワードで絞り込む # journalctl -u postfix | grep "authentication failed"

journal バックエンドの場合、/var/log/maillog が存在しないか、サイズが0のままになっています。「メールログがない」と感じたら、まず journalctl -u postfix を試してください。

2. rsyslog で /var/log/maillog にも書き出す設定

ファイルベースのログを残したい場合は、rsyslog 経由で /var/log/maillog にも書き出す設定が必要です。

# /etc/rsyslog.d/50-postfix.conf を新規作成する mail.* -/var/log/maillog # mail.warning,mail.error,mail.crit /var/log/maillog

rsyslog を再起動すれば、それ以降の Postfix ログが /var/log/maillog にも書き出されます。

# rsyslog を再起動する # systemctl restart rsyslog

3. journal のサイズ制限を確認する

journalバックエンドはディスク使用量の制限がデフォルトで設定されており、古いログが自動削除されます。長期保管が必要な場合は /etc/systemd/journald.confSystemMaxUse を調整してください。

# 現在のjournal使用量を確認する # journalctl --disk-usage Archived and active journals take up 1.5G in the file system. # 永続化されているか確認する(再起動後もログが残る設定か) # journalctl --list-boots

--list-boots で複数 boot 分のログが残っていれば、journal が永続化されています。1つしか出ない場合は揮発設定です。

実務でよく出る maillog エラー早見表

Postfix の maillog / journalctl 出力に出てくる代表的なエラーと、原因の見当・確認すべき設定をまとめました。

ログのキーワード 意味 確認すべき箇所
SASL LOGIN authentication failed SMTP AUTH のパスワード認証失敗 /etc/dovecot/passwd / sasldb
Relay access denied 許可されていないIPからの中継要求 mynetworks / smtpd_recipient_restrictions
Host or domain name not found DNS解決失敗(MX/Aレコードが引けない) /etc/resolv.conf / dig MX ドメイン
Connection timed out 送信先25番ポートに接続できない firewalld / iptables / クラウドSG
User unknown in virtual mailbox table バーチャルメールボックス未登録 virtual_mailbox_maps
Recipient address rejected 受信先アドレスが拒否設定にマッチ smtpd_recipient_restrictions
queue file write error キューディスクが満杯/権限異常 /var/spool/postfix/ の容量と権限
warning: unknown[XXX.XXX.XXX.XXX] 逆引きできないIPからの接続(攻撃が多い) 必要に応じ fail2ban 導入を検討

ログを読むときは、まずキーワードで grep して全体像を掴み、続いて該当行の前後数行を grep -A 5 -B 5 で確認するのが定石です。SMTP通信は「接続→AUTH→FROM→RCPT→DATA→終了」と進むため、エラーがどの段階で出ているかを見るとほぼ原因まで辿れます。

Postfixのトラブルシュートを体系的に学びたい方へ

メールログの読み方を習得することで、メールサーバーの障害対応速度が格段に上がります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。