Release 2021061501 unserer Monitoring-Plugins

Was gibt es ergänzend zu den Release Notes zu unserer aktuellen Monitoring-Plugins Collection zu sagen?

Python 3

Mehr als 50% der Check-Plugins sind auf Python 3 portiert. Wir stellen die Pflege unserer Python 2-basierten Plugins zum 31. Dezember 2021 ein - spätestens bis dahin werden also die noch fehlenden ergänzt und migriert.

Die Python 3-Varianten werden bereits wo sinnvoll und möglich auch für Windows compiliert angeboten (als zip-Datei).

Aufgeräumt

Drei ehemalige Top3-Checks sind in cpu-usage, memory-usage und file-descriptors aufgegangen. Der Grund: wirft der cpu-usage-Check einen Fehler, stehen gleich die „Top3 processes which consumed the most cpu time“ mit dabei - und sind so beispielsweise in Icingaweb in der History verewigt, was die Fehlersuche vereinfacht.

Output

Wir sind bei der Angaben von Einheiten im Output noch eindeutiger: 3.1 Milliarden Requests gegen einen Apache Webserver werden mit der SI-Einheit gekürzt als 3.1G ausgegeben. 1025 Bytes sind 1.0KiB, 61 Sekunden werden zu 1m 1s. Tage, Wochen, Monate und Jahre dagegen gross als D, W, M und Y angezeigt.

Wir haben bei neuen Checks ausserdem damit begonnen, die Namen der Performancedaten von etablierten Prometheus-Exportern zu übernehmen, um Grafana-Dashboards wiederverwenden zu können. Erste Kandidaten sind fs-xfs-stats und nginx-status.

Periods / Zeiträume

Besonders interessant sind die Check-Plugins, die Zeiträume berücksichtigen können. Beispiel: Alarmiere mich erst, wenn die CPU-Last in den letzten fünf Check-Aufrufen bei über 80% liegt. Das sorgt für Ruhe, verhindert Flapping States, und man wird erst dann alarmiert, wenn Zustände eine gewisse Zeit lang anhalten.

Folgende Checks beherrschen dies und berücksichtigen die Anzahl der Perioden über den Parameter --count:

Weitere sind geplant.

READMEs

Die einzelnen READMEs zu den Check-Plugins wurden komplett überarbeitet: Sie haben nun eine neue, einheitliche Struktur, wurden vielfach ergänzt und beispielsweise um die Ausgabe der Check-Hilfe erweitert und finden sich zusätzlich auf https://docs.linuxfabrik.ch > Monitoring-Plugins.

Top-Statistiken

Unsere grössten Checks nach Code-Size:

Unsere schlanksten Check-Plugins:

Unsere komplexesten gemessen an Logik und Aufwand:

Checks mit besonderen Techniken:

  • disk-io: Passt seine Schwellwert-Prüfungen selbständig an ermittelte Disk-Throughputs an.

  • feed: Fragt auf Wunsch seinen Acknowledged-Status über Icinga ab, und wirft bei ACK kein WARN mehr.

  • php-status: Verlässt sich optional auf eine monitoring.php, die mehr PHP-Insights im Webserver-Kontext liefern kann.

  • wildfly-Checks: Kommen alle ohne jolokia.war-Plugin aus, sondern nutzen das native API.

  • users: Macht Dinge auf Windows anders als auf Linux.

Applikationsmonitoring nach Umfang:

  • 9x WildFly-Checks

  • 8x FortiOS

  • 6x QNAP QTS

  • 3x LibreNMS, 3x Nextcloud

Das Poster

Weil es so schön ist, hier einfach nochmal - viele unserer Monitoring-Plugins auf einem Icinga-Server in Aktion, zusammengefasst auf einem Poster:

https://git.linuxfabrik.ch/linuxfabrik/monitoring-plugins/-/raw/2021061501/linuxfabrik-monitoring-check-plugins.png