rsyslog からデバッグ情報を取得するにはどうすればよいですか?

rsyslog からデバッグ情報を取得するにはどうすればよいですか?

私は以下の指示に従いました: デバッグ

私は次のことを記入しました/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) でテストおよび検証されています (手順は OS によって異なる場合があります)。rsyslog がシステムですでに動作していることが前提です。インストールと構成に関する注意事項については、ドキュメントを参照してください。オンデマンド デバッグはバージョン 4.5.7 以降で使用できます。

このオプションを機能させるには、まずこれを有効にする必要があります。これは、これを有効にして、デバッグ ログ ファイルのパスを指定することによって行われます。ルート権限でターミナルを開き、次のコマンドを使用します。

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

最初のオプションは、標準出力なしで「オンデマンド デバッグ」自体を有効にします。これは、サービスを開始するときに無効にするために必要です。2 番目のオプションは、ログ ファイルのパスと名前を指定します。

準備が整う前に、rsyslog サービスを停止する必要があります。次のコマンドを使用します。

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

これでサービスが停止したので、再度起動する必要があります。現在の構成では、rsyslog をフォアグラウンド アプリケーションとして起動する必要があります。このように構成する方がはるかに簡単なため、rsyslog はバックグラウンド サービスではなくフォアグラウンド アプリケーションとして「オンデマンド デバッグ」を実行する必要があります。次のコマンドを使用して、フォアグラウンド アプリケーションとして再度起動します。

rsyslogd -n

2 番目のターミナル (これも root で) を開いて、「オンデマンド デバッグ」を有効または無効にします。次のコマンドを使用します。

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

このコマンドを 1 回使用すると、デバッグ モードが有効になります。もう一度使用すると無効になります。必ず「-USR1」が必要であり、そうしないと rsyslog が実際に強制終了されることに注意してください。さらに、バックティックを使用するようにしてください。これらは重要です。

基本的にはこれで完了です。これで、「オンデマンド デバッグ」ログ ファイルを確認できるようになりました。

答え2

ファイル内で上記のデバッグ方法を使用しようとしましたが、コマンドとして認識されないなどのrsyslog.confエラーがログに記録されました。$DebugFile

私の解決策は、オンデマンドデバッグの詳細なプロセスに従うことでしたここ

少し長くなったが、少なくともうまくいった。

関連情報