Różnica między / var / log / messages, / var / log / syslog i /var/log/kern.log?

68

Do celów rejestrowania jądra, dlaczego mam trzy różne, niewłącznie poziomy rejestrowania wśród /var/log/messages, /var/log/syslogi /var/log/kern.log?

Student na uniwersytecie
źródło
Zauważ, że / var / log / messages to syslog w systemach innych niż Debian / Ubuntu, takich jak RHEL lub CentOS.
Thomas Ward
Zauważ, że journalctlpowoli zastępuje się syslogjako przejdź do zasobu do monitorowania komunikatów systemowych.
WinEunuuchs2Unix

Odpowiedzi:

52

Syslog to standardowa funkcja rejestrowania. Gromadzi wiadomości różnych programów i usług, w tym jądra, i przechowuje je, w zależności od konfiguracji, w plikach dziennika zwykle pod /var/log. W niektórych konfiguracjach centrów danych istnieją setki urządzeń z własnym dziennikiem; Przydaje się także syslog . Wystarczy skonfigurować dedykowany serwer syslog, który zbiera wszystkie dzienniki poszczególnych urządzeń w sieci. Syslog może także zapisywać dzienniki w bazach danych i innych klientach.

Według mojego /etc/syslog.conf, domyślnie /var/log/kern.logprzechwytuje tylko wiadomości jądra dowolnego loglevel; tj. wyjście dmesg.

/var/log/messageszamiast tego ma na celu przechowywanie cennych, nie-debugujących i niekrytycznych wiadomości. Ten dziennik należy traktować jako dziennik „ogólnej aktywności systemu”.

/var/log/syslog z kolei rejestruje wszystko, z wyjątkiem komunikatów związanych z uwierzytelnianiem.

Inne insteresting standardowe dzienniki są zarządzane przez syslog /var/log/auth.log, /var/log/mail.log.

Jeśli chodzi o twoje pytanie: jeśli potrzebujesz wyłącznie dziennika komunikatów jądra, użyj kern.loglub dmesg.

ulidtko
źródło
1
proszę o jakieś odniesienia do ciebie?
Goaler444
8
@ Goaler444, man syslog.conf.
ulidtko
2
Zauważ, że wpisy w buforze pierścieniowym jądra (co odczytuje dmesg) nie będą domyślnie umieszczane w żadnym pliku / var / log, jeśli zostały zapisane przez proces przestrzeni użytkownika. Musisz ustawić $KLogPermitNonKernelFacility onw konfiguracji rsyslogd, jeśli chcesz zobaczyć te wiadomości /var/log. Zobacz moją odpowiedź na askubuntu.com/a/490900/297973, aby uzyskać więcej informacji.
Vanessa Phipps
7
warto również zauważyć, że ubuntu ( od natty ) nie używa już /var/log/messagesi zapisuje wszystko/var/log/syslog
jackbravo
1
w Ubuntu 16.04 /var/log/syslogjest rzeczywiście czystym nadzbiorem /var/log/kern.logzastrzeżeniem, że należy uwzględnić różne strategie rotacji. Np. W moim systemie (domyślna konfiguracja bez zmian) dzisiejsze i wczorajsze wiadomości są przechowywane w jednym pliku, podczas /var/log/kern.loggdy większość wczorajszych wiadomości syslogjest w /var/log/syslog.1.
Marcus Junius Brutus
12
  • syslog zawiera wszystkie wiadomości oprócz typu auth.
  • wiadomości zawierają tylko ogólne wiadomości niekrytyczne. Kategoria jest info, noticeawarn
  • Aby uzyskać pełny dziennik, spójrz na /var/log/syslogi/var/log/auth.log
  • AFAIK /var/log/kern.logzawiera komunikaty jądra.
  • pliki dziennika są tylko konwencją zapisaną w /etc/syslog.conf
  • czytaj syslog(3)po więcej informacji

Sprawdź tę stronę na temat różnic między wiadomościami a syslog

mówi /var/log/messages /var/log/syslog

Manish Sinha
źródło
1
Podany link jest uszkodzony.
slm
2
@slm Oto zarchiwizowana wersja .
ignis,
4
Powielając komentarz odpowiedź ulidtko: warto również zauważyć, że ubuntu ( od natty ) nie używa już /var/log/messagesi zapisuje wszystko/var/log/syslog
jackbravo