/
/

Verständnis von Linux-Protokollen: Überblick mit Beispielen

by Makenzie Buenning, IT Editorial Expert   |  
übersetzt von Dragos Frangulea
Verständnis von Linux-Protokollen

Protokollierung und Programmausgabe sind in die gesamte Linux-Systemstruktur eingebettet. In der Linux-Welt dienen Protokolle als wichtige Informationsquelle für Sicherheitsvorfälle, Anwendungsaktivitäten und Systemereignisse. Die effektive Verwaltung Ihrer Protokolle ist für die Fehlersuche und die Compliance essenziell. Dieser Artikel befasst sich mit der Bedeutung der Protokollierung und den wichtigsten Arten von Protokollen, bevor er einige hilfreiche Befehlszeilentools und andere Tipps für die Verwaltung von Linux-Protokollen vorstellt.

Die Bedeutung von Protokollierung

Die Protokollierung bietet einen umfassenden Überblick über die Anwendungen und Prozesse, die Ihr System automatisch im Hintergrund ausführt. Diese Protokolle bieten einen Prüfpfad, aus dem hervorgeht, welche Prozesse auf einem System laufen oder nicht und welche Erfolge und Fehler bei diesen Aktivitäten auftreten. Viele Anwendungen im Linux-Ökosystem erzeugen Ausgaben, die von Menschen gelesen werden können. Falls diese Ausgaben in eine Protokolldatei umgeleitet werden, werden sie automatisch von den auf einem Linux-System enthaltenen Tools geparst. Auch wenn man dazu nicht unbedingt ein Protokoll öffnen muss, wäre es schwierig, wenn nicht sogar unmöglich, historische Informationen abzurufen, ohne dass diese Informationen in einem Protokoll vorhanden sind. 

Es ist wichtig, einen der wesentlichen Vorteile zu erkennen, die dies am Arbeitsplatz mit sich bringt. Durch die nahtlose Integration der Benutzeroberfläche in die zugrunde liegende Systemarchitektur wird die Feedbackschleife während der Entwicklungsphase und darüber hinaus verkürzt. Anschließend generiert es wertvolle Ergebnisse, die während des gesamten Lifecycles Ihrer Anwendung in verwertbare Erkenntnisse umgewandelt werden können. Sehen Sie Linux Log Management: Techniken und Best Practices für Techniken zur effektiven Verwaltung und Verwendung von Protokollen.

Arten von Protokollen

  • Systemprotokolle: Sie erfassen Informationen über das Betriebssystem, zum Beispiel Startmeldungen, Hardware-Ereignisse und Kernel-Aktivitäten. 
  • Anwendungsprotokolle: Diese zeichnen spezifische softwarebezogene Ereignisse auf, wie etwa Wartungsmeldungen, Fehler, Warnmeldungen und Benutzeraktivitäten.
  • Sicherheitsprotokolle: Sie verfolgen sicherheitsrelevante Ereignisse, einschließlich unbefugten Zugriffs, regelmäßiger Anmeldungen und Firewall-Aktivitäten. 

Jedes dieser Elemente kann dann als Eingabe oder Auslöser für Anwendungen oder Skripte dienen, einschließlich der Integration in die meisten seriösen Überwachungsprogramme für Unternehmen.

Syslog- und „journald“-Protokollformate

Protokolldateien können in verschiedenen Formaten gespeichert werden, wobei zwei der gängigsten Formate die journalisierten (zentralisierten) Systemprotokolle und die Klartextprotokolle sind. 

Traditionell wird das Syslog-Format in Klartextprotokollen gespeichert, die leicht zu lesen und zu analysieren sind. Dieses Format hat Vor- und Nachteile, ebenso wie „journald“, das Protokolle in einem binären Format speichert, die mit dem Befehl „journalctl“ gelesen werden kann. 

Die meisten modernen Linux-Distributionen neigen dazu, die „journald“-Protokolle von „systemd“ zumindest für ihre Kernsystemanwendungen zu verwenden. „Systemd“-Journalprotokolle bieten Vorteile wie zentralisierte Protokollierungseinrichtungen, Echtzeit-Protokollüberwachung von strukturierten und indizierten Protokolldaten und automatische Protokollverschlüsselung. Im Vergleich dazu scheinen die weniger restriktiven traditionellen Linux-Klartextprotokolle auf den ersten Blick riskanter zu sein. Lassen Sie sich jedoch nicht täuschen: Klartextprotokolle haben immer noch viele Verwendungsmöglichkeiten.

Die meisten oder alle in „systemd“ integrierten Funktionen, wie zum Beispiel entfernte Protokollierungssysteme, zentralisierte Überwachung, Protokollrotation und Backups, werden auch von anderen Standard-Linux-Paketen angeboten. Ein Nachteil von „journald“ ist seine vergleichsweise „schwere“ monolithische Natur im Vergleich zu den detaillierteren Linux-Kommandozeilen-Tools, die zur Interaktion mit Syslog-Dateien verwendet werden, wie grep, awk oder tail. Im Vergleich dazu erhalten Sie bei der Verwendung von „journald“ alle Funktionen installiert und in Betrieb: Speicherung, Verschlüsselung, zentralisierte Protokollierung, Protokollrotation und vieles mehr, unabhängig davon, ob Sie diese benötigen oder nicht.

Funktionsvergleich: „syslog“ vs. „journald“-Protokollierung

Funktion syslog journald
Speicherformat                                                                                  Plain-Text-Dateien Binärformat mit strukturierten Daten
Kompatibilität Weitgehende Unterstützung durch verschiedene Log-Management-Tools Erfordert „systemd“-Integration für volle Funktionalität
Protokollrotation Manuelle Konfiguration der Protokollrotation Automatische Rotation und Komprimierung von Protokolldateien
Zentralisierte Verwaltung Verlässt sich auf externe Protokollserver und -tools Integrierte Unterstützung für zentralisierte Protokollierung
Filterung und Parsing Erweiterte Textfilter- und Parsing-Funktionen aus der Standard-Linux-Toolchain Erweiterte Filterung und Abfrage mit „journalctl“
Effiziente Speicherung Kann aufgrund des reinen Textformats mehr Speicherplatz beanspruchen Effizientere Speicherung durch binäres und indiziertes Format
Überwachung in Echtzeit Erfordert externe Tools oder das Tailing von Protokolldateien Integrierte Echtzeit-Protokollüberwachung mit „journalctl“
Verlässlichkeit Anfällig für die Beschädigung oder den Verlust von Protokolldateien im Falle eines Absturzes Atomare Schreibvorgänge und eine widerstandsfähige Journal-Dateistruktur
Verschlüsselung Externe Verschlüsselungsmechanismen können erforderlich sein Unterstützt die Verschlüsselung von Protokolldaten

Filtern und Parsen von Protokolldaten: nützliche Beispiele

Beispiele für „Journald“:

Beispiel: journalctl -p err

Erläuterung: Filtert die Journalprotokolle so, dass nur Einträge mit dem Schweregrad „err“ angezeigt werden, der für Fehler steht. So können Sie sich auf Fehlermeldungen konzentrieren und kritische Probleme in den Systemprotokollen schnell erkennen.

Beispiel: journalctl _SYSTEMD_UNIT=nginx.service

Erläuterung: Filtert die Journalprotokolle, um Einträge anzuzeigen, die im Zusammenhang mit nginx.service stehen. Dies ermöglicht die Isolierung von Protokollen, die zum Beispiel für den Nginx-Webserver spezifisch sind, was die Fehlerbehebung oder die Überwachung seiner Aktivitäten erleichtert.

Beispiel: journalctl –since „2023-07-21“ –until „2023-07-22“

Erläuterung: Filtert die Journalprotokolle, um Einträge zwischen den angegebenen Daten anzuzeigen, in diesem Fall vom 21. Juli 2023 bis zum 22. Juli 2023. Dies ermöglicht es Ihnen, sich auf Protokolleinträge innerhalb eines bestimmten Zeitraums zu konzentrieren, was bei der Fehlersuche oder der Untersuchung von Ereignissen, die in diesem Zeitraum aufgetreten sind, hilfreich ist.

Syslog-Beispiele:

Beispiel: grep -i „warning“ syslog.log | grep -v „deprecated“

Erläuterung: Führt einen zweistufigen Filterungsprozess durch. Zunächst wird grep mit der Option -i verwendet, um unter Berücksichtigung der Groß- und Kleinschreibung nach Zeilen zu suchen, die mit der Zeichenfolge „warning“ in syslog.log übereinstimmen. Anschließend wird die Ausgabe an einen anderen grep-Befehl mit der Option -v weitergeleitet. Dieser Befehl schließt Zeilen aus, die mit der Zeichenfolge „deprecated“ übereinstimmen. Damit können Sie Warnmeldungen herausfiltern, die speziell als veraltet gekennzeichnet sind.

Beispiel: grep ’string1|string2[|string3]‘ logfile.log

Erläuterung: Effektive OR-Suche mit grep. Durch die Verwendung von einfachen Anführungszeichen und dem dazwischen liegenden Pipe-Symbol können Sie mit einem einzigen grep-Befehl nach mehreren Zeichenfolgen suchen.

Weitere Tipps zum Protokollierungstools

Die Standard-Linux-Tools werden zwar zum Nutzen des Systems eingesetzt, aber es ist auch sinnvoll, diese Tools anderweitig zu verwenden:

  • logrotate: Nützlich in der Entwicklungsphase Ihrer Anwendung, um Ihre Fehlerbehebungs-Ausgabeprotokolle zu verwalten
  • tail -f: Der Befehl „tail“ gibt die letzten 10 Zeilen einer Datei aus, bevor er beendet wird. Der Schalter „-f“ „verfolgt“ die Protokolldatei, sucht nach neuen Einträgen in der Protokolldatei und aktualisiert sie, wenn neue Zeilen hinzugefügt werden.
  • multitail: Zeigt mehrere Protokolldateien in gekachelten Fenstern in Echtzeit an, sodass Sie diese gleichzeitig überwachen können.

In diesem Artikel haben wir verschiedene Aspekte der Bedeutung der Protokollierung erörtert, verschiedene Arten von Protokollen verglichen und weniger übliche Anwendungsfälle für die Protokollierung bei Ihrer eigenen Arbeit angesprochen. Wir haben auch eine Reihe von Befehlsbeispielen und anderen Tools untersucht, die zu einer effektiven Linux-Protokollverwaltung beitragen. Verwenden Sie Linux-Protokolle, um Informationen über Linux-Betriebssysteme, -Anwendungen und -Systeme zu verfolgen und Ihre Linux-Endpunkte besser zu verwalten. Erfahren Sie mehr über NinjaOnes Software für Fernüberwachung und Endpunkt-Management und wie es Ihnen helfen kann, Ihre dezentralisierten Linux-Geräte einfacher zu verwalten.

Sehen Sie sich den Video-Guide Understanding Linux Logs: Overview with Examples an.

Das könnte Sie auch interessieren

Sind Sie bereit, die schwierigsten Aufgaben der IT zu vereinfachen?
×

Sehen Sie NinjaOne in Aktion!

Mit dem Absenden dieses Formulars akzeptiere ich die Datenschutzerklärung von NinjaOne.

NinjaOne Allgemeine Geschäftsbedingungen für Skripte

Indem Sie unten auf die Schaltfläche „Ich akzeptiere“ klicken, erklären Sie Ihr Einverständnis mit den folgenden rechtlichen Bedingungen sowie mit unseren Nutzungsbedingungen:

  • Eigentumsrechte: NinjaOne besitzt und wird weiterhin alle Rechte, Titel und Interessen an dem Skript (einschließlich des Urheberrechts) behalten. NinjaOne gewährt Ihnen eine eingeschränkte Lizenz zur Nutzung des Skripts in Übereinstimmung mit diesen rechtlichen Bedingungen.
  • Einschränkung der Nutzung: Sie dürfen das Skript nur für Ihre legitimen persönlichen oder internen Geschäftszwecke verwenden und es nicht an Dritte weitergeben.
  • Verbot der Wiederveröffentlichung: Sie sind unter keinen Umständen berechtigt, das Skript in einer Skriptbibliothek, die einem anderen Softwareanbieter gehört oder von diesem kontrolliert wird, erneut zu veröffentlichen.
  • Gewährleistungsausschluss: Das Skript wird „wie gesehen“ und „wie verfügbar“ bereitgestellt, ohne jegliche Garantie. NinjaOne gibt keine Versprechen oder Garantien, dass das Skript frei von Fehlern ist oder dass es Ihre speziellen Bedürfnisse oder Erwartungen erfüllt.
  • Risikoübernahme: Die Verwendung des Skripts erfolgt auf eigene Gefahr. Sie erkennen an, dass die Nutzung des Skripts mit bestimmten Risiken verbunden ist, und Sie verstehen und übernehmen jedes dieser Risiken.
  • Verzicht und Freigabe: Sie machen NinjaOne nicht für nachteilige oder unbeabsichtigte Folgen verantwortlich, die sich aus Ihrer Nutzung des Skripts ergeben, und Sie verzichten auf alle gesetzlichen oder billigkeitsrechtlichen Rechte oder Rechtsmittel, die Sie gegen NinjaOne im Zusammenhang mit Ihrer Nutzung des Skripts haben könnten.
  • EULA: Wenn Sie ein NinjaOne-Kunde sind, unterliegt Ihre Nutzung des Skripts dem für Sie geltenden Endbenutzer-Lizenzvertrag (EULA).