Nagios MongoDB Check mit check_mongodb und Pymongo
Läuft auf einem Server MongoDB bietet es sich an, den Dienst mit Nagios zu überwachen. Hierfür gibt es einen simplen Plugin namens check_mongodb.py der auf pymongo basiert.
Im Prinzip funktioniert das Installiere genauso wie bei allen anderen Plugins auch. Man muss nur zuerst sicherstellen, dass der MongoDB Python Treiber pymongo installiert ist. Vorausgesetzt Python Skripte können ausgeführt werden (auf Debian standardmäßig möglich) lässt sich dieser einfach herunterladen und einrichten.
wget --no-check-certificate https://github.com/mongodb/mongo-python-driver/archive/master.zip unzip master.zip cd mongo-python-driver-master python setup.py install
Danach kann check_mongodb.py runtergeladen und in das Plugin-Verzeichnis verschoben werden.
wget --no-check-certificate https://github.com/mzupan/nagios-plugin-mongodb/archive/master.zip unzip master.zip cd nagios-plugin-mongodb-master mv check_mongodb.py /usr/lib/nagios/plugins/
Dann bearbeiten wir die Datei /etc/nagios/nrpe.cfg und fügen dort folgendes Kommando hinzu:
command[check_mongodb]=/usr/lib/nagios/plugins/check_mongodb.py -A databases -W 200 -C 300
über den Parameter -A kann definiert werden, welcher Befehl ausgeführt werden soll. Meiner Erfahrung funktioniert der connect Befehl nicht erwartungsgemäß, sondern returniert immer OK, auch wenn der MongoDB Service gestoppt ist. Deshalb nutze ich den databases Befehl, der die Anzahl der Datenbanken zählt. Fällt der Service aus, wirft dieser richtigerweise einen Verbindungsfehler. Hier muss jetzt nur ein Warning- und Critical-Threshhold definiert werden, sonst erscheint jede beliebige Anzahl an gefundenen Datenbanken als Critical. Also Werte für -W und -C eingeben, die für den eigenen Fall unrealistisch zu erreichen sind (in meinem Fall alles über 200).
Danach den Service neustarten mit
service nagios-nrpe-server restart
und dann zum Monitor wechseln um die Überwachung zu aktivieren. Das geht über die serverspezifische Konfig-Datei /etc/nagios3/conf.d/server1_nagios2.cfg mit einem neuen Dienst:
define service{ use generic-service host_name server1 service_description RAM check_command check_nrpe_1arg!check_mongodb }
Jetzt noch Nagios neustarten (service nagios3 restart) und schon kanns losgehen mit der RAM Überwachung.