Dove si trova il buffer dell'anello del kernel rispetto a rsyslog?


9

È rsyslogsolo uno strato di astrazione in cima al buffer dell'anello del kernel? O il kernel ring buffer è la sua entità e l' rsysloginterazione è simile a quella di qualsiasi altra "applicazione"?

logs  syslog  dmesg 

Risposte:


6

Sebbene vari documenti (incluso man dmesg) si riferiscano ad esso come "buffer del kernel ring", potrebbe essere meglio fare riferimento ad esso come buffer del log del kernel, poiché "buffer dell'anello" è un termine generico e credo che il kernel usi anche l'anello buffer per varie cose completamente non correlate. Anche il "buffer printk" è appropriato, dopo che la funzione dello spazio del kernel è stata utilizzata per scrivere su di esso.

Ad ogni modo, risiede nello spazio del kernel e un'interfaccia di lettura viene fornita tramite /proc/kmsge un'interfaccia di lettura-scrittura tramite /dev/kmsg. Quindi se come root vai:

echo "Hello Kernel!" > /dev/ksmg

Lo vedrai se poi cat /dev/ksmg(probabilmente non lo vedrai apparire in alcun registro, comunque - vedi il commento di Matthew Phipps sotto per un possibile motivo). Questo è un output non elaborato e non assomiglia esattamente alle cose che vedi dmesgo dai tuoi file di registro. C'è un po 'di documentazione su questo fornita con il sorgente del kernel. Si consiglia di leggere da /proc/kmsg(non uguale a /dev/ksmg) se (r) syslog è in esecuzione.

Rsyslog è una delle numerose implementazioni di syslog comunemente usate su Linux. Queste sono applicazioni userland che generano messaggi kernel /proc/ksmge messaggi da altri processi userland tramite un socket /dev/log.


2
Vorrei sottolineare che rsyslog ha $ KLogPermitNonKernelFacility disattivato per impostazione predefinita, motivo per cui i messaggi non kernel provenienti da / proc / kmsg verranno ignorati da rsyslog a meno che non attivi questa opzione. Questo può effettivamente creare confusione, dal momento che Upstart, ad esempio, accede a / proc / kmsg con una funzione non kernel.
Vanessa Phipps,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.