(ヽ'ω`) < rsyslogでimuxsockなんとかってメッセージが出る
(ヽ'ω`) < rsyslogが吐き出すログに変なメッセージが…
rsyslogが出力するログに、以下のようなエントリが書き込まれることがある。
rsyslogd-2177: imuxsock begin to drop messages from pid 2305 due to rate-limiting rsyslogd-2177: imuxsock lost 68 messages from pid 2305 due to rate-limiting
(ヽ'ω`) < なんなのこれ?
rsyslogでは短時間に大量のログが発生した場合、パフォーマンスやディスク容量の観点から、出力を制限するRate Limit Control機能がある。 デフォルトでは、以下のように設定されている
$SystemLogRateLimitInterval [number] - specifies the rate-limiting interval in seconds. Default value is 5 seconds. Set it to 0 to turn rate limiting off. $SystemLogRateLimitBurst [number] - specifies the rate-limiting burst in number of messages. Default is 200.
つまり5秒に200以上のメッセージが来た場合、溢れた分を破棄する。
(ヽ'ω`) < どうやって対応するの?
対応方法としては2つ、しきい値を上げるか、Rate Limit Controlの機能を無効にしてしまう。
しきい値を上げる
上記で挙げた$SystemLogRateLimitIntervalと$SystemLogRateLimitBurstの値を変更する。
$SystemLogRateLimitInterval 3 $SystemLogRateLimitbBurst 400
この設定でデフォルトの「5秒で200以上が来たら破棄」から「3秒で400以上が来たら破棄」へと制限を緩めることができる。
Rate Limit Control機能を無効にする
$SystemLogRateLimitIntervalを0に設定する。
$SystemLogRateLimitInterval 0
Rate Limit Control機能は、大量のログエントリ発生に伴う、I/Oリソースの消費とログの肥大化を防ぐことを目的としている。 無効にしても問題がないかどうかは、マシンのリソースやログの収集目的を考慮して判断すること。
(ヽ'ω`) < ネットワーク経由のログってどうなるの?
imuxsockの制限になるので、ネットワーク経由のrsyslogで受信しているものはこの対象とはならない模様。 あくまでローカルのログでimuxsockを使用しているものが対象。
(ヽ'ω`) < 参考URL
http://www.rsyslog.com/how-to-use-rate-limiting-in-rsyslog/ http://www.rsyslog.com/doc/imuxsock.html