Techfirm Cloud Architect Blog

テックファーム株式会社クラウドインフラグループのブログ

systemd (journald) / rsyslog 環境でログが欠損する場合の対策について

はじめに

ある調査でメールログを確認すると一部のメールログが記録されていないことがわかりました。
syslogを確認すると以下のログが記録されていました。

MM DD HH:MM:ss ${hostname} journal: Suppressed **** messages from /system.slice/postfix.service
  • 環境

    Red Hat Enterprise Linux 7

原因と対応

公式のナレッジの記事の通り、デフォルトでログのレート制限が設定されているためです。

今回は以下のファイルのパラメーター調整で対応しました。

  • /etc/systemd/journald.conf
  • /etc/rsyslog.conf

デフォルトのRateLimitBurstはRed Hat Enterprise Linux 7の場合1000、Red Hat Enterprise Linux 9の場合10000と、OSによりデフォルト値は異なります。システムに応じた値を設定しましょう。

なお、Red Hat社のドキュメントを確認すると、ログが多く出力される環境では設定の調整が必要である旨の記載があります。

ジャーナルのデフォルト設定値は非常に低く、ジャーナルがシステムサービスからのロギング速度に付いていくことができないためにジャーナルエントリーが失われる可能性があります。

あとがき

サーバでサービスを動かす場合は、負荷試験などでシミュレーションを行い、ピーク時でもログがきちんと欠損なく出力されることを確認しましょう。