Logstash integrieren

Logstash

Die vielen Input- und Output-Plugins erlauben eine einfache Integration von Logstash in die bestehende Infrastruktur. Unter Verwendung der konditionellen Verarbeitung können auch nur bestimmte Events an einzelne Outputs weitergeleitet werden. Ein Beispiel wäre die Weiterleitung von bestimmten Apache-Codes wie bspw. 500 an eine E-Mail-Adresse oder das Monitoring. Auch die Weiterleitung an eine zentrale Graphite oder Statsd Instanz ist mit einigen wenigen Zeilen Konfiguration umzusetzen.

Weiterleitung an Nagios und Icinga

Icinga und Nagios sind in der Basis für die aktive Überwachung von Systemen ausgelegt. Die Überwachung und Interpretation von Logs ist mit Plugins und Addons wie check_logfile und der EventDB möglich, kann aber in großen Umgebungen auch bequem durch Logstash erfolgen.

Unter Verwendung des grep filters können die notwendigen Felder für Host, Service, Output und Status in Events eingefügt und anschließend an die externe Kommandoschnittstelle von Icinga oder Nagios übergeben werden. Der passive Check wird dann im Interface wie ein gewöhnlicher Servicecheck dargestellt.

Anbindung von Statsd und Graphite

Eine sehr elegante Möglichkeit Daten aus Logfiles grafisch darzustellen ist die Weiterleitung an Graphite. Für eine vernünftige Vergleichbarkeit ist es jedoch wichtig, dass man das Aufkommen von bestimmten Patterns in Zeitintervallen zusammenfassen kann. Dafür eignet sich die NodeJS-Applikation  Statsd besonders gut.

Statsd ist ein NodeJs-basierter Aggregationsserver, der das Auftreten von verschiedenen Events verarbeitet und anschließend an Graphite weitergeben kann. So kann man das Auftreten eines bestimmten Eventtyps pro Minute zusammenfassen und dann an Graphite übermitteln. In dem Beispiel werden erfolgreiche und erfolglose Anmeldeversuche aus den Logs extrahiert und via Statsd an Graphite übergeben.