gol*_*cks 10 rsyslog systemd systemd-journald
我刚刚遇到了 rsyslog 的 imjournal 模块的问题,可能是这里描述的问题,即 systemd 日志导致的并发症
日志在一个紧密的循环中无休止地返回相同的数据。这会导致 rsyslog 中的大量消息重复,可能会在系统资源耗尽时导致拒绝服务
无论如何,它确实使处理器最大程度地消除了几个月前的重复消息。我没有意识到 rsyslog 和 journald 在默认情况下是如此紧密耦合,所以我重新配置了前者,使用更传统、更高效的实时套接字作为输入,按照以下说明:
$ModLoad imuxsock
$OmitLocalLogging off
Run Code Online (Sandbox Code Playgroud)
就创建和使用套接字而言,这似乎有效。但是,我在测试它时注意到了一个奇怪的事情。
> logger "hello world"
Run Code Online (Sandbox Code Playgroud)
结果在 中/var/log/syslog,仅在 中提到过一次rsyslog.conf:
Apr 17 10:35:45 pidora logger: hello world
Apr 17 10:35:45 pidora logger: hello world
Run Code Online (Sandbox Code Playgroud)
该消息被重复,似乎所有其他消息也是如此。有的完全一样,有的只有一个方面不同:
Apr 17 10:42:26 pidora systemd[1]: Stopping System Time Synchronized.
Apr 17 10:42:26 pidora systemd: Stopping System Time Synchronized.
Run Code Online (Sandbox Code Playgroud)
该[1]是PID。我相信正在发生的事情是 rsyslog 从应用程序获取一次消息,然后从 journald 再次获取消息。
这有点傻。我怎样才能阻止它?
我相信正在发生的事情是 rsyslog 从应用程序获取一次消息,然后从 journald 再次获取消息。
是的。解决方案是将其包含在/etc/systemd/journald.conf:
ForwardToSyslog=no
Run Code Online (Sandbox Code Playgroud)
为什么在使用时没有这个问题imjournal我不确定,但有一个提示man journald.conf:
转发到系统日志=
[...] 日志守护进程应转发到传统的 syslog 守护进程 [...] 如果启用了转发到 syslog 但没有运行 syslog 守护进程,则相应的选项无效
我猜“正在运行的系统日志守护程序”的实际含义是传统系统日志套接字的字面意思。
| 归档时间: |
|
| 查看次数: |
9173 次 |
| 最近记录: |