Open Source im professionellen Einsatz
Linux-Magazin 06/2015
© Noppasin Wongchum, 123RF

© Noppasin Wongchum, 123RF

Sensu: Eine leistungsfähige und skalierbare Monitoring-Lösung

All my loving

Es ist schon ein paar Jahre her, als das Twitter-Hashtag "#monitoringsucks" aufkam und sich schnell großer Verbreitung erfreute, denn Überwachungssoftware war an ihre Grenzen gelangt und stagnierte. Unser Autor Jochen Lillich berichtet, wie er einen Ausweg aus dem Dilemma fand.

789

Vor einigen Jahren schien es, als würde sich im Bereich der freien Monitoring-Systeme nicht mehr sonderlich viel bewegen. Nagios behauptete sich trotz seiner vielen Schwächen unverdrossen als Platzhirsch und die alternativen Lösungen brachten kaum neue Ansätze ins Spiel. Auf der anderen Seite trieb das durch die Cloud beschleunigte Infrastruktur-Wachstum die meisten Monitoring-Systeme umso schneller an ihre Leistungsgrenzen. Die Hoffnung auf mehr Spaß bei der Serverüberwachung hielt sich in engen Grenzen.

Eher unerwartet tauchte dann ein Licht am Ende des Tunnels auf. Es war 2012 und ein schwedischer Systemadministrator namens Ulf Mansson war von einer neuen Monitoring-Software so begeistert, dass er das Hashtag »#monitoringlove« in Umlauf brachte. Während der Devops Days in Rom erzählte er ausführlich, wie der Wechsel auf diese neue Software seinem Ops-Team wieder Spaß an der Arbeit gebrach hatte. Begeisterung machte sich breit im Publikum. Und da unsere stetig wachsende Hosting-Infrastruktur gerade dabei war, Nagios (und unsere Nerven) zu überstrapazieren, war ich mehr als neugierig, was das für ein System war. Der Name des Projekts? Sensu.

Open Core

Es gibt eine ganze Reihe von Gründen, warum Sensu sich der Liebe vieler Ops-Teams weltweit erfreut:

  • Geschrieben ist es in Ruby und seine Konfigurationsdateien verwenden das etablierte Json-Format.
  • Seine Architektur ist sehr skalierbar, sodass Sensu auch noch funktioniert, wenn es Hunderte oder gar Tausende von Servern zu überwachen hat.
  • Plugins, allen voran die eigentlichen Checks, können in jeder beliebigen Sprache programmiert werden.
  • Für die Check-Ergebnisse verwendet Sensu das von Nagios bekannte Format, wodurch alle existierenden Nagios-Checks weiterverwendet werden können.
  • Sensu sammelt sowohl Statusinformationen als auch Laufzeitmetriken.
  • Es gibt eine große Anzahl von Schnittstellen zu externen Diensten.
  • Die Sensu-Community ist sehr aktiv und hilfsbereit.

Sensu ist ein so genanntes Open-Core-Projekt, das die Kernsoftware unter einer freien Lizenz veröffentlicht, die zudem die Basis eines proprietären Produkts mit zusätzlichen Features bildet. Zu Beginn hatte Sean Porter Sensu als Teilzeit-Projekt bei der Firma Sonian entwickelt, inzwischen bezahlt ihn Heavy Water Operations dafür, sich zu 100 Prozent Sensu zu widmen. Frei vertrieben wird Sensu Core unter der MIT-Lizenz.

Das kommerzielle Produkt Sensu Enterprise baut auf dem Fundament von Sensu Core auf. Sensu Enterprise verwendet Jruby als Laufzeitumgebung, was eine höhere Verarbeitungsleistung verspricht. Weitere Vorteile der kostenpflichtigen Version sind Zusatzfunktionen, zum Beispiel die Konvertierung von Metriken, die einfache Integration externer Dienste sowie der direkte technische Support durch die Entwickler bei Heavy Water Operations.

Wer kostenlose Hilfe beim Betrieb von Sensu sucht, findet sie in der sehr hilfsbereiten Entwicklercommunity, die über Mailinglisten sowie im IRC-Channel http://#sensu auf Freenode zu erreichen ist.

Architektur

Sensu zeichnet sich durch erstaunlich hohe Leistung und Skalierbarkeit aus. Der Schlüsselfaktor dazu ist die Architektur, wie sie Abbildung 1 darstellt. Statt die verschiedenen Komponenten des Monitoring-Framework in eine monolithische Software zu packen, wobei ihre Schnittstellen schnell zum Flaschenhals werden können, setzt Sensu auf eine verteilte Architektur.

Abbildung 1: Die Sensu-Architektur in der Übersicht.

Wie jedes Monitoring-System muss auch Sensu die Durchführung von Monitoring-Checks auslösen, deren Ergebnisse verarbeiten und daraufhin Aktionen ausführen, zum Beispiel SMS-Nachrichten versenden oder Logeinträge vornehmen. Aufgrund der modularen Art und Weise, mit der das System diese Abläufe steuert, wird schnell verständlich, warum Sensu zuweilen auch als "Monitoring-Router" bezeichnet wird.

Im Zentrum der Sensu-Maschinerie läuft mit Rabbit MQ ein Message-Bus, der die asynchrone Kommunikation zwischen den Systemkomponenten erlaubt. Bei allen Abläufen in Sensu stellt Rabbit MQ stets das Bindeglied dar. So hat ein Bearbeitungsstau an einer Komponente nicht zwangsläufig zur Folge, dass er alle anderen Komponenten ausbremst.

Die Aufforderung an die Sensu-Clients, einen bestimmten Check auszuführen, legt der Sensu-Server einfach auf den Bus. Innerhalb kurzer Zeit wird jeder angesprochene Client dieser Aufforderung nachkommen und das Ergebnis des Checks seinerseits auf dem Bus platzieren. Nun ist erneut der Server an der Reihe, die Check-Ergebnisse zu verarbeiten und daraus Ereignisse abzuleiten. Diese Ereignisse setzen schließlich so genannte Eventhandler in Aktionen um, zum Beispiel in einen SMS-Alarm oder in eine Nachricht im Chatkanal des Ops-Teams. Auf jede dieser Phasen gehe ich später noch eingehend ein.

Eine weitere Systemkomponente ist das Sensu-API. Es stellt eine REST-artige Schnittstelle zur Verfügung, um von außen Informationen über alle überwachten Maschinen, deren Checks und Ereignisse abzufragen. Über das API lässt sich sowohl die Ausführung von Checks auslösen als auch die Verarbeitung bestimmter Checks verhindern. Zudem kann das API Alarme quittieren oder löschen.

Zumindest einen Dienst, der dieses API nutzt, wird wohl jeder Sensu-Anwender installieren, nämlich eine Website zur interaktiven Bedienung des Systems. Der modulare Aufbau von Sensu zeigt auch hier seine Vorteile, denn alternativ zum im Grundumfang enthaltenen Dashboard [1] können Sensu-Anwender auch andere Implementierungen wie [2] einsetzen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Prometheus & Sensu

    Wer eine Monitoringsuite abseits von Nagios & Co. sucht, trifft fast zwangsläufig auf Prometheus und Sensu. Beide versprechen ähnliche Funktionalität, unterscheiden sich aber fundamental voneinander.

  • OSMC 14

    In netter Atmosphäre trafen sich Mitte November rund 250 Admins in Nürnberg, um sich über die neuesten Entwicklungen beim Monitoring auszutauschen.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.