如何從 rsyslog 獲取調試資訊?

如何從 rsyslog 獲取調試資訊?

我按照以下指示進行操作: http://www.rsyslog.com/doc/debug.html

我將以下內容放入/etc/rsyslog.conf

$DebugLevel 2
$DebugFile /root/RSYSLOG.txt

然後我嘗試:

kill -USR1 `cat /var/run/syslogd.pid`
kill -USR2 `cat /var/run/syslogd.pid`

看來沒有rsyslogd.conf.

我檢查了一下RSYSLOG.txt,它的大小仍然是 0 位元組。我不知道還能做什麼。

答案1

本文應該展示 rsyslog 中的「按需調試」功能是如何運作的。它已在 Fedora 13 上使用 rsyslog 6.1.0 (v6-Devel) 進行了測試和驗證(步驟可能因不同作業系統而異)。假設 rsyslog 已經在系統上運作。有關安裝和配置的說明,請查看文件。自 4.5.7 版本起,可按需調試。

為了讓這個選項發揮作用,我們需要先啟用它。這是透過啟用它並指定調試日誌檔案的路徑來完成的。開啟具有 root 權限的終端機並使用以下命令:

export RSYSLOG_DEBUG="DebugOnDemand NoStdOut"
export RSYSLOG_DEBUGLOG=/somepath/example.log

第一個選項啟用「按需調試」本身,而無需標準輸出。這是在啟動服務時禁用它所必需的。第二個選項指定日誌檔案的路徑和名稱。

現在我們必須在準備好之前停止 rsyslog 服務。使用以下命令:

/etc/rc.d/init.d/rsyslog stop

我們現在已經停止了該服務,需要重新啟動它。在目前配置中,我們需要將 rsyslog 作為前台應用程式啟動。由於以這種方式配置要簡單得多,因此 rsyslog 需要成為「按需調試」的前台應用程式才能工作,而不是後台服務。使用以下命令將其作為前台應用程式再次啟動:

rsyslogd -n

打開第二個終端機(再次使用 root),以便我們可以啟用或停用「按需偵錯」。使用這個指令:

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

使用此命令一次將啟用調試模式。再次使用它將會停用它。請注意,您肯定需要“-USR1”,否則 rsyslog 將被真正殺死。

基本上就是這樣。現在您可以查看“按需調試”日誌檔案。

答案2

我嘗試在文件中使用上面的調試方法rsyslog.conf,但只是在日誌中收到有關$DebugFile未將其識別為命令等錯誤。

我的解決方案是遵循按需調試的詳細流程這裡

雖然有點囉嗦,但至少有效。

相關內容