Nachdem ich mehrere Jahre Softwareentwickler war, entschied ich mich, einem Operations-Team beizutreten, um mich entlang der Delivery-Pipeline zu bewegen und ein klares Bild davon zu bekommen, was dort vor sich geht.

Randnotiz: Jeder Softwareentwickler sollte das mindestens einmal in seiner Karriere tun:

  • Verstehen, was “Produktion” wirklich bedeutet.
  • 24/7-Bereitschaftsdienst erleben.
  • Direkt mit Kunden sprechen, wenn die Zeiten hart sind.
  • Den Wert von Automatisierung, Logging und Monitoring schätzen lernen.

Um nur einige zu nennen.

Zurück zum Thema.

Mir wurde die Aufgabe gegeben, das Monitoring für unsere Server mit dem Sensu-Monitoring-Framework einzurichten.

Da stand ich also: unsere Server, das Sensu-Wiki und ein paar Blogbeiträge hier und da.

Die nicht so guten alten Tage des Monitorings

Während ich im Web weiter recherchierte, fand ich einige merkwürdige Dinge über Monitoring und die Tools darum herum, besonders Nagios, den De-facto-Standard.

Nagios ist ein sehr komplexes System und es braucht viel Zeit, es zu beherrschen. Es zu konfigurieren und das System an die eigenen Bedürfnisse anzupassen ist alles andere als einfach. Zusätzlich ist es starr und schwer zu erweitern. Je mehr Instanzen überwacht werden müssen, desto schwieriger wird es; Nagios kann von einer großen Anzahl von Systemen überfordert werden.

Vor allem ist es nicht für Cloud-Infrastrukturen geeignet, in denen sich Server ständig ändern. Wann immer sich die Infrastruktur ändert, muss Nagios neu konfiguriert und neu gestartet werden. Obwohl dies mit Konfigurationsmanagement-Tools automatisiert werden kann, ist es immer noch keine saubere Lösung, da Provisioning-Läufe nur in Intervallen erfolgen. Das Monitoring-Tool sollte in der Lage sein, eine sich ändernde Umgebung selbstständig in Echtzeit zu handhaben.

Warum ich Sensu verwende

Sensu beginnt dort, wo die meisten anderen Tools aufhören. Wie im einleitenden Blogbeitrag von Sean Porter geschrieben, zielt es darauf ab,

  • einfach
  • formbar
  • skalierbar

zu sein.

Lass uns das genauer betrachten.

Sensu ist einfach

Hast du dir seine Codebasis angeschaut? Nein? Ich empfehle es sehr - es ist eine reine Freude. Der Serverkern ist weniger als 1k Zeilen Code.

Sensu zu installieren ist eine Sache von Minuten. Ich habe es zuerst manuell installiert und dann ein Puppet-Modul geschrieben, um die Prozedur zu automatisieren. Es dauerte eine Weile, das herauszufinden, nicht wegen Sensu, sondern weil ich neu bei Puppet war und noch nie ein Modul dafür geschrieben hatte. Siehe meinen Beitrag “Sensu mit Puppet bereitstellen”. Der Code kann in meinem GitHub-Repository gefunden werden. Er ist weit davon entfernt, perfekt zu sein, aber er erledigt fürs Erste die Arbeit.

Tatsächlich ist Sensu für Konfigurationsmanagement-Tools gemacht. Du wirst nichts in Sensu finden, das nicht von Chef, Puppet oder anderen konfiguriert werden kann.

Dazu kommt, dass Sensu auch sehr sparsam mit der Konfiguration ist. Alles, was es braucht, sind ein paar einfache JSON-Dateien.

Sensu ist formbar

Du kannst Sensu an deine Bedürfnisse ändern und anpassen. Es ist erweiterbar und wird von deinem eigenen Code angetrieben, sodass du es so modifizieren kannst, dass es so funktioniert, wie du es willst.

Sensu ist Open Source mit einer aktiven Community. Nimm es, mach damit, was du willst, und trage zum Projekt bei.

Sensu ist skalierbar

Ich muss zugeben, ich bin süchtig nach Cloud-Infrastruktur. Eigentlich wird sogar dieser Blog bei Heroku gehostet.

Der wahre Vorteil von Cloud-Infrastrukturen ist, dass sie bei Bedarf skaliert werden können, ohne Vorabinvestitionen. Wenn du hoch- oder runterskalierst, macht Sensu mit - nichts muss neu konfiguriert oder neu gestartet werden, da neue Instanzen automatisch entdeckt werden.

Was bedeutet “Sensu”?

Sensu ist das japanische Wort für Faltfächer (扇子). Es ist eine Anspielung auf den Fanout-Exchange, einen der von RabbitMQ verwendeten Exchange-Typen.

Von hier nach dort

In den nächsten Blogbeiträgen werde ich mehr über Sensu schreiben - wie man es installiert und konfiguriert, und was sonst noch so anfällt. Schließlich wird alles in naher Zukunft seinen Platz in “The Book of Sensu” finden.

In der Zwischenzeit schau dir die folgenden Links an. Das waren meine Ausgangspunkte für Sensu und die Hauptquellen für diesen Beitrag.

Es gibt mehr Links im Sensu-Wiki.

Fertig für heute!