gpt4 book ai didi

rsyslog - CentOS 7 rsyslog 删除 C/C++ 模块的 DEBUG 日志

转载 作者:行者123 更新时间:2023-12-02 18:01:38 24 4
gpt4 key购买 nike

我在 CentOS 7(CentOS Linux 版本 7.1.1503(核心))上使用 rsyslog (rsyslog-7.4.7-7.el7_0.x86_64)。我们有一些应用程序使用 syslog 框架进行日志记录。我们有很多日志。高峰时,一秒最多可达 50000 条日志。我们的系统之前在 CentOS 6.2(和 rsyslog 5.8)上运行,我们从未观察到任何下降。经过一番搜索,我们发现有速率限制。我们在/var/log/messages 中收到诸如“imjournal:由于速率限制而开始丢弃消息”之类的消息,然后是“imjournal:由于速率限制而丢失了 130886 条消息”。我们尝试了不同的方法来禁用或调整它,但没有成功。我们尝试了以下方法。

1)/etc/rsyslog.conf 中的更改

$ModLoad imjournal # provides access to the systemd journal
$imjournalRatelimitInterval 1
$imjournalRatelimitBurst 50000

来自 rsyslog.conf 的一些其他信息如下。这里没有改变任何东西

$OmitLocalLogging on
$IMJournalStateFile imjournal.state

我们还发现 imuxsock 有一些速率限制;但我们知道当 OmitLocalLogging 为 ON 时不会使用它

2)/etc/systemd/journald.conf 中的更改

Storage=auto
RateLimitInterval=1s
RateLimitBurst=100000

我们的应用程序具有 Java 模块(使用 SLF4J 和 LOG4J)和 C/C++ 模块(使用 syslog() 调用)。对于 C/C++ 模块,我们大多数时候都缺少 DEBUG 日志。但 Java 模块的 DEBUG 日志显然总是没问题。
systemd 的版本是“systemd-208-20.el7.x86_64”。应用程序和 rsyslogd 在同一台机器上。

最佳答案

随着 CentOS 7 上 systemd (219-19) 的最新更新,我们能够让日志再次正常工作、不受 Journald 或 IMUXSock 任何速率限制的唯一方法是使用下面的配置更改。这也有所减少,但并没有完全消除日志对 CPU 的过度消耗。

将以下内容添加到/etc/rsyslog.conf 中的“$ModLoad imuxsock”和“$ModLoad imjournal”之后:

$IMUXSockRateLimitInterval 0
$IMJournalRatelimitInterval 0

在/etc/systemd/journald.conf 中设置以下内容:

Storage=volatile
Compress=no
RateLimitInterval=0
MaxRetentionSec=5s

重新启动journald和rsyslog以获取更改:

systemctl restart systemd-journald.service
systemctl restart rsyslog.service

在 systemd 的最后一次更新之前,您可以在/etc/rsyslog.conf 中注释掉“$ModLoad imjournal”来解决此问题,但这不再有效。

关于rsyslog - CentOS 7 rsyslog 删除 C/C++ 模块的 DEBUG 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33041593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com