omnomnom - Nomitoring für Zwischendurch (Teil 3/3)
Nach Teil 1 und Teil 2 stand ich also weiterhin mit ein paar bunten Graphen, aber ohne Alerting für relevante Fehlerfälle wie „Partition X voll“, „VPN-Tunnel Y down“ und „Load über 10, hier stimmt was nicht“ da. Was kommt einem da in den Kopf? Richtig: „Selbermachen, und zwar genau so, wie ich das brauche.“
Ärmel hochkrempeln
Ich programmiere grundsätzlich gerne, momentan seit längerem hapert
es aber ein wenig an der Zeit. Das Projekt sah aber insgesamt
schaffbar und vor allem in kleine Häppchen zerlegbar aus (seit ich
mich intensiver mit dem ganzen TDD-Krams beschäftige, quantisiere ich
meine Arbeit sehr gerne).
Wofür ich genug Zeit habe, ist nachdenken (was öfter mal zu „ich muss diesen ganzen Kram aus meinem Kopf raustippen“ führt), denn das kann ich flexibel zwischendurch machen, wenn ich z.B. Fahrrad fahre oder so. Ich habe mir also tatsächlich vorher einen Feature-Katalog geschrieben mit den Dingen, die ich von meiner Monitoring-Lösung erwarte, und den dann Stück für Stück abgearbeitet. Einige Dinge sind rausgeflogen, einige andere auf der langen Bank gelandet, aber im großen und ganzen war das ein guter Faden zum Dranlanghangeln.
Und tatsächlich: Obwohl ich abends je nur ein bis zwei Stunden Zeit hatte, ist das Projekt in ungefähr Wochen zwei benutzbar und „fertig“ geworden.
Projektstatus
Ich präsentiere hier und mit nur mit zweieinhalb Jahren Verspätung: nomd, die vermutlich erste Nomitoring-Distribution.
Ein paar der Features:
- einfache Installation und Sofort-Ausprobiermodus
git clone https://github.com/mmitch/nomd.git && cd nomd && ./nomd
- bisher kein root nötig, alles läuft unter einem normalen User
- es ist im wesentlichen ein Shellskript
- keine wilden Abhängigkeiten (bash 4, Perl 5.10, ein paar handelsübliche Shellkommandos)
- keine eigene Konfigurationssprache zu lernen
- Spezialfälle mit Shellcode erschlagbar
- könnte auf verschiedenen Systemen laufen
- auf Debian und Ubuntu entwickelt und getestet
- erfolgreich auf FreeBSD ausprobiert (danke, psy!)
Cygwin folgt, sobald ich Zeit hab ;-)hatte ich nicht
- selbstdokumentierend (alle Features sind auflistbar)
Aktuell sind folgende Checks verfügbar:
- Load
- ICMP Ping
- TCP-Verbindungen
- verfügbare nomd-Updates :-)
- fehlgeschlagene systemd-Units
- nicht eingespielte Paket-Updates (via apt)
- freier Plattenplatz (braucht leider zwei Perl-Module …)
- Vorhandensein, Inhalt und Änderungsdatum von Dateien und Verzeichnissen
- DNS-Einträge
- HTTP-Verbindungen
- Gültigkeit von SSL-Zertifikaten
- Konflikte in Syncthing-Ordnern
Als Benachrichtigungen sind standardmäßig verfügbar:
- notify-send via DBus für Popups unter X11
- stdout
Ich habe nomd jetzt sowohl auf meinen Servern als auch auf meinen Lap- und Desktops im Einsatz und bin rundum zufrieden. Ein paar echte Fehler habe ich auch schon damit gefangen: Ich hatte, warum auch immer, tägliche stunnel-Restarts eingerichtet und lief dadurch in Debian-Bug #782030. nomd hat dann frühzeitig gesagt „moment mal, kein Connect zum Tunnelende“. Alternativ hätte ich wieder tagelang ohne Mail von draußen dagesessen, denn lokal wird so viel Mail produziert, dass nicht sofort auffällt …
Anbauten
Schön ist die einfache Erweiterbarkeit des ganzen:
Einen Spezialcheck für mein Graylisting auf dem Mailserver besteht
einfach aus drei Zeilen if
, grep
und echo C:graylisting:KAPUTT
,
die ich direkt in meine check.local
geschrieben habe.
Außerdem habe ich ein zufällig herumliegendes „schreib eine Zeile in einen IRC-Channel“-Skript als Benachrichtigungs-Backend angeflanscht, weil ich mich die Monitoring-Mails in meinem Postfach genervt haben. ChatOps-Style ist richtig gut!
Und gerade letzte Woche habe ich ein Selbstheilungs-Skript angefangen: Wenn die Nachricht kommt, dass ein VPN-Tunnel weg ist, wird dieser einfach direkt neu gestartet. Das ist jetzt das erste, wo ich mal sudo brauchte.
KAUFEN KAUFEN KAUFEN!
Wer also nach etwas Monitoring sucht und sich in keine monströs große Softwarelösung für ganze Rechenzentren einarbeiten will, der könnte ja mal gucken, ob ihm nomd zusagt.
Werbeblock Ende :-)
Netz - Rettung - Recht am : Wellenreiten 03/2020