![如何从 rsyslog 获取调试信息?](https://linux22.com/image/59687/%E5%A6%82%E4%BD%95%E4%BB%8E%20rsyslog%20%E8%8E%B7%E5%8F%96%E8%B0%83%E8%AF%95%E4%BF%A1%E6%81%AF%EF%BC%9F.png)
我按照以下指示进行操作: 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 将被真正杀死。进一步确保使用反引号。这些很重要。
基本上就是这样。您现在可以查看“按需调试”日志文件。