CentOS/RHEL 通常使用 rsyslogd 限速机制。
但是,CentOS/RHEL 7.x 集成了 systemd 日志,以提供将结构化日志消息从 systemd 日志导入到 syslog 的能力。
系统 /var/log/messages 文件中的日志消息如下例所示:
Jan 30 03:29:45 hostname rsyslogd: imjournal: 102776 messages lost due to rate-limiting
我们如何在 CentOS/RHEL 7.x 上禁用或者扩展此日志记录速率限制功能?
更多: zhilu jiaocheng
总结
速率限制可防止日志记录使用过多级别的系统资源,并防止用不必要的消息淹没 /var/log/message。
要记录事件,需要将其写入使用系统资源的磁盘。
如果在特定时间段内记录到磁盘的重复事件过多,它们可能会淹没系统并导致更重要的服务响应缓慢甚至意外故障。
因此,通常不建议禁用速率限制,但有时出于诊断目的需要它。
禁用或者扩展系统日志记录速率限制
要在 CentOS/RHEL 7 上禁用 rsyslogd 日志记录速率限制,请执行以下步骤:
- 编辑“/etc/rsyslog.conf”文件,修改以下参数。
$SystemLogRateLimitInterval 5 $SystemLogRateLimitBurst 30000
将这些更改为:
$SystemLogRateLimitInterval 0 $SystemLogRateLimitBurst 0
- 在“#### MODULES ####”部分下的“$ModLoad imjournal”之后添加以下参数
$ImjournalRateLimitInterval 0
或者
module(load="imjournal" ratelimit.interval="0")
两个参数的作用相同,区别在于第一行是旧语法,第二行是新语法,这是首选。
- 编辑“/etc/systemd/journald.conf”文件,注释以下参数:
RateLimitInterval=5s RateLimitBurst=30000
将这些更改为(在开头添加符号 #):
#RateLimitInterval=5s #RateLimitBurst=30000
- 重启rsyslog和journal服务:
# systemctl restart systemd-journald # systemctl restart rsyslog
日期:2020-09-17 00:12:30 来源:oir作者:oir