Bash-Monitoring

vorhergehende Artikel in: Linux OpenSource TeleGrafana
02.01.2018

Ich wollte versuchen, ob es nicht möglich wäre, eine zuverlässige, nur auf der Bash basierende Lösung zur Überwachung eines Rechners zu finden.

In einem früheren Artikel beschrieb ich bereits eine Möglichkeit, die Rechnergesundheit zu überwachen. Der in diesem damaligen Artikel beschriebene Ansatz verschwieg die Tatsache, daß es natürlich auch wichtig ist, die Gesundheit des Überwachers zu überwachen.

Dazu könnte man einfach einen Zeitstempel generieren. Vergleicht man diesen mit der aktuellen Uhrzeit und weichen beide um mehr als einen bestimmten Wert voneinander ab, ist die Überwachung ausgefallen, da der Zeitstempel offensichtlich nicht mehr aktualisiert wird.

Darauf aufbauend kam mir der Gedanke (ich gebe zu, ein wenig von Nagios inspiriert), ob man nicht ein System schaffen könnte, das aus simplen Bash-Skripten besteht. Dieses System sollte erweiterbar sein. Ergebnis der Überwachung wäre eine Textdatei. Enthält diese lediglich einen Zeitstempel, wurden alle Tests erfolgreich durchgeführt. Ist das nicht So., beschreibt der enthaltene Test, welcher Test fehlschlug.

Dazu müsste es ein Master-Skript geben, das alle Sensor-Skripts in einem festgelegten Verzeichnis ausführt. Dabei gilt die Festlegung, daß Sensoren, die einen Fehler melden wollen, die Ursache mittels echo auf stdout schreiben und als Rückgabewert einen Wert größer 0 liefern. Ansonsten dürfen Sensoren nur Ausgaben auf stderr erzeugen.

Die erzeugte Datei kann man auf eine Netzwerkfreigabe legen, auf einen Webserver, sie per XMPP oder EMail versenden,...

Startet man das Master-Skript über Cron zyklisch hat man ein nettes kleines Monitoringsystem mit Bordmitteln erstellt, das kein Perl, PhP oder Python verlangt. Selbstverständlich bleibt die Zukunftssicherheit gewahrt, da man auch andere Skripte oder sogar ausführbare Dateien als Sensoren definieren kann.

Angehängt findet man eine erste prototypische Implementierung dieses Ansatzes.

Lizenz
Archiv

Aktualisierung vom 25. Juli 2015

Nunmehr ist es auch möglich, einzelne der Sensoren als "lenient" zu markieren - das bedeutet, dass man für jeden einzelnen Sensor definieren kann, wie oft er aufeinanderfolgend ausfallen muss, bevor ein Alarm signalisiert wird.

Damit ist es zum Beispiel möglich, einen Sensor zu definieren, der die Speicherauslastung überwacht und sofort alarmiert, wenn diese einen Grenzwert überschreitet. Parallel dazu kann man einen Sensor definieren, der die Anzahl geöffneter TCP-Ports überwacht, jedoch erst dann einen Alarm auslöst, wenn der definierte Schwellwert fünfmal hintereinander verletzt wurde.

Aktualisierung vom 2. Januar 2018

Die gesammelten Skripte sind ab sofort in einem GitHub-Repository verfügbar gemacht.

Artikel, die hierher verlinken

Todo.txt

18.10.2015

Todo.txt style="max-width:256px;" Beim ziellosen Browsen im Internet bin ich über Todo.txt gestolpert, das mir aus verschiedensten Gründen sofort aus dem Herzen gesprochen hat.

Serverüberwachung per EMail

09.06.2015

In früheren Artikeln habe ich bereits beschrieben, wie man mit einfachen Mitteln ressourcenschonend Serverüberwachung einrichten kann. Nachdem das für einen Server schon relativ gut funktioniert, habe ich ein wenig weitergedacht und bin zu folgender Lösung für die Überwachung mehrerer Server gekommen:

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Syntax-Highlighting für InfluxDB in Java-Anwendungen

    01.12.2019

    Wie bereits in einem früheren Artikel beschrieben beschäftige ich mich derzeit mit Ideen, Echtzeitdatenbanken und speziell InfluxDB in die sQLshell zu integrieren.

    Weiterlesen...

Neueste Artikel

  • Migration der Webseite und aller OpenSource Projekte

    In eigener Sache...

    Weiterlesen...
  • Java Security Manager Deprecation - Pro und Kontra (?)

    Nachdem der Security Manager in Java ja nun abgekündigt ist, wollte ich mich noch einmal ausführlich darum kümmern, was dieses Konzept eigentlich kann und was nicht- und ob es letztlich verdient auf dem Scheiterhaufen landet.

    Weiterlesen...
  • Gnuplot Snippets Projekt revisited

    Ich habe mein Projekt mit Skripts und Skriptfragmenten für Gnuplot wieder einmal überarbeitet und ein wenig erweitert.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.