Linux/Logging

Aus Foxwiki

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

Linux/Logging/Syslog

Dienstprogramme

Überwachung

Dienstprogramme zur Überwachung von Linux-Protokollen

Im vorherigen Abschnitt haben wir gesehen, wie Sie Ihre Protokollierungsdienstprogramme einfach konfigurieren können. Welche Dienstprogramme können Sie jedoch verwenden, um Ihre Linux-Protokolle einfach zu lesen?

Der einfachste Weg, Ihre Linux-Protokolle zu lesen und zu überwachen, besteht darin, den Befehl tail mit der Option "-f" zu verwenden, um zu folgen.

$ tail -f <file>

Um beispielsweise die in der Datei auth.log geschriebenen Protokolle zu lesen, führen Sie den folgenden Befehl aus

$ tail -f /var/log/auth.log

Eine weitere großartige Möglichkeit zum Lesen von Linux-Protokollen ist die Verwendung grafischer Anwendungen, wenn Sie eine Linux-Desktop-Umgebung ausführen

Die „ Protokolle Anwendung “ ist eine grafische Anwendung, mit der Anwendungs- und Systemprotokolle aufgelistet werden, die in verschiedenen Protokolldateien (entweder in rsyslog oder journald) gespeichert werden können

Dienstprogramme

Nachdem Sie gesehen haben, wie die Protokollierung auf einem Linux-System konfiguriert werden kann, sehen wir uns einige Dienstprogramme an, die Sie für den Fall verwenden können, dass Sie Nachrichten protokollieren möchten

Logger

Das Logger- Dienstprogramm ist wahrscheinlich einer der am einfachsten zu verwendenden Log-Clients

Der Logger wird zum Senden von Protokollnachrichten an das Systemprotokoll verwendet und kann mit der folgenden Syntax ausgeführt werden.

$ logger <options> <message>

Angenommen, Sie möchten eine Notfallnachricht von der Authentifizierungsfunktion an Ihr Dienstprogramm rsyslog senden. Führen Sie dann den folgenden Befehl aus

$ logger -p auth.emerg "Somebody tried to connect to the system"

Wenn Sie nun die Datei /var/log/auth.log überprüfen, können Sie die Nachricht finden, die Sie gerade auf dem rsyslog-Server protokolliert haben

$ tail -n 10 /var/log/auth.log | grep --color connect

Der Logger ist sehr nützlich, wenn er beispielsweise in Bash-Skripten verwendet wird

Aber was ist, wenn Sie Dateien mit dem systemd-journal protokollieren möchten?

systemd-cat

Um Nachrichten an das systemd-Journal zu senden, müssen Sie den Befehl „systemd-cat“ verwenden und den Befehl angeben, den Sie ausführen möchten

$ systemd-cat <command> <arguments>

Wenn Sie die Ausgabe des Befehls "ls -l" an das Journal senden möchten, schreiben Sie den folgenden Befehl

$ systemd-cat ls -l

Es ist auch möglich, "Nur-Text" -Protokolle an das Journal zu senden, indem der Befehl echo an das Dienstprogramm systemd-cat weitergeleitet wird

$ echo "This is a message to journald" | systemd-cat

Wall

Der Befehl wall steht nicht in direktem Zusammenhang mit Protokollierungsdienstprogrammen, kann jedoch für die Linux-Systemadministration sehr nützlich sein

Der Befehl wall wird verwendet, um Nachrichten an alle angemeldeten Benutzer zu senden.

$ wall -n <message>

Wenn Sie beispielsweise allen angemeldeten Benutzern eine Nachricht schreiben würden, um sie über den nächsten Neustart des Servers zu informieren, würden Sie den folgenden Befehl ausführen

$ wall -n "Server reboot in five minutes, close all important applications"


Anhang

Siehe auch

Links

Weblinks