はじめに
Linuxのログ管理機能であるjournaldには、ログメッセージの過剰な出力を制限する機能が実装されています。
この記事では、journaldのログ出力制限機能であるratelimitについて紹介します。
そもそも、journaldが何かを知りたい方は以下の記事で紹介していますのでご覧ください。
ratelimitとは
journaldのratelimit機能は、ログメッセージの過剰な出力を制限するための機能です。
ログが過剰に出力されると、問題発生時の解析が困難になるだけでなく、マシンリソースにも影響があるため、システムの安定性を保つためにもratelimitは重要な機能と言えます。
機能概要
journald
のratelimit設定には以下の2つの主要なパラメータがあります。
- RateLimitInterval
-
ログレート制限の間隔を秒単位で指定します。
- RateLimitBurst
-
RateLimitInterval
で指定された間隔内に許容される最大のログメッセージ数を指定します。この制限を超えると、次のRateLimitInterval
が経過するまで追加のログメッセージは破棄されます。
これらの設定は、journald
の設定ファイルである/etc/systemd/journald.conf
で行うことができます。例えば、以下のように設定します。
[Journal]
RateLimitInterval=30s
RateLimitBurst=10000
上記の設定だと、30秒間に10000メッセージまでのログ出力が許容されます。
ratelimitによって破棄されたログ数を確認
ratelimitによってログが制限された場合、journaldのログに以下のようなメッセージが出力されます。この例だと、321個のログメッセージがratelimitによって破棄されたことを示しています。
Suppressed 321 messages
journaldのログの見方は以下の記事で解説しているので確認してみてください。