Von Markus Orlitzky auf Dienstag, 21. Dezember 2021
Kategorie: Project Management

Log-Management mit Splunk

IT-Betreiber sind mit einer immer größeren Anzahl von IT-Systemen konfrontiert, die Unmengen von Log-Daten produzieren. Leider ist es nicht damit getan, Log-Daten zu erzeugen. Für Fehleranalyse, Überwachung und Performance-Analyse sind die Log-Daten DIE zentrale Informationsquelle. 

Eine direkte Analyse der Logs auf den Systemen ist jedoch nicht praktikabel. Hier kommen heute Log-Management-Systeme zum Einsatz, welche die einfache Nutzung der anfallenden Daten ermöglichen. Durch ein Log-Management-System werden protokollierte Daten an einem zentralen Ort gesammelt, gespeichert, normalisiert und analysiert.

Die Vorteile mit dem Einsatz eines Log-Management-Systems sind vielfältig:

Splunk Komponenten: Forwarder, Indexer, Search Head

Unabhängig von den Vorteilen eines Log-Managements ist der Einsatz für eine Vielzahl von Branchen (z. B. kritischen Infrastrukturen) verpflichtend. 

Splunk ist eine der großen kommerziellen Lösungen der Firma „Splunk Inc", welche seit ca. 2007 ein umfangreiches Log-Management und Analyse bietet. 

Die grundlegenden Komponenten der Splunk-Architektur sind:

Der "Forwarder" ist das Programm, welches auf dem System läuft, auf welchem die Logdaten erzeugt werden. Es werden die zu überwachenden Verzeichnisse und Dateinamensmuster konfiguriert, sodass Änderungen in diesen Dateien ausgelesen und an den Indexer übertragen werden können.

Dabei gibt es den Forwarder in einer "leichten" und einer "schweren" Variante. Die "leichte" Variante benötigt wenig Ressourcen und übermittelt die Daten unverändert, während die "schwere" Variante in der Lage ist, die Daten vor der Übermittlung bereits zu bearbeiten (z. B. filtern).

Der "Indexer" analysiert die Protokolldaten. Er identifiziert einzelne Ereignisse und fügt ihnen weitere Metadaten wie einen Zeitstempel, den Hostnamen und den Namen der Logdatei hinzu. Anschließend werden die Ereignisdaten zusätzlich anhand vom definierten Transformationsregeln umgewandelt. Schließlich schreibt Splunk die geparsten Ereignisse auf die Festplatte und indiziert diese, wodurch eine schnelle Suche in großen Datenmengen ermöglicht wird.

Search Head – Das Frontend von Splunk

Der "Search Head" ist das Frontend der Anwendung und ermöglicht den Benutzern die Abfrage, Anzeige und Nutzung der Ereignisdaten. Zusätzlich können Berichte, Dashboards und Alarme erstellt werden. Mittels der Splunk eigenen Script-Sprache "SPL" (Search Processing Language) können die Daten gefiltert, berechnet und extrahiert werden. Das Grundkonzept für eine Suche in den Daten ist dabei relativ einfach.

Ungefiltert liefert das System eine nach Zeit sortierte Liste aller Logeinträge, unabhängig davon, von welchem System und aus welchem Logfile diese Einträge stammen.

Damit wird eine Suche, welche z. B. nach ein oder mehreren Wörtern filtert, automatisch über alle Logfiles durchgeführt. Wird z. B. eine Session-ID bei einer Anfrage über das Frontend einer Anwendung konsequent an die dahinter liegenden Backend-Systeme durchgereicht, dann werden bei einer Suche nach dieser ID automatisch die Logeinträge aus allen Systemen in ihrer zeitlichen Abfolge ausgegeben.

Allerdings sind nicht für jeden Nutzer automatisch alle Logeinträge sichtbar. Die verschiedenen Typen von Logs werden in unterschiedliche Indizes importiert.

Basierend auf den Indizes können dann den Nutzern Leserechte zugeordnet werden.

Bei der Indizierung der Logeinträge werden diese um zusätzliche Metadaten in Form von Feldern angereichert. Einige grundlegende Felder sind z. B.:

Hat das Logfile ein bekanntes Format, werden weitere spezifische Abschnitte aus dem Eintrag extrahiert und als Felder zur Verfügung gestellt.

Diese Felder können dann direkt in einem Filterausdruck verwendet werden.

Indizierung mit Splunk – anders als bei anderen Produkten

In einigen konkurrierenden Produkten zu Splunk gilt die Voraussetzung, dass alle Felder, so wie hier beschrieben, bereits zum Zeitpunkt der Indizierung definiert sein müssen, damit sie in einer Suche verwendet werden können.

Dies ist bei Splunk jedoch nicht der Fall. Hier wird die vollständige Definition vorab nicht vorausgesetzt, sondern es verwendet ein „Schema on the Fly". D.h. eine Suche kann zu Beginn ad hoc zusätzliche Felder aus den Logeinträgen extrahieren, um diese dann in der Abfrage zu verwenden. Die Muster, um die Felder zu identifizieren, werden mit regulären Ausdrücken definiert.

Dieses Vorgehen hat den Vorteil, dass auch auf bereits importierte Logfiles neue Inhalte ausgewertet werden können. Der Umfang der Abfragesprache ist ähnlich zu SQL und ermöglicht u.a. filtern, gruppieren und aggregieren.

Mit kurzen einfachen Statements lassen sich bereits informative Diagramme erstellen:

Basierend auf einzelnen Reports und Diagrammen lassen sich diese in interaktiven Dashboards zusammenfassen und bieten so ein mächtiges Mittel um komplexe Zusammenhänge übersichtlich darzustellen.

Splunk stellt alle Werkzeuge einer zentralisierten Logdatenverwaltung bereit, um die umfangreichen Informationen der verschiedenen Logdaten optimal zu nutzen.

Kommentare hinterlassen