现象
在应用比较高频通过 rsyslog 打印日志时,发现部分日志丢失,message 里面有如下报错
Feb 26 10:03:55 mirrors rsyslogd-2177: imuxsock begins to drop messages from pid 85417 due to rate-limiting
Feb 26 10:03:57 mirrors rsyslogd-2177: imuxsock lost 82 messages from pid 85417 due to rate-limiting
原因
从rsyslog的5.7.1版本开始,新增了一个称为速率限制的功能,默认如果一个PID在5秒内输出超过200条消息,那么超过200条之后的消息将被丢弃。
解决方案
增大速率限制上限
修改 rsyslog 配置文件,新增以下行$SystemLogRateLimitInterval 10 $SystemLogRateLimitBurst 500
以上配置表示
关闭速率限制
$IMUXSockRateLimitInterval 0 $SystemLogRateLimitInterval 0