© Excellent backgrounds/Shutterstock.com
ELK jenseits der HTTP-Access-Logs

Elchtest


Der ELK Stack – Elasticsearch in Kombination mit Kibana und logstash – ist zurzeit in aller Munde. Neben dem Auswerten von Webserverlogs können auch für uns Entwickler interessante Informationen direkt aus der Java-Anwendung gewonnen werden.

logstash ist ein Werkzeug, mit dem sich Ereignisse aus beliebigen Quellen extrahieren, manipulieren und persistieren lassen. In der Regel wird logstash die Daten aus den Log-Dateien lesen, diese filtern und routen und dann in jeweilige Elasticsearch-Indizes speichern. Die Ereignisse können beliebig viele (auch verschachtelte) Eigenschaften haben; die wichtigste Eigenschaft ist allerdings der Zeitstempel, der angibt, wann das Ereignis auf dem Quellsystem auftrat.

Liegen die Ereignisse erst einmal in Elasticsearch, kann man mit Kibana sehr einfach grafische Dashboards aufbauen. Kibana ist ein ausgezeichnetes Mittel, um schnell einen Überblick zu bekommen und dann beliebige interaktive Drilldowns zu ermöglichen. Treten zum Beispiel auf einmal vermehrt Fehlermeldungen auf, kann Kibana zur Analyse der Ursache eingesetzt werden. Ob nun vermehrt Traffic vom falschen Load Balancer (falsche Quell-IP-Adresse), Hackversuche (Methodenaufrufe mit vielen verschiedenen Parametern) oder ein streikendes Backend (Exceptions aus dem JDNC Stack) die Ursache ist: Durch exploratives Filtern auf die gespeicherten Ereignisse ist schnell die Ursache für den Ausschlag gefunden. In diesem Artikel zeigen wir, mit welchen Schritten und mit welch geringem Aufwand eine typische Java-Webanwendung mit ELK verbunden werden kann.

Selbst probieren

Begleitend zum Artikel wurden alle Quellen inklusive der Vagrant-Boxen über [1] online gestellt. In der README.md sind alle notwendigen Schritte für die Verwendung beschrieben. Die Boxen sind sehr sparsam konfiguriert worden. Damit läuft das Beispiel auch auf älteren Maschinen, wenn auch zum Teil langsam.

Spring Pet Clinic

Spring bietet eine Demoanwendung an, von der Sie sicherlich schon gehört haben: Spring Pet Clinic (Abb. 1). Auch für uns wird das die Ausgangsbasis für die Demonstration sein [2]. Die Demo wird mit dem Logging-Framework Logback geliefert. Dieses muss im Vorfeld durch Log4j ersetzt werden.

siprell_1.tif_fmt1.jpgAbb. 1: Screenshot der Pet-Clinic-Anwendung

Java Logging

Es gibt unterschiedlichste Methoden, die zu beobachtenden Ereignisse in logstash zu schreiben. Wir haben uns entschieden, die Ereignisse per Log4j und mithilfe des entsprechenden Appenders in Log-Dateien zu schreiben und diese per Forwarder über da...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang