Unterschied zwischen / var / log / messages, / var / log / syslog und /var/log/kern.log?

68

Für die Zwecke des Kernel - Logging, warum habe ich drei verschiedene, nicht-inclusive Ebene der Protokollierung unter /var/log/messages, /var/log/syslogund /var/log/kern.log?

Ein Student an einer Universität
quelle
Beachten Sie, dass / var / log / messages auf Nicht-Debian- / Nicht-Ubuntu-Systemen wie RHEL- oder CentOS-Systemen normalerweise das Syslog ist.
Thomas Ward
Beachten Sie, dass journalctldas Symbol langsam ersetzt wird, syslogwenn Sie zur Ressource für die Überwachung von Systemmeldungen wechseln.
WinEunuuchs2Unix

Antworten:

52

Syslog ist eine Standardprotokollierungsfunktion. Es sammelt Nachrichten von verschiedenen Programmen und Diensten, einschließlich des Kernels, und speichert sie je nach Einrichtung in einer Reihe von Protokolldateien, die normalerweise unter gespeichert sind /var/log. In einigen Datencenter-Setups gibt es Hunderte von Geräten mit jeweils eigenem Protokoll. Auch hier bietet sich Syslog an. Man richtet einfach einen dedizierten Syslog-Server ein, der alle einzelnen Geräteprotokolle über das Netzwerk sammelt. Syslog kann Protokolle auch in Datenbanken und anderen Clients speichern.

Meiner Meinung nach erfasst /etc/syslog.confdefault /var/log/kern.lognur die Kernel-Nachrichten eines beliebigen Loglevels. dh die Ausgabe von dmesg.

/var/log/messagesZiel ist es stattdessen, wertvolle, nicht debuggbare und nicht kritische Nachrichten zu speichern. Dieses Protokoll sollte als Protokoll "Allgemeine Systemaktivität" betrachtet werden.

/var/log/syslog protokolliert wiederum alles, außer auth-bezogene Nachrichten.

Andere insteresting Standardprotokolle von syslog verwaltet werden /var/log/auth.log, /var/log/mail.log.

Zu Ihrer Frage: Wenn Sie nur das Kernel-Nachrichtenprotokoll benötigen, verwenden Sie kern.logoder dmesg.

ulidtko
quelle
1
Verweise auf Sie Ansprüche bitte?
Goaler444
8
@ Goaler444, man syslog.conf.
ulidtko
2
Beachten Sie, dass Einträge im Kernel-Ringpuffer (was dmesg liest) es standardmäßig nicht in eine / var / log-Datei schaffen, wenn sie von einem User-Space-Prozess geschrieben wurden. Sie müssen $KLogPermitNonKernelFacility onin der Konfiguration von rsyslogd festlegen, ob diese Nachrichten in angezeigt werden sollen /var/log. Weitere Informationen finden Sie in meiner Antwort unter askubuntu.com/a/490900/297973 .
Vanessa Phipps
7
auch erwähnenswert, dass ubuntu ( seit natty ) nicht mehr verwendet /var/log/messages, und speichert alles auf/var/log/syslog
jackbravo
1
in Ubuntu 16.04 /var/log/syslogist in der Tat eine saubere Obermenge /var/log/kern.logmit der Einschränkung, dass man unterschiedliche Rotationsstrategien berücksichtigen muss. ZB in meinem System (Standardkonfiguration unverändert) werden die heutigen und die gestrigen Nachrichten in einer einzigen Datei gespeichert, /var/log/kern.logwohingegen die meisten der gestrigen Nachrichten in syslogsind /var/log/syslog.1.
Marcus Junius Brutus
12
  • syslog enthält alle Nachrichten mit Ausnahme des Typs auth.
  • messages enthält nur allgemeine unkritische Nachrichten. Die Kategorie ist info, noticeundwarn
  • Für ein vollständiges Protokoll schauen Sie sich /var/log/syslogund an/var/log/auth.log
  • AFAIK /var/log/kern.logenthält Kernelnachrichten.
  • Protokolldateien sind lediglich eine Konvention, die in /etc/syslog.conf aufgeführt ist
  • Lesen Sie syslog(3)für weitere Informationen

Überprüfen Sie diese Seite auf Unterschiede zwischen Nachrichten und Syslog

es heißt /var/log/messages /var/log/syslog

Manish Sinha
quelle
1
Der von Ihnen angegebene Link ist fehlerhaft.
Slm
4
Duplizieren des Kommentars die Antwort eines Ulidtko: Erwähnenswert ist auch, dass Ubuntu ( seit natty ) nicht mehr verwendet /var/log/messagesund alles auf speichert/var/log/syslog
Jackbravo