Dieses kleine HowTo soll zeigen, wie sich eine Mail-Queue auf einem entfernten Host via NRPE überwachen lässt.
Einrichten eines Checks zur Überwachung einer Mail-Queue auf einem Linux-Server im Netzwerk.
Problem: Der Nagios-User hat auf die Queue keine Zugriffsrechte (was aus Sicherheitsgründen auch sinnvoll ist und nicht geändert werden sollte)
Der Nagios-User darf mit Hilfe von sudo das Plugin check_mailq mit root-Rechten ausführen und hat somit lesenden Zugriff auf die Mail-Queue.
1. Mittels des Editors visudo (eine erweiterte Version des Editors vi) die Datei /etc/sudoers bearbeiten und folgende Zeile hinzufügen
nagios ALL=(root) NOPASSWD: /<Pfad zu den Plugins>/check_mailq
2. Im Pluginverzeichnis eine Datei mit Namen check_mailq_sudo und folgendem Inhalt anlegen:
#!/bin/bash /<Pfad zu sudo>/sudo /<Pfad zu den Plugins>/check_mailq $@
3. Der eben erstellten Datei executable-Rechte geben
chmod 755 check_mailq_sudo
4. In die nrpe.cfg muss nun noch folgende Zeile hinzugefügt werden
command[check_mailq]=/<Pfad zu den Plugins>/check_mailq_sudo -M <Mailserver> -w <schwellwert> -c <schwellwert>
5. Ebenfalls muss eine Pfadangabe in der Datei check_mailq angepasst werden.
use lib "/<Pfad zu den Plugins>" ;
6. Nun muss noch der NRPE-Daemon neu gestartet werden und der Überwachung steht nichts mehr im Wege
NRPE unable to read output
Problem: check_mailq_sudo funktioniert lokal auf dem entfernten Host, der Service auf dem Nagios Server liefert aber „NRPE unable to read output“.
Lösung: Mit visudo die sudoers-Datei bearbeiten und folgenden Eintrag entfernen oder kommentieren, der sudo nur für interaktive Sessions erlaubt.
Defaults requiretty
Ich hatte den Fehler ERROR: is not executable by (uid *:gid(* *)) Das Problem lag daran das zur Zeit der Plugin Kompilierung, der Mailserver nicht installiert war und daher der Eintrag $PATH_TO_MAILQ = “/usr/bin/mailq“; in /<Pfad zu den Plugins>/utils.pm nicht eingetragen war.