false
16. Oktober 2024
 | 
10 Minuten Lesedauer

Log-Management: Einführung und Best Practices

Log-Management ist für große wie kleine Unternehmen eine absolute Notwendigkeit, denn nur wer seine Logs versteht, kann Fehler und Ausfälle effektiv beheben.

Aber was steckt eigentlich hinter Log-Management? Die Antwort darauf erhaltet ihr in dieser Einführung.

Was ist Log-Management?

Log-Management ist die Praxis des Umgangs mit großen Mengen an computergenerierten Log-Daten und -Nachrichten. Logs werden von verschiedenen Computersystemen und Anwendungen erzeugt, darunter:

Logs enthalten wertvolle Informationen zu Ereignissen in diesen Systemen und können zur Behebung potenzieller Probleme oder zur Überwachung der Systemleistung verwendet werden.

(Verwandte Themen: Daten-Logging und Maschinendaten)

Warum ist Log-Management wichtig?

Mit Log-Management können Unternehmen sämtliche Aktivitäten innerhalb ihrer IT-Infrastruktur im Blick behalten. Dies kann in verschiedenen geschäftlichen Situationen hilfreich sein, wie in diesen Anwendungsfällen:

Darüber hinaus verlangen viele Aufsichtsbehörden im Rahmen der regulatorischen Compliance von Unternehmen, Log-Daten über einen bestimmten Zeitraum aufzubewahren. Diese Anforderung lässt sich mit Log-Management leichter erfüllen.

Log-Typen

Wer seine Daten verstehen will, muss verschiedene Typen von Logs unterscheiden können, da jeder Log-Typ andere Daten mit oft kritischer Relevanz bereithält. Hier einige der häufigsten Log-Typen:

Server-Logs

Server-Logs enthalten wichtige Daten zu Benutzeraktivitäten, Systemfehlern und anderen betrieblichen Einzelheiten. Sie können bei der Erkennung von Performance-Problemen, unbefugten Zugriffsversuchen und verdächtigen Aktivitäten weiterhelfen.

Anwendungs-Logs

Anwendungs-Logs sind für Systemadministratoren ein unverzichtbares Hilfsmittel, da sie Einblicke in das Verhalten von Software, Benutzerinteraktionen und potenzielle Probleme mit Auswirkungen auf das Nutzungserlebnis geben. Hier einige Use Cases, bei denen Anwendungs-Logs hilfreich sein können:

  • Erkennung von Abweichungen und Inkonsistenzen, die die Performance einer Anwendung beeinträchtigen
  • Verstehen von Benutzerverhaltensweisen und -mustern, die zur Verbesserung des Nutzungserlebnisses beitragen können
  • Fehler- und Problembehebung in der Anwendung
  • Speichern eines Verlaufs von Softwareaktivitäten zu Audit- und Compliance-Zwecken

(Verwandtes Thema: Application Performance Monitoring [APM])

Netzwerk-Logs

Netzwerk-Logs erfassen den ein- und ausgehenden Datenverkehr eines Netzwerks und liefern Informationen, die beim Aufspüren und Erkennen potenzieller Probleme helfen können. Logs dieses Typs ...

(Eine ausführliche Einführung zu Log-Daten findet ihr hier.)

Log-Datenformate

Log-Daten können in verschiedenen Formaten vorliegen, darunter unformatierter Text, XML, JSON und syslog.

Extensible Markup Language (XML) ist eine Auszeichnungssprache, die zum Speichern und Übertragen von Daten dient. Sie ist von Menschen lesbar und wird daher gerne von Entwicklern genutzt, die Daten genauer verstehen wollen.

JSON ist ein weiteres gängiges Format für Log-Nachrichten, das Daten kompakter und effizienter speichert als XML. Es handelt sich um strukturierte Log-Daten in Form von Schlüsselwertpaaren, die sich eher für die maschinelle Verarbeitung eignen.

Syslog ist ein Standardprotokoll zum Generieren von Log-Nachrichten in Netzwerkgeräten. Es beinhaltet wesentliche Informationen wie Zeitstempel, Schweregrade und Facility Codes, die die Log-Analyse erleichtern.

(Hier erfahrt ihr mehr über die Unterschiede zwischen strukturierten, unstrukturierten und semistrukturierten Daten.)

Der Log-Management-Prozess

Der Log-Management-Prozess besteht in der Regel aus den folgenden Schritten:

  1. Log-Erfassung: Zu Beginn werden alle Log-Nachrichten aus verschiedenen Systemen zentral erfasst.
  2. Parsing und Normalisierung: Logs werden oft in verschiedenen Formaten generiert, was ihre Analyse erschwert. Zur Erleichterung der Analyse wandeln Log-Management-Tools diese Logs durch Parsing und Normalisierung in ein standardisiertes Format um.
  3. Speicherung: Die normalisierten Logs werden dann in einem zentralisierten Logging-System für die Echtzeit-Analyse und langfristige Aufbewahrung gespeichert.
  4. Monitoring: Mithilfe von Log-Management-Tools können Unternehmen Logs in Echtzeit überwachen, um potenzielle Probleme oder Sicherheitsverletzungen frühzeitig zu erkennen.
  5. Analyse: Der nächste Schritt nach dem Erfassen, Parsen und Speichern ist das Analysieren der Log-Daten, um die Systemleistung zu überwachen, Fehler zu beheben oder sonstige Security-Aufgaben zu erfüllen.
  6. Reporting: Log-Management-Lösungen bieten individuell anpassbare Reporting-Funktionen, mit denen ihr detaillierte Berichte über Systemaktivitäten, Performance und Fehler erstellen könnt.
  7. Löschung: Log-Daten werden in der Regel über einen bestimmten Zeitraum aufbewahrt. Danach können sie – je nach den behördlichen Auflagen und geschäftlichen Anforderungen – entweder archiviert oder gelöscht werden.

(Verwandte Themen: Log-Aggregation und Data Lifecycle Management)

Tools und Technologien für das Log-Management

Für ein effektives Log-Management braucht ihr geeignete Tools, mit denen ihr Log-Daten überwachen, speichern und analysieren könnt.

Ein beliebte Option dafür ist Splunk. Splunk setzt beim Log-Management an und nutzt die Log-Daten dann für Dutzende Anwendungszwecke, von SecOps bis zur allgemeinen Systemüberwachung und -Observability.

Daneben gibt es diverse Open-Source-Lösungen für die Echtzeit-Überwachung und ‑Analyse von Logs, beispielsweise: 

  • Apache Flume: erfasst, aggregiert und verschiebt effizient große Mengen an Log-Daten
  • Fluentd: ein Datenkollektor, mit dem ihr die Log-Erfassung und -Aggregation vereinheitlichen könnt

(Erfahrt mehr über Splunk oder lernt unsere Lösungen kennen.)

Log-Management-Beispiel: Schlüsselpaare

Zur Veranschaulichung möchten wir euch anhand eines Beispiels für Schlüsselpaare zeigen, wie Log-Management genau funktioniert.

Für unser Beispiel nehmen wir uns das String-Format vor. Inhaltlich geht es hierbei um Flugstatusinformationen.

WARNING:__main__:Lufthansa-Flug 820 von Indira Gandhi International Airport, Neu-Delhi (DEL), Indien nach Frankfurt International Airport, Frankfurt (FRA), Deutschland ist ungefähr 5 Stunden, 22 Minuten verspätet
INFO:__main__:Air-India-Flug 120 von Indira Gandhi International Airport, Neu-Delhi (DEL), Indien nach Frankfurt International Airport, Frankfurt (FRA), Deutschland ist um 12:20:18 gestartet

Diese Nachricht ist für Menschen lesbar, sodass alle problemlos alle wichtigen Informationen entnehmen können. Doch weist man diese Aufgabe nun einer Maschine zu, wie versteht und identifiziert diese dann die Informationen? Und was ist, wenn eine Sammlung ähnlicher Log-Daten vorliegt?

Zunächst müssen die Logs für die maschinelle Verarbeitung strukturiert werden. Sehen wir uns also an, wie das geht.

Die Logs müssen in einem anderen Format als dem oben dargestellten String-Format geschrieben werden. Dazu werden die obigen Daten einfach in einem Datenwörterbuch (d. h. als Schlüsselwertpaare) gespeichert, das weiter serialisiert werden kann.

Dafür verwenden wir Python, genauer gesagt ein Python-Paket für das strukturierte Logging („structlog-Paket“).

from structlog import get_logger
log = get_logger("Structured Logger")
if status in ['gestartet', 'gelandet']:
    log.info(status, **flug)
elif status == 'verspätet':<
    log.warning(status, **flug)
else:
    log.critical(status, **flug)

Das so generierte Ergebnis hat die Form eines Datenwörterbuchs, anhand dessen die Maschine die einzelnen Informationen verstehen und extrahieren und letztlich das Management der Log-Datei unterstützen kann.

[warning ] verspätete fluggesellschaft=Lufthansa 820 verspätung= 5 Stunden 22 Minuten ziel={'flughafen': 'Frankfurt International Airport', 'iata': '', 'icao': '', 'stadt': 'Frankfurt', 'verwaltungseinheit': '', 'land': 'Deutschland'} flugnr=820 herkunft={'flughafen': 'Indira Gandhi International Airport', 'iata': '', 'icao': '', 'stadt': 'Neu-Delhi', 'verwaltungseinheit': '', 'land': 'Indien'} zwischenstopps=1

Wir ihr seht, wurden Schlüsselwertpaare erstellt, damit Abfragen durchgeführt und Informationen extrahiert werden können. So sieht strukturiertes Logging aus. Wie erwähnt sind hierbei viele Formate wie XML, JSON usw. möglich.

In diesem Beispiel haben wir einen simplen Fall von strukturiertem Logging erläutert. In der Praxis können Log-Nachrichten allerdings deutlich komplexere Daten enthalten. Um daraus nützliche Informationen zu extrahieren, sind fortgeschrittene Parsing-Techniken erforderlich.

Best Practices für das Log-Management

Legt euer Unternehmen Wert auf leistungsstarke Systeme, sichere Daten und eine einfache Fehlerbehebung? Dann führt kein Weg an einem guten Log-Management vorbei.

Hier einige Best Practices für das Log-Management:

  • Log-Formate standardisieren: Ein einheitliches Format erleichtert die Analyse und Überwachung von Logs, die aus verschiedenen Quellen stammen.
  • Logs regelmäßig prüfen und analysieren: Um Trends oder Anomalien, die auf potenzielle Probleme oder Sicherheitsverletzungen hinweisen könnten, rechtzeitig zu erkennen, solltet ihr eure Logs regelmäßig prüfen.
  • Warnmeldungen einrichten: Konfiguriert Warnmeldungen so, dass zuständige Teammitglieder Benachrichtigungen über kritische Ereignisse erhalten, sobald Grenzwerte für Ausfallmetriken überschritten werden.
  • Log-Daten sichern: Mit regelmäßigen Back-ups eurer Log-Daten stellt ihr sicher, dass bei einem Systemausfall oder Cyberangriff nichts verloren geht.
  • Eindeutige Kennungen (IDs) verwenden: Eindeutige IDs erleichtern das Nachverfolgen und Identifizieren bestimmter Logs.
  • Zeitstempel für jedes Ereignis verwenden: An Zeitstempeln lässt sich die Abfolge von Ereignissen, die zu einem Problem geführt haben, genau nachvollziehen. Sie sind daher essenziell für das Troubleshooting.
  • Klare Schlüsselwertpaare verwenden: Damit ihr Log-Daten leichter parsen und analysieren könnt, solltet ihr unbedingt klare, eindeutig definierte Schlüsselwertpaare verwenden.
  • OpenTelemetry-Tracing zulassen: Nutzt Messwerkzeuge zur Erfassung von Telemetriedaten in Logs.


(Verwandtes Thema: Best Practices für das Logging mit Splunk Enterprise)

Effektives Log-Management mit Splunk

Wir können zusammenfassen, dass kein Unternehmen an Log-Management vorbeikommt. Log-Management ermöglicht eine effiziente Datenerfassung, erleichtert die Erkennung und Behebung von Problemen und trägt zur allgemeinen Systemleistung und -sicherheit bei.

Sollte euer Unternehmen derzeit noch kein effektives Log-Management betreiben, ist es höchste Zeit, damit anzufangen. Orientiert euch dabei am besten an den beschriebenen Best Practices und nutzt standardisierte Log-Formate, um einen reibungslosen Betrieb eurer IT-Systeme zu gewährleisten.

Falls ihr noch mehr über Logging und ähnliche Themen erfahren möchtet, legen wir euch unser Entwicklerhandbuch ans Herz. Darin findet ihr englischsprachige Ressourcen und Informationen, die euch bei der Entwicklung besserer Anwendungen unter Berücksichtigung bewährter Logging-Methoden unterstützen.



 

Ihr habt einen Fehler entdeckt oder eine Anregung? Bitte lasst es uns wissen und schreibt eine E-Mail an ssg-blogs@splunk.com.

 

Dieser Beitrag spiegelt nicht zwingend die Position, Strategie oder Meinung von Splunk wider.

 

Austin Chia Picture

Austin Chia is a data analyst, analytics consultant, and technology writer. He is the founder of Any Instructor, a data analytics & technology-focused online resource. Austin has written over 200 articles on data science, data engineering, business intelligence, data security, and cybersecurity. His work has been published in various companies like RStudio/Posit, DataCamp, CareerFoundry, n8n, and other tech start-ups. Previously worked on biomedical data science, corporate analytics training, and data analytics in a health tech start-up.

Ähnliche Artikel

Über Splunk

Weltweit führende Unternehmen verlassen sich auf Splunk, ein Cisco-Unternehmen, um mit unserer Plattform für einheitliche Sicherheit und Observability, die auf branchenführender KI basiert, kontinuierlich ihre digitale Resilienz zu stärken.

 

Unsere Kunden vertrauen auf die preisgekrönten Security- und Observability-Lösungen von Splunk, um ihre komplexen digitalen Umgebungen ungeachtet ihrer Größenordnung zuverlässig zu sichern und verbessern.

Erfahrt hier mehr über Splunk