SystemdRsyslog
Rsysloglogger
消息重複
我剛剛遇到了 rsyslog 的 imjournal 模組的問題,可能是這裡描述的問題,因此 systemd 的日誌導致並發症
日誌在一個緊密的循環中無休止地返回相同的數據。這會導致 rsyslog 中的大量消息重複,當系統資源耗盡時可能會導致拒絕服務
在任何情況下,它確實確實使處理器最大程度地排除了幾個月前的重複消息。我沒有意識到 rsyslog 和 journald 在預設情況下是如此緊密耦合,所以我重新配置前者以使用更傳統、更有效的實時套接字作為輸入:
$ModLoad imuxsock $OmitLocalLogging off
就創建和使用套接字而言,這似乎有效。但是,我在測試時注意到了一件奇怪的事情。
> logger "hello world"
結果在 中,僅在
/var/log/syslog
中提到過一次rsyslog.conf
:Apr 17 10:35:45 pidora logger: hello world Apr 17 10:35:45 pidora logger: hello world
該消息被重複,似乎所有其他消息也是如此。其中一些完全相同,而其中一些僅在一個方面有所不同:
Apr 17 10:42:26 pidora systemd[1]: Stopping System Time Synchronized. Apr 17 10:42:26 pidora systemd: Stopping System Time Synchronized.
這
[1]
是一個pid。我相信正在發生的事情是 rsyslog 從應用程序中獲取消息,然後再次從日誌中獲取消息。這有點傻。我怎樣才能阻止它?
我相信正在發生的事情是 rsyslog 從應用程序中獲取消息,然後再次從日誌中獲取消息。
是的。解決方案是將其包含在
/etc/systemd/journald.conf
:ForwardToSyslog=no
為什麼使用時沒有這個問題
imjournal
我不確定,但是有提示man journald.conf
:ForwardToSyslog=
$$ … $$日誌守護程序應轉發到傳統的 syslog 守護程序$$ … $$如果啟用了轉發到 syslog 但沒有執行 syslog 守護程序,則相應的選項無效
我猜測“正在執行的 syslog 守護程序”的實際含義是傳統 syslog 套接字的字面意義。