カーネルリングバッファーは、rsyslogに対してどこにありますか?


9

あるrsyslogカーネルのリングバッファの上だけで抽象化レイヤは?または、カーネルリングバッファはそれ自体のエンティティであり、そのrsyslog相互作用は他の「アプリケーション」の相互作用と似ていますか?

logs  syslog  dmesg 

回答:


6

さまざまなドキュメント(を含むman dmesg)では「カーネルリングバッファ」と呼んでいますが、「リングバッファ」は一般的な用語であり、カーネルもリングを使用していると思うので、カーネルログバッファと呼んだ方がよいでしょう。完全に無関係なさまざまなもののためのバッファ。「printkバッファ」も、カーネルスペース関数が書き込みに使用した後に適切です。

とにかく、それはカーネル空間に常駐し、読み取りインターフェースはを介して提供され/proc/kmsg、読み取り/書き込みインターフェースはを介して提供されます/dev/kmsg。ルートとしてあなたが行く場合:

echo "Hello Kernel!" > /dev/ksmg

その場合は、それが表示されますcat /dev/ksmg(ただし、これがログに表示されることはおそらくないでしょう-考えられる理由については、以下のMatthew Phippsのコメントを参照してください)。これは未加工の出力でありdmesg、ログファイルからまたはログファイルに表示されるものとは正確に一致しません。これについては、カーネルソースで提供されるドキュメントが少しあります。(r)syslogが実行されている場合は/proc/kmsg、(とは異なる/dev/ksmg)からの読み取りをお勧めします。

Rsyslogは、Linuxで一般的に使用されている多くのsyslog実装の1つです。これらは/proc/ksmg、ソケット経由で他のユーザーランドプロセスからのメッセージと他のユーザーランドプロセスからのメッセージを送信するユーザーランドアプリケーションです/dev/log


2
rsyslogのデフォルトでは$ KLogPermitNonKernelFacilityがオフになっていることを指摘します。そのため、このオプションをオンにしない限り、/ sys / kmsgからのカーネル以外のメッセージはrsyslogによって無視されます。Upstartは、たとえば、カーネル以外の機能を使用して/ proc / kmsgにログを記録するため、これは実際に非常に混乱する可能性があります。
Vanessa Phipps、2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.