Warum habe ich für die Zwecke der Kernel-Protokollierung drei verschiedene, nicht inklusive Protokollierungsebenen unter /var/log/messages
, /var/log/syslog
, und /var/log/kern.log
?
Beste Antwort
Syslog ist eine Standardprotokollierungsfunktion. Es sammelt Meldungen verschiedener Programme und Dienste, einschließlich des Kernels, und speichert sie, je nach Konfiguration, in einer Reihe von Protokolldateien, typischerweise unter /var/log
. In einigen Rechenzentrumskonfigurationen gibt es Hunderte von Geräten mit jeweils eigenem Protokoll; syslog kommt auch hier gut an. Man richtet einfach einen dedizierten Syslog-Server ein, der alle einzelnen Geräteprotokolle über das Netzwerk sammelt. Syslog kann auch Protokolle zu Datenbanken und anderen Clients speichern.
Laut meiner /etc/syslog.conf
, standardmäßig /var/log/kern.log
erfasst nur die Nachrichten des Kernels eines beliebigen Loglevels; also die Ausgabe von dmesg
.
/var/log/messages
zielt stattdessen darauf ab, wertvolle, nicht debuggende und nicht kritische Nachrichten zu speichern. Dieses Protokoll sollte als Protokoll der „allgemeinen Systemaktivität“ betrachtet werden.
/var/log/syslog
protokolliert wiederum alles außer auth-bezogenen Nachrichten.
Andere interessante Standardprotokolle, die von Syslog verwaltet werden, sind /var/log/auth.log
, /var/log/mail.log
.
Aktualisierung 2020
Sie können immer noch über Syslog stolpern; aber die Standardwerte haben sich geändert.
journald
hat Syslog in einem ziemlich großen Teil der Systeme ersetzt, einschließlich Ubuntu.
Dies ist relevant, da Sie /var/log/messages
nicht finden werden das oft nicht mehr. journald
schreibt keine Klartextprotokolle – es verwendet sein eigenes, komprimiertes und teilweise authentifiziertes Format.
Suchen Sie online nach z. journalctl-Cheatsheet , oder studieren Sie einfach man 8 systemd-journald
, man 1 journalctl
selbst.
Syslog und journald sind bis zu einem gewissen Grad kreuzkompatibel; Sie können Protokolle zwischen ihnen in beide Richtungen transportieren. Sie erhalten jedoch keine Klartextprotokolle wie /var/log/messages
mit Journald; und Sie werden nicht strukturiert (journalctl -o json-pretty
) und authentifizierte Protokollierung mit Syslog.