Wo befindet sich der Kernel-Ringpuffer relativ zu rsyslog?

9

Befindet sich rsyslognur eine Abstraktionsschicht über dem Kernel-Ringpuffer? Oder ist der Kernel-Ringpuffer eine eigene Entität und die rsyslogInteraktion ist wie bei jeder anderen "Anwendung"?


quelle

Antworten:

6

Obwohl verschiedene Dokumentationen (einschließlich man dmesg) es als "Kernel-Ringpuffer" bezeichnen, ist es möglicherweise besser, es als Kernel-Protokollpuffer zu bezeichnen, da "Ringpuffer" ein Oberbegriff ist und ich glaube, dass der Kernel auch Ring verwendet Puffer für verschiedene völlig unabhängige Dinge. Der "printk-Puffer" ist auch nach der Kernel-Space-Funktion geeignet, mit der in ihn geschrieben wurde.

Auf jeden Fall befindet es sich im Kernelraum und eine Leseschnittstelle wird über /proc/kmsgund eine Lese- / Schreibschnittstelle über bereitgestellt /dev/kmsg. Also, wenn Sie als Wurzel gehen:

echo "Hello Kernel!" > /dev/ksmg

Sie werden es sehen, wenn Sie es dann tun cat /dev/ksmg(Sie werden dies jedoch wahrscheinlich in keinem Protokoll sehen - siehe Matthew Phipps 'Kommentar unten für einen möglichen Grund). Dies ist eine Rohausgabe und sieht nicht genau so aus, wie Sie es in dmesgoder in Ihren Protokolldateien sehen. Es gibt eine kleine Dokumentation dazu, die mit der Kernelquelle geliefert wird. Das Lesen von /proc/kmsg(nicht dasselbe wie /dev/ksmg) wird empfohlen, wenn (r) syslog ausgeführt wird.

Rsyslog ist eine von mehreren Syslog- Implementierungen, die häufig unter Linux verwendet werden. Hierbei handelt es sich um Userland-Anwendungen, die Kernel-Nachrichten von /proc/ksmgund Nachrichten von anderen Userland-Prozessen über einen Socket beziehen /dev/log.

Goldlöckchen
quelle
2
Ich möchte darauf hinweisen, dass in rsyslog $ KLogPermitNonKernelFacility standardmäßig deaktiviert ist, weshalb Nicht-Kernel-Nachrichten aus / proc / kmsg von rsyslog ignoriert werden, sofern Sie diese Option nicht aktivieren. Dies kann tatsächlich sehr verwirrend werden, da Upstart beispielsweise mit einer Nicht-Kernel-Funktion in / proc / kmsg protokolliert.
Vanessa Phipps