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:

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.

Übersetzungen: