OMD Sites mit check_omd überwachen
Mithilfe von OMD ist es möglich binnen weniger Minuten ein funktionierendes Monitoring zu implementieren und die eigene Infrastruktur zu überwachen.
Doch was überwacht die OMD-eigenen Prozesse? Eine sogenannte OMD-Site besteht aus zahlreichen vorkonfigurierten Diensten, unter anderem:
- Icinga bzw. Nagios
- Apache-Webserver
- Cron-Dienst
- rrdcached (für RRD-Graphen)
- npcd (Performancedaten)
Für die Funktionsüberwachung einer Site bietet OMD ein spezielles Kommando:
1# omd status hansel
2Doing 'status' on site hansel:
3rrdcached: running
4npcd: running
5nagios: stopped
6apache: running
7crontab: running
8-----------------------
9Overall state: partially running
In diesem Beispiel ist von den benötigten Diensten der Nagios-Dienst ausgefallen - folglich ist die OMD-Site nur teilweise aktiv.
Natürlich könnte man jetzt auch die ganzen Dienste einzeln überwachen, beispielsweise über NRPE. Wer jedoch häufiger OMD-Sites erstellt oder einfach nur tippfaul ist, freut sich über eine andere Lösung.
Ich habe kurzerhand mal ein Python-Plugin zur Überwachung von OMD-Sites erstellt: check_omd:
Das Skript überwacht die einzelnen Dienste einer OMD-Site und informiert fehlerhafte Dienste. Da nicht alle Dienste einer OMD-Site kritisch für den Betrieb der selbigen sind, gibt es darüber hinaus noch die Möglichkeit, einzelne Dienste zu ignorieren. Da das Skript intern das omd status
-Kommando verwendet, ist kein Anpassen der Konfiguration nach OMD-Upgrades oder Neukonfigurationen notwendig.
Das Skript muss im Benutzerkontext der OMD-Site ausgeführt werden - dafür ist eine sudo-Regel erforderlich. Dem GitHub-Repository liegen ein RPM-Specfile und eine sudo-Vorlage bei.
Die folgenden Beispiele zeigen das Plugin anhand zweier OMD-Sites: eine funktionsfähige und eine fehlerhafte Site:
1$ /opt/check_omd.py
2OK: OMD site 'stankowic' services are running.
3
4$ /opt/check_omd.py
5CRITICAL: OMD site 'hansel' has failed service(s): 'nagios'
Auf GitHub und der Icinga Exchange-Webseite finden sich detaillierte Informationen zur Installation und Konfiguration.