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.