Bachelorarbeit von Gaik Teng Ooi
A Comparison of the Elastic Stack and Grafana Stack as Tools for Analysing Log Data
Diese Arbeit analysiert zwei Gruppen von Open-Source-Software für Log-Management und Log-Analyse: den Elastic Stack und den Grafana Stack. Jeder Stack besteht aus einem Log-Aggregator, einer Suchmaschine, die auch als Datenspeicher dient, und einer Browser-Schnittstelle. Das Ziel der Arbeit ist der Vergleich der beiden Log-Management-Stacks in einer ressourcenbeschränkten Umgebung. Hierbei sollen typische Anwendungsdaten ausgewählt und die Stacks beim Einlesen und Abfragen bezüglich der Ressourcennutzung und Abfrageleistung evaluiert werden. Zusätzlich soll ein Überblick über die Funktionalität der Stacks hinsichtlich der geplanten Anwendungsbereiche gegeben werden. Die besondere Herausforderung besteht in der Einbindung in einen konkreten Anwendungskontext bei der forsa GmbH und dem Umgang mit vielen verschiedenen Technologien.
Der Vergleich erfolgt nach vier selbst definierten Anforderungen:
- Die Anforderung R1 adressiert den Ressourcenverbrauch (Rechenleistung und Hauptspeichernutzung) beim Einlesen (und Indizieren) von Daten,
- R2 die Geschwindigkeit beim Einlesen und Abfragen,
- R3 die Übersicht über Module und Parser und
- R4 das praktische Handling exemplarischer Parser auf den drei Datenmengen.
Die Komponenten jedes Stacks wurden als Docker-Container ausgeführt, die so konfiguriert waren, dass verschiedene Logs einlesen und analysieren, um sie durchsuchbar und filterbar zu machen. Drei verschiedene Log-Sets wurden eingelesen: JSON-, Apache- und PostgreSQL-Format-Logs. Die Leistung der Suchmaschinen wurde getestet, indem Abfragen über ihre Browser-Schnittstellen ausgeführt wurden. Zwei Abfragen, die sich in Zeitrahmen und/oder Schlüsselwörtern unterschieden, wurden für jeden Datensatz modelliert. Die Abfragen wurden dann jeweils 10 Mal auf den Suchmaschinen jedes Stacks (Elasticsearch und Loki) ausgeführt.
Der Elastic Stack zeigt einen höheren Ressourcenverbrauch als Grafana beim Einlesen und Indizieren aller Datensätzen. Beide Stacks hatten den höchsten Ressourcenverbrauch beim Einlesen von PostgreSQL-Logs. In Bezug auf die Unterstützung von Integrationen zeigten beide Stacks einen ähnlichen Umfang. Die Arbeit empfiehlt die Stacks für verschiedene Einsatzbereiche: Der Elastic Stack ist geeignet für die langfristige Speicherung von Archivlogs und der Grafana Stack für die Echtzeit-Log-Aggregation und -Überwachung.
Kolloqium: 30.03.2023
Betreuer: Dipl.-Inform. Ingo Boersch, Prof. Dr.-Ing. Jochen Heinsohn, Harald Meiß (forsa Gesellschaft für Sozialforschung und statistische Analysen mbH)
Download: A1-Poster