Gdzie znajduje się bufor pierścieniowy jądra w stosunku do rsyslog?


9

Czy rsyslogjest to tylko warstwa abstrakcji na buforze pierścieniowym jądra? Czy też bufor pierścieniowy jądra jest jego własnym bytem, ​​a rsysloginterakcja jest jak w przypadku jakiejkolwiek innej „aplikacji”?

logs  syslog  dmesg 

Odpowiedzi:


6

Chociaż różne fragmenty dokumentacji (w tym man dmesg) nazywają ją „buforem pierścienia jądra”, lepiej byłoby nazywać ją buforem dziennika jądra, ponieważ „bufor pierścienia” jest terminem ogólnym i uważam, że jądro również używa pierścienia bufory dla różnych całkowicie niezwiązanych rzeczy. „Bufor printk” jest również odpowiedni, po funkcji miejsca jądra używanej do pisania do niego.

W każdym razie znajduje się w przestrzeni jądra, a interfejs odczytu jest zapewniony przez, /proc/kmsga interfejs odczytu i zapisu przez /dev/kmsg. Więc jeśli jako root przejdziesz:

echo "Hello Kernel!" > /dev/ksmg

Zobaczysz to, jeśli to zrobisz cat /dev/ksmg(jednak prawdopodobnie nie zobaczysz tego pojawiającego się w żadnych dziennikach - patrz komentarz Matthew Phipps poniżej z możliwego powodu). Jest to surowe wyjście i nie wygląda dokładnie tak, jak rzeczy, które widzisz z dmesgplików dziennika lub w nich. Jest trochę dokumentacji na ten temat dostarczonej ze źródłem jądra. Czytanie z /proc/kmsg(nie tego samego, co /dev/ksmg) jest zalecane, jeśli (r) syslog jest uruchomiony.

Rsyslog jest jedną z wielu implementacji syslog powszechnie używanych w systemie Linux. Są to aplikacje przestrzeni użytkownika, że komunikaty z jądra źródło /proc/ksmgi wiadomości od innych procesów przestrzeni użytkownika za pomocą gniazda /dev/log.


2
Zwracam uwagę, że rsyslog ma domyślnie wyłączoną $ KLogPermitNonKernelFacility, dlatego wiadomości inne niż jądro z / proc / kmsg będą ignorowane przez rsyslog, chyba że włączysz tę opcję. To może być naprawdę mylące, ponieważ na przykład Upstart loguje się do / proc / kmsg za pomocą funkcji innej niż jądro.
Vanessa Phipps
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.