Nahezu jede Komponente in Ihrer IT-Umgebung – einschließlich Server, Anwendungen, Netzwerkgeräte usw. – generiert ein Protokoll. Diese Log-Dateien enthalten Informationen über interne oder externe Ereignisse auf dem System, von einfachen Statusinformationen bis hin zu kritischen Fehlern. IT-Teams verwenden diese Protokolle, um Code zu debuggen, Fehler und Leistungsprobleme zu beheben, Sicherheitsverletzungen zu untersuchen und sogar das Kundenverhalten zu analysieren.
Die meisten Unternehmen verwenden Log-Management-Lösungen, um Protokolle zu erfassen, zu speichern und zu analysieren. Protokolle stammen aus vielen verschiedenen Quellen, sodass es viele verschiedene Typen und Formate gibt.
Beim Log-Parsing werden Log-Daten in ein gängiges Format konvertiert, sodass sie maschinenlesbar sind. Am Anfang können erfasste Protokolle mit verschiedenen Formaten stehen. Sobald diese Protokolle jedoch geparst wurden, lassen sich die erfassten Ereignisse mit Ihrem Log-Management-System als Ganzes durchsuchen und analysieren.
In diesem Artikel sehen wir uns das Log-Parsing und die Funktionsweise genauer an und erklären, welche Log-Parsing-Funktionen am nützlichsten sind. Außerdem stellen wir mit CrowdStrike Falcon LogScale ein modernes Log-Management-System vor.
Was ist Log-Parsing?
Ein Log-Management-System muss die Dateien zunächst parsen, um aussagekräftige Informationen aus Protokollen zu extrahieren. Beim Log-Parsing werden strukturierte oder unstrukturierte Log-Dateien so übersetzt, dass das Log-Management-System die Daten lesen, indexieren und speichern kann. Auf diese Weise können Sie die Schlüssel-Wert-Informationen problemlos filtern, analysieren und bearbeiten.
Zu den gängigen Protokollformaten gehören:
- JSON
- CSV
- Windows-Ereignisprotokoll
- Common Event Format (CEF)
- NCSA Common Log-Format
- Extended Log Format (ELF)
- W3C
Eines der am häufigsten verwendeten strukturierten Datenformate ist JSON. Für viele Anwendungsentwickler ist es die erste Wahl, weil es durch seine Unicode-Codierung allgemein zugänglich und für Menschen und Maschinen gleichermaßen lesbar ist. Das folgende Snippet zeigt ein einfaches JSON-Dokument mit Schlüssel-Wert-Paaren als Elemente:
{ "userAccess": { "timestamp": "2022-01-31 17:55.50”, "client_ip": "10.2.31.21", "username": "bob", "status": "Error", "message": "File not found" } }
Angesichts der breiten Community-Unterstützung für JSON bieten die meisten Log-Management-Lösungen standardmäßig JSON-Parsing-Optionen.
Wie funktioniert ein Log-Parser?
Normalerweise sind Log-Parser in die Engine der Log-Management-Software integriert. Das bedeutet, dass jeder Log-Manager seine proprietäre Methode für das Log-Parsing hat.
Die meisten Log-Management-Lösungen verfügen über integrierte Parser für gängige Datentypen wie Windows-Ereignisprotokolle, JSON, CSV oder W3C. Parser sind so konfiguriert, dass sie diese Protokolltypen anhand ihrer Quelldatenstruktur und Dateierweiterungen erkennen.
Sobald eine Log-Datei erfasst wurde, wendet der Parser seine integrierten Regeln an, um nützliche Feldnamen und ihre Werte zu extrahieren. Manchmal kann ein Parser die extrahierten Daten in einer hierarchischen Struktur speichern. Bei diesem Ansatz kann der Benutzer jedes Feld durchsuchen und die zurückgegebene Ergebnismenge eingehender prüfen, um die Abfrage zu verfeinern.
Für nicht standardmäßige Protokolltypen können Benutzer benutzerdefinierte Log-Parsing-Regeln bereitstellen. In der Regel kommen dabei reguläre Ausdrücke oder die proprietäre Sprache der Protokollierungslösung zum Einsatz. Einige Log-Management-Lösungen machen es sogar noch einfacher, indem sie Benutzern über eine grafische Oberfläche die Erstellung von Parsing-Regeln ermöglichen. Benutzer können die Feldnamen markieren, die für sie von Interesse sind, während die Log-Management-Lösung im Hintergrund die Parsing-Regel erstellt.
Sobald Protokolle geparst wurden, erfasst das Protokollierungssystem die Daten, damit Benutzer sie abfragen, analysieren und visualisieren können.
Betrachten wir die nicht standardmäßigen Protokolleinträge im folgenden Snippet:
2022-05-15T12:51:40+00:00 [WARN] "This is a warning" id=123 user=jbloggs 2022-05-15T12:52:42+00:00 [ERROR] "This is an error" id=124 user=unknown ...
Um dieses Protokoll zu parsen, können wir den folgenden regulären Ausdruck verwenden, um die Felder für Zeitstempel, Protokollebene, Nachricht, ID und Benutzer aus den Einträgen zu extrahieren:
(?<timestamp>\d{4}\-\d{2}\-\d{2}T\d{2}\:\d{2}) \[(?<loglevel>.+)\] \s\"(?<message>.+)\"\s id\=(?<id>\d+) user\=(?<user>\w+)
In CrowdStrike können Sie die CrowdStrike-Sprache verwenden, um dieselbe Log-Datei zu parsen und den Zeitstempel zu extrahieren:
/^(?<ts>\S+)/ | parseTimestamp("yyyy-MM-dd'T'HH:mm:ss[.SSS]XXX", field=ts)
Auf welche Log-Parsing-Funktionen sollten Sie achten?
Die Log-Parsing-Funktionen sind bei der Beurteilung einer Log-Management-Lösung einer der wichtigsten Bereiche. Es ist wichtig, dass Ihre Protokolle so schnell und einfach wie möglich erfasst und analysiert werden, damit Sie mehr Zeit für die Analyse erhalten.
Automatisierung
Im Idealfall sollte das von Ihnen gewählte Tool über automatische Parser für die gängigsten Protokollformate verfügen. Bei benutzerdefinierten Protokollen sollten Sie in der Lage sein, eine Volltextsuche der Rohdaten durchzuführen, bevor Sie benutzerdefinierte Parsing-Regeln schreiben.
Anpassung
Protokolle gibt es in so vielen Formaten, dass kein Log-Management-System sie alle standardmäßig unterstützen kann. Deshalb muss das Erstellen Ihrer Parsing-Konfiguration einfach und intuitiv sein. Einige Protokollierungstools bieten eine grafische Benutzeroberfläche zum Erstellen benutzerdefinierter Parsing-Konfigurationen. Andere bieten einen Editor, der benutzerdefinierte Parsing-Regeln schreibt.
Visualisierung
Eine falsche Parsing-Konfiguration kann falsche Datenwerte anzeigen und zu einer ungenauen Analyse führen. Eine gute Log-Management-Lösung sollte es Ihnen ermöglichen, die Parsing-Regel in einem Probelauf zu testen, bei dem eine Vorschau der Schlüssel-Wert-Paare aus einem Beispieldatensatz angezeigt wird, bevor die Regel gespeichert wird. Darüber hinaus sollte sie visuelle Hilfen zum Erstellen und Aktualisieren der Parsing-Konfiguration bieten. Dies kann die Farbcodierung und das Hervorheben von nicht übereinstimmenden Feldern oder von Fehlern umfassen.
Vollständige Protokollierung und Einblicke – kostenlos
Falcon LogScale Community Edition (ehemals Humio) ist eine kostenlose moderne Log-Management-Plattform für die Cloud. Durch die Erfassung von Streaming-Daten erhalten Sie einen sofortigen Überblick über verteilte Systeme und können Zwischenfälle verhindern bzw. beheben.
Falcon LogScale Community Edition ist sofort kostenlos verfügbar und bietet folgende Vorteile:
- Erfassung von bis zu 16 GB pro Tag
- Speicherung bis zu 7 Tage
- Keine Kreditkarte erforderlich
- Unbegrenzter Zugriff ohne Testzeitraum
- Indexlose Protokollierung, Echtzeit-Warnungen und Live-Dashboards
- Zugriff auf unseren Marktplatz und zugehörige Pakete, einschließlich Leitfäden zur Entwicklung neuer Pakete
- Lernen und Kooperation in einer aktiven Gemeinschaft