IT-Service Management

Log-Dateien mit Elasticsearch durchsuchen

Georg Kostner

© Shutterstock / Barna Tanko

Log-Daten sind für jeden Administrator eine zentrale Quelle, um den Zustand der IT im Blick zu behalten. Log-Files liegen jedoch meist als unstrukturierte Textdateien vor und können damit nur schwer nach bestimmten Kriterien gefiltert werden. Bei der IT-System-Management-Lösung NetEye von Würth Phoenix sorgt der Elastic Stack für Abhilfe und bereitet die Informationen aus den Log-Files so auf, dass der Admin damit auch wirklich arbeiten kann.

Die Auswertung der Log-Files gehört zu den grundlegenden, aber eher unspektakulären Aufgaben im IT-Service Management (ITSM). Doch nehmen die Log-Dateien für den Betrieb eines Systems eine wichtige Position ein: Durch sie lassen sich Anomalien im System erkennen und Hinweise auf die Ursachen ablesen. Das können sowohl Funktionsstörungen als auch Angriffsversuche sein. Auch Attacken von Innen, etwa durch einen Administrator selbst, hinterlassen in den Logs häufig deutliche Spuren. Die zeitnahe und für die Systemverwalter übersichtliche Auswertung dieser Informationen hilft also, die Server am Laufen zu halten.

Das Sammeln der Log-Daten ist bei einem Standardsystem keine schwierige Aufgabe. Jedes Betriebssystem, jede Anwendung hat in aller Regel einen klar definierten Pfad, unter dem die Dateien abgelegt werden. IT-System-Management-Lösungen wie NetEye von Würth Phoenix sammeln diese Informationen. Das Problem ist es, die große und vielfältige Datenmenge so auszuwerten und aufzubereiten, dass der Administrator auf dieser Basis Probleme erkennen und Aktionen einleiten kann – am besten, bevor ein Problem akut wird und die Arbeit der Endanwender behindert. Deswegen verfügt NetEye mit dem LogManager über ein Modul, das den Admin zu jeder Zeit über alle Server-Ereignisse informiert.

Verwertbare Logs und Events

Der LogManager setzt sich aus drei Grundfunktionen zusammen: Einer Volltext-Suchmaschine, einem Log-Parser und einer frei konfigurierbaren Präsentationsschicht. Der Log-Parser Logstash analysiert die unstrukturierten Daten der gesammelten Log-Dateien. Er fungiert als eine Daten-Pipeline, die Logs und Events unterschiedlicher Systeme erfassen und bei Bedarf in eine einheitliche Form normalisieren kann. Dazu gibt es sogenannte Logstash-Filter.

Abbildung 1: Ausschnitt eines vordefinierten Logstash-Filters in NetEye

Abbildung 1: Ausschnitt eines vordefinierten Logstash-Filters in NetEye ©Würth Phoenix

Aufgrund der über 200 verfügbaren Plug-ins lassen sich die Daten aus so gut wie jedem System auslesen und stehen damit zentral an einer Stelle zur weiteren Verarbeitung bereit. Daten aus der Daten-Pipeline werden von NetEye dann an die Volltextsuche Elasticsearch als JSON (JavaScript Object Notation)-Dokument übergeben. Diese speichert die Informationen in strukturierter Form. Dabei können die Logs in Echtzeit durchsucht und gefiltert werden.

Elasticsearch ist eine in Java geschriebene Suchmaschine. Sie kommt bei vielen Internet-Angeboten wie zum Beispiel Wikimedia, Mozilla oder GitHub zum Einsatz. Eine der großen Stärken von Elasticsearch ist, dass die Such-Engine mit extrem großen, unstrukturierten Datenmengen zurechtkommt. Dazu werden die Informationen in einem nicht-relationalen NoSQL-Format gespeichert. Suchanfragen müssen ebenso wie die Eingangsdaten als Queries in Form eines JSON-Dokuments erfolgen.

Bei der Indexierung von Dokumenten analysiert Elasticsearch zunächst die vorhandenen Informationen. Dabei werden die Strings durch verschiedene Tokenizer gesplittet und indiziert, damit eine konkrete Suche möglich ist.

Abbildung 2: Sie Suche nach "Logo*" gibt alle Logs aus welche einen Logon- bzw. Logoff-Versuch beinhalten. Dies wird durch das Aufsplittern und Indexieren der Strings ermöglicht  ©Würth Phoenix

Abbildung 2: Sie Suche nach „Logo*“ gibt alle Logs aus welche einen Logon- bzw. Logoff-Versuch beinhalten. Dies wird durch das Aufsplittern und Indexieren der Strings ermöglicht ©Würth Phoenix

Der ganze Vorgang geschieht in Echtzeit. Für den Administrator hat das den Vorteil, dass er alle gewünschten Informationen live und ohne Zeitverzögerung nutzen kann. Die Daten der Log-Files sind nach der Aufbereitung durch Logstash strukturiert und liegen in Elasticsearch als Datenbank vor.

Übersichtliche Präsentation

Eines der Entwicklungsziele von NetEye ist es, eine einfach zu nutzende System-Management-Lösung zu schaffen. Die Entwickler legen großen Wert auf Dashboards, die dem Administrator schnell den notwendigen Überblick verschaffen. In dieses Konzept passt Elasticsearch genau: Die Such-Engine verfügt über eine REST (Representational State Transfer)-API, mit der die Query-Ergebnisse an einen Präsentations-Layer, zum Beispiel einen Web-Server, weitergereicht werden können. Im Falle von NetEye dient der Präsentations-Layer Kibana als Grundlage für die grafische Aufbereitung der Log-Daten. Hier hat der Administrator verschiedene Möglichkeiten: Zum einen kann er die Log-Informationen in einer Detailansicht anzeigen lassen. Dabei lassen sich die Daten nach verschiedenen Kriterien filtern – etwa, wann sich ein bestimmter Benutzer am System angemeldet hat. Einzelne Suchbegriffe lassen sich dabei kombinieren. Zum anderen erlaubt es das Kibana-Frontend im LogManager, verschiedene Dashboards einzurichten, welche die aggregierten Log-Daten grafisch aufbereiten.

Abbildung 3: In diesem Beispiel werden alle fehlgeschlagenen Login-Versuche des Users "admin1XX" angezeigt. Im Dashboard werden alle Source-IP-Adressen auf der entsprechenden Zeitleiste abgebildet. (Dies wird durch den Logstash-Filter in Abbildung 1 ermöglicht.) ©Würth Phoenix

Abbildung 3: In diesem Beispiel werden alle fehlgeschlagenen Login-Versuche des Users „admin1XX“ angezeigt. Im Dashboard werden alle Source-IP-Adressen auf der entsprechenden Zeitleiste abgebildet. (Dies wird durch den Logstash-Filter in Abbildung 1 ermöglicht.) ©Würth Phoenix

Diese Dashboards sind vor allem für statistische Daten hilfreich wie „Mit welchen Users wurden wann, von welchen IP-Adressen aus, fehlgeschlagene Login-Versuche auf welche Applikationen/Maschinen verursacht?“. Das Dashboard liefert diese Informationen auf einen Blick. Ein weiterer Vorteil der Integration von Kibana ist die Möglichkeit direkt mit diesem Dashboard zu filtern. Ein Klick reicht, um die Ansicht auf ein Interessensfeld zu limitieren und weitere Details anzuzeigen.

Auch komplexere Auswertungen wie „Auf welche Anwendung greift welcher Teil der Endanwender über Citrix zu?“ sind so möglich. Ein weiterer Vorzug der so aufbereiteten Daten: Alle aufbereiteten Logs lassen sich bei Bedarf rechtskonform archivieren und bei Revisionen vorlegen. Archivierte Logs lassen sich nicht mehr verändern, löschen oder erweitern. So erleichtert das Tool nicht nur den operativen Alltag in der IT, sondern hilft auch dabei, Compliance-Vorgaben ohne zusätzlichen Aufwand einzuhalten.

Aufmacherbild: Pointing dog tracking in field von Shutterstock / Urheberrecht: Barna Tanko

Verwandte Themen:

Geschrieben von
Georg Kostner
Georg Kostner
Georg Kostner weißt über 17 Jahre Erfahrung in den Bereichen IT-System Management und Software-Entwicklung innerhalb der Würth-Gruppe auf. Zu Beginn seiner beruflichen Laufbahn beschäftigte er sich mit der Implementierung von ERP-Anwendungen und Framework-Entwicklungen. Sein Einsatz für innovative, technologische Forschungsprojekte und vor allem sein Interesse für Open Source Software begleiten ihn bis heute. Aktuell ist er als Leiter der Abteilung System Integration und als Produkt Manager für die hausintern entwickelten Lösungen Würth Phoenix NetEye und Würth Phoenix EriZone tätig.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: