2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

rsyslogでログが欠落する時の対応

Last updated at Posted at 2023-12-10

はじめに

業務にて、rsyslogの一部ログが欠落していることがわかった。
/var/log/messagesにて「⚪️⚪️ messages lost due to rate-limiting」のメッセージが表示されていた。(⚪️⚪️の部分が何件かを表す)
ログが全て表示されるよう設定変更したので対応内容を記載します。

rsyslogの設定変更

rsyslogとは、Linuxシステムでのログの生成、収集、処理、および転送を管理するためのシステムです。
rsyslogの設定ファイルは通常 /etc/rsyslog.conf または /etc/rsyslog.d/*.conf にあります。

下記の設定を見直すことにしました。

$MaxMessageSize

syslogが処理できるメッセージの最大サイズを設定するための変数です。
これにより、ログメッセージのサイズが一定以上の場合、そのメッセージが切り捨てられます。

既存の設定
$MaxMessageSize 8k

この場合、メッセージの最大サイズが8キロバイト(8k)に制限されています。
もし8キロバイトを超えるメッセージが到着した場合、rsyslogはそのメッセージを切り捨てます。

Ratelimit.Interval:

ログメッセージの制限が適用される時間の間隔を設定します。
例えば、この値を60に設定すると、60秒間に指定された数のログメッセージしか受け入れません。

Ratelimit.Burst:

Ratelimit.Interval 内で許容されるログメッセージの最大数を設定します。
これは、一度に受け入れることができる最大メッセージ数を表します。

デフォルト設定は600秒あたり20000メッセージ。
rsyslogは、この指定された時間制限枠内で最大バースト後に届いたメッセージを破棄する。

設定を見直し下記のように変更します。

$MaxMessageSize 16k

Ratelimit.Interval="60"
Ratelimit.Burst="20000"

メッセージの最大サイズが16キロバイト。
60秒あたり20000メッセージまで許容される。

rsyslogの設定反映

設定変更を行ったので、反映します。

/etc/rsyslog.confの文法チェック
sudo rsyslogd -N1
rsyslogの再起動
sudo systemctl status rsyslog
sudo systemctl restart rsyslog
sudo systemctl status rsyslog

ログの確認

対象サーバで、/var/log/messagesにて、「⚪️⚪️ messages lost due to rate-limiting」が出なくなったのでOK。

ログの確認
sudo fgrep "rsyslog" /var/log/messages | tail

※全て出力するように変更した場合、ログのサイズが大きいとディスクの圧迫につながるので注意。

参考

https://qiita.com/11ohina017/items/087b1b7c4411c3b3195a
https://tech-lab.sios.jp/archives/36082

2
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?