Centos

日誌在 Centos 7 上不起作用

  • August 27, 2019

長話短說——不知何故,我設法搞砸了 Centos 7 伺服器上的 rsyslogd 服務。現在唯一出現在 /var/log/messages 中的是:

12 月 14 日 22:13:27 {myhostname} rsyslogd:

$$ origin software=“rsyslogd” swVersion=“7.4.7” x-pid=“1286” x-info=“http://www.rsyslog.com” $$退出信號 15。 12 月 14 日 22:13:27 {myhostname} rsyslogd:

$$ origin software=“rsyslogd” swVersion=“7.4.7” x-pid=“1477” x-info=“http://www.rsyslog.com” $$開始

其他日誌(安全、cron 等)也是空的。重新啟動服務和伺服器沒有幫助。使用記錄器發送的消息不會出現在 /var/log/messages 文件中。rsyslogd 服務正在執行。配置文件似乎是正確的。我可以在 journalctl 日誌中看到所有事件。我已經搜尋了幾篇與我的問題類似的文章,但沒有一個有解決方案。

雖然最快的解決方案可能是重新安裝伺服器,但我想弄清楚是什麼導致了這個問題以及如何解決它,以防將來發生。伺服器正在執行簡單的 LEMP 堆棧,系統的最後一次重大更改是主機名更改。

這是解決方案,但不是永久性的:

rm -f /var/lib/rsyslog/imjournal.state

服務 rsyslog 重啟

來源:https ://bugzilla.redhat.com/show_bug.cgi?id=1088021

您可以嘗試調試 rsyslog以找出導致其發生故障的問題。

從正在執行的實例獲取調試資訊

可以從正在執行的實例中獲取調試資訊,但這需要一些設置。我們假設實例在後台執行,因此不需要將調試輸出到標準輸出。因此,所有調試資訊都需要進入日誌文件。

要創建此設置,您需要將RSYSLOG_DEBUGLOG環境變數指向在 while 執行時可訪問的文件(我們強烈建議在本地文件系統中使用文件!)設置RSYSLOG_DEBUG至少以DebugOnDeman NoStdOut 確保這些環境變數設置正確( distro-specifc) 啟動腳本,如果您不以互動方式執行 rsyslogd

這些設置啟用了對 SIGUSR1 做出反應的能力。該信號將在收到時切換調試狀態。所以發送一個來打開調試登錄,再次發送它來再次關閉調試日誌。第三次它會再次打開……以此類推。

在典型系統上,您可以按如下方式向 rsyslogd 發出信號:

kill -USR1 `cat /var/run/rsyslogd.pid`

重要提示: “cat”命令周圍有**反引號。**如果您使用正常報價,它將不起作用。調試日誌將顯示調試日誌是否已打開或關閉。沒有其他狀態指示。

一步一步的操作方法在這裡:如何使用按需調試?

引用自:https://serverfault.com/questions/743003