So schreibst und transformierst Du Deine Daten in Graylog – Ein Einfacher Guide

29 August, 2024

Lucy Siemer
Lucy Siemer
Consultant

Lucy ist seit Mai 2023 bei NETWAYS als Consultant tätig, nachdem sie im Jahr 2022 ihre Ausbildung zur Fachinformatikerin für Systemintegration erfolgreich abgeschlossen hat. Ihre Schwerpunkte liegen auf den Bereichen Kubernetes, Infrastructure as Code und Monitoring. Neben ihrer Arbeit bei NETWAYS betreut Lucy auch privat ihre eigene Infrastruktur auf Kubernetes. Darüber hinaus ist sie leidenschaftlich daran interessiert, eigene Kleider zu nähen und individuelle Designs zu kreieren.

von | Aug. 29, 2024

Ein Tool, mit dem wir im Consulting immer wieder arbeiten, ist Graylog. Graylog ist ein mächtiges Open-Source-Tool zur Verwaltung, Analyse und Überwachung von Log-Daten. Es ermöglicht, Logs von verschiedenen Quellen wie Servern, Netzwerkgeräten oder Anwendungen zentral zu erfassen, zu speichern, zu analysieren und zu visualisieren.
 
Da Graylog so leistungsstark ist, kann es schnell komplex werden. Oft fragen Kunden uns: „Wie bekomme ich meine Daten in Graylog?“ und „Wie transformiere ich die Daten?“. Diese Fragen möchte ich in diesem Artikel beantworten.
 

Wie bekomme ich meine Daten in Graylog?

Zunächst muss man einen Input konfigurieren:
  • Auswahl eines Inputs: Im Graylog-Webinterface unter „System -> Inputs“ wählst Du den gewünschten Input-Typ aus, z. B. `Syslog UDP`, `GELF TCP` oder `Beats`. Die Wahl des richtigen Inputs hängt von der Art der Logs und der Quelle ab, aus der sie stammen.
    Übersicht der Inputs in der "System/Inputs" Pbersicht von Graylog
  • Input erstellen: Gib den Namen, Port und eventuelle weitere spezifische Einstellungen für den Input ein. Mit einem Klick auf „Launch new Input“ wird der Input aktiviert. Es ist wichtig, die Konfiguration genau zu prüfen, um sicherzustellen, dass die Daten korrekt empfangen werden.
    DialogFenster zum Einfügen einens neuen Inputs
  • Test der Datenübertragung: Sende eine Test-Nachricht von einem Gerät oder einer Anwendung an den konfigurierten Input. Die Nachricht sollte im Graylog-Webinterface unter „Search“ sichtbar sein. Dies bestätigt, dass die Datenübertragung erfolgreich eingerichtet wurde.

Was im Hintergrund passiert:

  • Datenfluss: Die Daten werden von der Quelle (z. B. einem Server) an den Graylog-Server gesendet. Das Graylog-Input empfängt diese Daten und legt sie im `Journal` ab, einer temporären Speicherzone im RAM, die für die Pufferung von Nachrichten verwendet wird.
  • Persistierung: Das Graylog-System speichert die empfangenen Daten in Elasticsearch, einer dokumentenbasierten Datenbank, die für schnelle Such- und Analysemöglichkeiten optimiert ist. Elasticsearch ist der zentrale Speicherort, an dem die Daten dauerhaft abgelegt und für Abfragen zur Verfügung stehen.

Wie transformiere ich die Daten?

Verwendung von Pipelines

Graylog bietet Pipelines, um eingehende Daten vor der Speicherung zu transformieren oder zu filtern.
 
Graylog Pipeline Übersicht
  • Erstellung einer Pipeline: Unter „System -> Pipelines“ kannst Du eine neue Pipeline erstellen. Diese besteht aus einer Abfolge von Regeln, die auf die Daten angewendet werden. Pipelines ermöglichen es, komplexe Verarbeitungslogiken anzuwenden, bevor die Daten gespeichert werden.
  • Regeln definieren: Regeln bestehen aus einer Bedingung und einer Aktion. Zum Beispiel könnte eine Regel Datenfelder umbenennen, extrahieren oder aggregieren. Eine Regel könnte so aussehen:
rule "extract_http_status"   
when     
    has_field("message") AND contains(to_string($message.message), "HTTP")   
then      
    let status = regex("HTTP\\/\\d\\.\\d\"\\s(\\d{3})", to_string($message.message));          
    set_field("http_status", status["0"]);   
end
In dieser Regel wird nach dem Vorhandensein eines „message“-Felds gesucht, das den Text „HTTP“ enthält. Wenn diese Bedingung erfüllt ist, wird ein regulärer Ausdruck (`regex`) verwendet, um den HTTP-Statuscode (eine dreistellige Zahl) aus der Nachricht zu extrahieren. Der extrahierte Statuscode wird dann in einem neuen Feld namens `http_status` gespeichert.
  • Zuweisung der Pipeline zu einem Stream: Nachdem die Pipeline erstellt wurde, muss sie einem Stream zugewiesen werden. Ein Stream ist ein Filter, der bestimmt, welche Nachrichten durch die Pipeline fließen. Dies ermöglicht es, bestimmte Nachrichten basierend auf definierten Kriterien unterschiedlich zu behandeln.

Was im Hintergrund passiert:

  • Nachrichtenverarbeitung: Wenn eine Nachricht über einen Input empfangen wird, überprüft Graylog, ob sie zu einem Stream passt. Wenn die Nachricht einem Stream zugeordnet werden kann, durchläuft sie die mit diesem Stream verbundenen Pipelines. Wenn die Nachricht keinem Stream zugeordnet wird, erfolgt keine Pipeline-Verarbeitung, und die Nachricht wird unverändert im „default“-Stream gespeichert.
  • Transformation: Während der Pipeline-Verarbeitung werden die Nachrichtenfelder entsprechend den Regeln geändert oder ergänzt. Diese Transformationen können komplexe Änderungen umfassen, die sicherstellen, dass die Daten in der gewünschten Struktur gespeichert werden.
  • Speicherung: Nach der Transformation wird die Nachricht in Elasticsearch gespeichert. Dort stehen die transformierten Daten für Suchanfragen und Analysen zur Verfügung.

Visualisierung und Analyse

Dashboards und Widgets

  • Erstellung von Dashboards: Um die transformierten Daten visuell zu analysieren, kannst Du in Graylog Dashboards erstellen. Ein Dashboard besteht aus mehreren Widgets, die verschiedene Aspekte der Logs anzeigen, z. B. Histogramme, Kreisdiagramme oder einfache Zählungen. Dashboards bieten eine schnelle Übersicht über wichtige Metriken und Ereignisse.
  • Widgets hinzufügen: Füge Widgets zu Deinem Dashboard hinzu, indem Du unter „Search“ eine Abfrage erstellst und das Ergebnis als Widget speicherst. Widgets können verschiedene Arten von Visualisierungen enthalten, die je nach Anforderung angepasst werden können.

Suchabfragen

  • Erstellung von Suchabfragen: Mit der leistungsfähigen Suchsprache von Graylog kannst Du gezielt nach bestimmten Ereignissen suchen. Verwende Felder, Operatoren und Filter, um präzise Suchanfragen zu erstellen. Die Suchsprache ermöglicht es, komplexe Abfragen zu erstellen, die genau die gewünschten Daten extrahieren.

Was im Hintergrund passiert:

  • Datenabruf: Suchabfragen werden an Elasticsearch gesendet, das die Daten indiziert hat. Die Ergebnisse werden dann im Graylog-Interface angezeigt. Die Indizierung sorgt dafür, dass Suchanfragen auch in großen Datenmengen schnell bearbeitet werden können.
  • Visualisierung: Die abgerufenen Daten können in Echtzeit visualisiert und analysiert werden, um Trends zu erkennen oder Fehler zu identifizieren. Echtzeitanalysen helfen dabei, Probleme sofort zu erkennen und entsprechende Maßnahmen zu ergreifen.

Zusammenfassung

Graylog bietet eine robuste Plattform zur zentralisierten Verwaltung und Analyse von Log-Daten. Durch die Einrichtung von Inputs, die Definition von Pipelines und die Verwendung von Dashboards kannst Du Logs effizient sammeln, transformieren und visualisieren. Technisch gesehen verarbeitet Graylog die Daten durch eine Reihe von Schritten, vom Empfang über die Transformation bis zur Speicherung, was tiefe Einblicke in die Datenlandschaft ermöglicht. Diese Einblicke sind entscheidend für das Monitoring, die Fehlererkennung und die Optimierung von IT-Systemen.
 

Hast du Fragen oder benötigst du Hilfe, oder hast du Interesse an Graylog? Wir begleiten dich bei jedem Schritt – von der Konzeption bis zur erfolgreichen Umsetzung. Melde dich gerne bei unserem Team für eine unverbindliche Beratung!

Events

Professional Services

Web Services

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Wie hat Dir unser Artikel gefallen?