Systemd

Rsysloglogger消息重複

  • October 2, 2019

我剛剛遇到了 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 套接字的字面意義。

引用自:https://unix.stackexchange.com/questions/196877