CentOS 6 の rsyslog で ommmail を有効化した時に、大量の通知やログが発生する問題について確認します。この記事は構築手順というより、ログ通知を安易にメール化すると何が起きるかを考えるための記録です。
ommmail で起きやすい問題
ommmail は rsyslog からメール通知を送るための出力モジュールです。便利そうに見えますが、条件を絞らずに有効化すると、大量のログがメールとして流れ、メールサーバーや管理者の受信箱を圧迫することがあります。
- ログ量が多い facility をメール通知してしまう
- 同じエラーが繰り返し通知される
- メール配送エラーがさらにログを増やす
- 通知が多すぎて重要なログが埋もれる
ログ通知は「届けばよい」ではなく、「人間が対応できる粒度に絞る」必要があります。全ログをメールに流す設計は、運用上はほとんど役に立ちません。
設定確認
grep -R "ommmail\|mail" /etc/rsyslog.conf /etc/rsyslog.d
rsyslogd -N1
service rsyslog status
tail -f /var/log/messagesまず、どの facility / priority がメール通知対象になっているかを確認します。*.info のように広い条件でメール通知している場合、通知量が膨らみやすくなります。
絞り込みの考え方
メール通知は、緊急度が高く、人間がすぐ判断すべきものに絞るのが基本です。情報ログや通常運用ログは、ファイル保存やログサーバー集約に任せます。
*.emergや重大な priority に絞る- 特定 facility だけ通知する
- 同じログの連続通知を避ける
- メール通知ではなく監視システムへ寄せる
切り戻しと確認
通知が暴走している場合は、まず rsyslog 側のメール出力を止め、ログとメールキューの状態を確認します。
cp -a /etc/rsyslog.conf /etc/rsyslog.conf.bak.$(date +%Y%m%d%H%M%S)
grep -R "ommmail" /etc/rsyslog.conf /etc/rsyslog.d
service rsyslog restart
mailq
tail -f /var/log/maillogメールキューが溜まっている場合、Postfix 側の配送問題と rsyslog 側の通知条件を分けて確認します。通知元が止まらないままメールキューだけ処理しても、また溜まります。
まとめ
rsyslog の ommmail は、条件を絞って使わないと通知の価値を下げます。CentOS 6 の古い環境では、ログ通知をメールに寄せている構成が残っていることがありますが、現代的には監視システムやログ基盤で重要度を制御する方が扱いやすいです。
関連する記事
- CentOS 6 サーバー管理ガイド
CentOS 6 系の記事を役割別に確認できるハブページです。 - CentOS 6 rsyslog ログサーバー構築
rsyslog の受信・転送の基本です。 - CentOS 6 Postfix ローカル MTA 構築
ローカル通知メール配送側の構成です。
参考書籍
CentOS 6 のような古い Linux サーバー記事を読み直す時にも、コマンドライン操作の考え方を確認しやすい参考書籍です。
Amazon で見る
