Postfixのログは
/var/log/maillog ファイルに出力されます。この記事では、Postfixのメールログの確認方法と、ログに記録されるエラーメッセージの読み方を解説します。
【この記事でわかること】
・Postfixのログは /var/log/maillog に出力される
・ログは1週間単位で自動ローテーションされ maillog.1 ~ maillog.4 の4週間分保持される
・tail /var/log/maillog でリアルタイムにログを確認できる
・SASL認証失敗・キュー・遅延メールなどの状況がログから読み取れる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
メールログファイルの場所
# メールログファイルの一覧を確認 # 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
・ホスト名: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"
/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.conf の SystemMaxUse を調整してください。# 現在の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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:journalctlコマンドでCentOS7のsystemdログを確認する方法|フィルタリング・リアルタイム監視の実践ガイド
- 前のページへ:MTAをSendmailからPostfixに変更する
- この記事の属するカテゴリ:Linuxtips・Postfix・サーバー管理・メールサーバー管理へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます