Linux/Logging: Unterschied zwischen den Versionen
Markierung: Ersetzt |
|||
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''Linux | '''Linux-Logging''' - Aufzeichnung wichtiger Systemmeldungen | ||
== Beschreibung == | == Beschreibung == | ||
Zeile 6: | Zeile 6: | ||
; Protokolle sind von entscheidender Bedeutung | ; Protokolle sind von entscheidender Bedeutung | ||
* Sie speichern wichtige Informationen zu einigen Fehlern, die auf Ihrem System auftreten können | * Sie speichern wichtige Informationen zu einigen Fehlern, die auf Ihrem System auftreten können | ||
* Sie können auch Informationen darüber speichern, wer versucht, auf Ihr System zuzugreifen, was ein bestimmter Dienst tut oder über einen Systemabsturz, der zuvor aufgetreten ist. | * Sie können auch Informationen darüber speichern, wer versucht, auf Ihr System zuzugreifen, was ein bestimmter Dienst tut oder über einen Systemabsturz, der zuvor aufgetreten ist | ||
== Protokollierungstypen == | |||
Wenn Sie sich mit der Linux-Protokollierung befassen, müssen Sie einige Grundlagen verstehen, bevor Sie Befehle in das Terminal eingeben | |||
Unter Linux gibt es zwei Arten von Protokollierungsmechanismen | |||
* '''Kernel-Protokollierung''' : Bezieht sich auf Fehler, Warnungen oder Informationseinträge, die Ihr Kernel möglicherweise schreibt | |||
* '''Benutzerprotokollierung Diese Protokolleinträge sind''' : mit dem Benutzerbereich verknüpft und beziehen sich auf Prozesse oder Dienste, die möglicherweise auf dem Hostcomputer ausgeführt werden | |||
Durch die Aufteilung der Protokollierung in zwei Kategorien enthüllen wir im Wesentlichen, dass der Speicher selbst unter Linux in zwei Kategorien unterteilt ist: '''User Space''' und '''Kernel Space''' | |||
==== Kernel-Protokollierung ==== | |||
Beginnen wir zunächst mit der Protokollierung, die dem Kernel-Space zugeordnet ist, der auch als Kernel-Protokollierung bezeichnet wird | |||
Im Kernelbereich erfolgt die Protokollierung über den '''Kernel-Ringpuffer.''' | |||
'''Der Kernel-Ringpuffer ist ein Ringpuffer, der als erste Datenstruktur Protokollnachrichten speichert, wenn das System hochfährt.''' | |||
Wenn Sie Ihren Linux-Computer starten und Protokollmeldungen auf dem Bildschirm angezeigt werden, werden diese Meldungen im Kernel-Ringpuffer gespeichert | |||
Die Kernel-Protokollierung wird vor der Benutzerprotokollierung gestartet (verwaltet vom Syslog-Daemon oder von rsyslog bei aktuellen Distributionen) | |||
Der Kernel-Ringpuffer kann wie alle anderen Protokolldateien auf Ihrem System überprüft werden | |||
Um Kernel-bezogene Protokolle auf Ihrem System zu öffnen, müssen Sie den " '''dmesg''' Befehl " verwenden.<blockquote>'''Hinweis''' : Sie müssen diesen Befehl als root ausführen oder über privilegierte Rechte verfügen, um den Kernel-Ringpuffer zu überprüfen.</blockquote> | |||
<code>$ dmesg</code> | |||
Wie Sie sehen können, verfolgt der Kernel vom Systemstart bis zum Zeitpunkt der Ausführung des Befehls alle Aktionen, Warnungen oder Fehler, die im Kernelbereich auftreten können | |||
Wenn Ihr System Probleme beim Erkennen oder Mounten einer Festplatte hat, möchten Sie wahrscheinlich hier die Fehler überprüfen | |||
Wie Sie sehen können, ist der Befehl dmesg eine hübsche Oberfläche, um Kernel-Protokolle anzuzeigen. Aber wie druckt der Befehl dmesg diese Ergebnisse an Sie zurück? | |||
Um die verschiedenen verwendeten Mechanismen aufzudecken, schauen wir uns an, welche '''Prozesse und Geräte für die Kernel-Protokollierung zuständig sind''' | |||
===== Interna für die Kernel-Protokollierung ===== | |||
Wie Sie wahrscheinlich schon einmal gehört haben, ist unter Linux '''alles eine Datei.''' | |||
Wenn alles eine Datei ist, bedeutet dies auch, dass '''Geräte Dateien sind.''' | |||
Unter Linux wird der Kernel-Ringpuffer durch eine Zeichengerätedatei im Verzeichnis / dev materialisiert und heißt kmsg | |||
<code>$ ls -l /dev/ | grep kmsg</code> | |||
Wenn wir die Beziehung zwischen dem kmsg-Gerät und dem Kernel-Ringpuffer darstellen würden, würden wir sie so darstellen | |||
Wie Sie sehen können, ist das kmsg-Gerät eine '''Abstraktion,''' die zum Lesen und Schreiben in den Kernel-Ringpuffer verwendet wird | |||
Sie können es im Wesentlichen als Einstiegspunkt für User-Space-Prozesse betrachten, um in den Kernel-Ringpuffer zu schreiben | |||
Das oben gezeigte Diagramm ist jedoch unvollständig, da der Kernel eine spezielle Datei verwendet, um die Kernel-Protokollinformationen in eine Datei zu kopieren | |||
Wenn wir es zusammenfassen würden, würden wir im Wesentlichen dass das '''angeben, virtuelle kmsg-Gerät als Einstiegspunkt''' für den Kernel-Ringpuffer fungiert, während die Ausgabe dieses Prozesses (die Protokollzeilen) in die Datei / proc / kmsg gedruckt wird | |||
Diese Datei kann nur von einem einzigen Prozess analysiert werden. Dies ist meistens das Protokollierungsdienstprogramm, das im Benutzerbereich verwendet wird. Bei einigen Distributionen kann es sich um syslogd handeln, bei neueren Distributionen ist es jedoch in integriert rsyslog | |||
Das Dienstprogramm rsyslog verfügt über eine Reihe eingebetteter Module, die Kernelprotokolle in dedizierte Dateien im Dateisystem umleiten | |||
In der wurden Kernel-Protokolle vom abgerufen, '''Vergangenheit klogd-Daemon''' auf früheren Systemen auf den meisten Distributionen jedoch durch rsyslog ersetzt | |||
Einerseits haben Sie Protokollierungsdienstprogramme, die aus dem Ringpuffer lesen, aber Sie haben auch User-Space-Programme, die in den Ringpuffer schreiben: systemd (mit dem berühmten systemd-Journal) zum Beispiel für aktuelle Distributionen | |||
Nachdem Sie mehr über die Kernel-Protokollierung erfahren haben, sehen wir uns an, '''wie die Protokollierung im Benutzerbereich durchgeführt wird.''' | |||
== Syslog == | |||
[[Linux/Logging/Syslog]] | |||
[[Linux/Logging/Dienstprogramme]] | |||
<noinclude> | <noinclude> | ||
Zeile 19: | Zeile 84: | ||
===== Weblinks ===== | ===== Weblinks ===== | ||
[[Kategorie:Linux/Logging]] | |||
</noinclude> | </noinclude> | ||
Aktuelle Version vom 20. Oktober 2024, 11:29 Uhr
Linux-Logging - Aufzeichnung wichtiger Systemmeldungen
Beschreibung
- Linux-Systemadministraton
Überprüfen von Protokolldateien ist eine der häufigsten Aufgaben
- Protokolle sind von entscheidender Bedeutung
- Sie speichern wichtige Informationen zu einigen Fehlern, die auf Ihrem System auftreten können
- Sie können auch Informationen darüber speichern, wer versucht, auf Ihr System zuzugreifen, was ein bestimmter Dienst tut oder über einen Systemabsturz, der zuvor aufgetreten ist
Protokollierungstypen
Wenn Sie sich mit der Linux-Protokollierung befassen, müssen Sie einige Grundlagen verstehen, bevor Sie Befehle in das Terminal eingeben
Unter Linux gibt es zwei Arten von Protokollierungsmechanismen
- Kernel-Protokollierung : Bezieht sich auf Fehler, Warnungen oder Informationseinträge, die Ihr Kernel möglicherweise schreibt
- Benutzerprotokollierung Diese Protokolleinträge sind : mit dem Benutzerbereich verknüpft und beziehen sich auf Prozesse oder Dienste, die möglicherweise auf dem Hostcomputer ausgeführt werden
Durch die Aufteilung der Protokollierung in zwei Kategorien enthüllen wir im Wesentlichen, dass der Speicher selbst unter Linux in zwei Kategorien unterteilt ist: User Space und Kernel Space
Kernel-Protokollierung
Beginnen wir zunächst mit der Protokollierung, die dem Kernel-Space zugeordnet ist, der auch als Kernel-Protokollierung bezeichnet wird
Im Kernelbereich erfolgt die Protokollierung über den Kernel-Ringpuffer.
Der Kernel-Ringpuffer ist ein Ringpuffer, der als erste Datenstruktur Protokollnachrichten speichert, wenn das System hochfährt.
Wenn Sie Ihren Linux-Computer starten und Protokollmeldungen auf dem Bildschirm angezeigt werden, werden diese Meldungen im Kernel-Ringpuffer gespeichert
Die Kernel-Protokollierung wird vor der Benutzerprotokollierung gestartet (verwaltet vom Syslog-Daemon oder von rsyslog bei aktuellen Distributionen)
Der Kernel-Ringpuffer kann wie alle anderen Protokolldateien auf Ihrem System überprüft werden
Um Kernel-bezogene Protokolle auf Ihrem System zu öffnen, müssen Sie den " dmesg Befehl " verwenden.
Hinweis : Sie müssen diesen Befehl als root ausführen oder über privilegierte Rechte verfügen, um den Kernel-Ringpuffer zu überprüfen.
$ dmesg
Wie Sie sehen können, verfolgt der Kernel vom Systemstart bis zum Zeitpunkt der Ausführung des Befehls alle Aktionen, Warnungen oder Fehler, die im Kernelbereich auftreten können
Wenn Ihr System Probleme beim Erkennen oder Mounten einer Festplatte hat, möchten Sie wahrscheinlich hier die Fehler überprüfen
Wie Sie sehen können, ist der Befehl dmesg eine hübsche Oberfläche, um Kernel-Protokolle anzuzeigen. Aber wie druckt der Befehl dmesg diese Ergebnisse an Sie zurück?
Um die verschiedenen verwendeten Mechanismen aufzudecken, schauen wir uns an, welche Prozesse und Geräte für die Kernel-Protokollierung zuständig sind
Interna für die Kernel-Protokollierung
Wie Sie wahrscheinlich schon einmal gehört haben, ist unter Linux alles eine Datei.
Wenn alles eine Datei ist, bedeutet dies auch, dass Geräte Dateien sind.
Unter Linux wird der Kernel-Ringpuffer durch eine Zeichengerätedatei im Verzeichnis / dev materialisiert und heißt kmsg
$ ls -l /dev/ | grep kmsg
Wenn wir die Beziehung zwischen dem kmsg-Gerät und dem Kernel-Ringpuffer darstellen würden, würden wir sie so darstellen
Wie Sie sehen können, ist das kmsg-Gerät eine Abstraktion, die zum Lesen und Schreiben in den Kernel-Ringpuffer verwendet wird
Sie können es im Wesentlichen als Einstiegspunkt für User-Space-Prozesse betrachten, um in den Kernel-Ringpuffer zu schreiben
Das oben gezeigte Diagramm ist jedoch unvollständig, da der Kernel eine spezielle Datei verwendet, um die Kernel-Protokollinformationen in eine Datei zu kopieren
Wenn wir es zusammenfassen würden, würden wir im Wesentlichen dass das angeben, virtuelle kmsg-Gerät als Einstiegspunkt für den Kernel-Ringpuffer fungiert, während die Ausgabe dieses Prozesses (die Protokollzeilen) in die Datei / proc / kmsg gedruckt wird
Diese Datei kann nur von einem einzigen Prozess analysiert werden. Dies ist meistens das Protokollierungsdienstprogramm, das im Benutzerbereich verwendet wird. Bei einigen Distributionen kann es sich um syslogd handeln, bei neueren Distributionen ist es jedoch in integriert rsyslog
Das Dienstprogramm rsyslog verfügt über eine Reihe eingebetteter Module, die Kernelprotokolle in dedizierte Dateien im Dateisystem umleiten
In der wurden Kernel-Protokolle vom abgerufen, Vergangenheit klogd-Daemon auf früheren Systemen auf den meisten Distributionen jedoch durch rsyslog ersetzt
Einerseits haben Sie Protokollierungsdienstprogramme, die aus dem Ringpuffer lesen, aber Sie haben auch User-Space-Programme, die in den Ringpuffer schreiben: systemd (mit dem berühmten systemd-Journal) zum Beispiel für aktuelle Distributionen
Nachdem Sie mehr über die Kernel-Protokollierung erfahren haben, sehen wir uns an, wie die Protokollierung im Benutzerbereich durchgeführt wird.
Syslog
Anhang
Siehe auch
Links
Weblinks