如何从 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未将其识别为命令等错误。

我的解决方案是遵循按需调试的详细流程这里

虽然有点啰嗦,但至少有效。

相关内容