Mit Hilfe von “UserParameter” in der Zabbix Agent Config lässt sich so ziemlich alles monitoren. Interessant wird es dann wenn Befehle root-Rechte benötigen, zum Beispiel “ifconfig” oder “route”. Rootberechtigung ist auch dann nötig wenn mit Inhalten von Dateien gearbeitet werden soll deren Zugriffsrechte entsprechend beschränkt sind.

Nun hätte man theoretisch die Möglichkeit den Zabbix Agent als root zu starten. Davon ist allerdings abzuraten weil wir dem Agent dadurch weitaus mehr Rechte geben als nötig was insbesondere aus Gründen der Sicherheit nicht zu empfehlen ist.
Glücklicherweise gibt es ja “sudo” wodurch es möglich ist einzelne Befehle als root auszuführen. Mit der richtigen konfiguration wird dabei kein Passwort benötigt und der Zugriff kann auf bestimmte Befehle inklusive der Parameter beschränkt werden was uns hier sehr entgegen kommt.

Als Konfigurationsbeispiel wollen wir monitoren ob ein System eine Route in ein bestimmtes Netz hat. Ein Blick in die Routingtabelle zeigt uns alle bekannten Netzwerkrouten:

 

 

Wollen wir nun Prüfen ob die Route in das Netz 192.168.5.0 vorhanden ist so würden wir folgenden Aufruf verwenden:

 

 

Je nach verwendeter Linuxdistribution wird dieser Befehl allerdings nur als root funktionieren. Wir werden es dem User “zabbix” nun erlauben den Befehl ohne Passwort als root auszuführen. Dazu öffnen wir die Datei /etc/sudoers mit einem Texteditor und ergänzen diese um folgende Zeile:

zabbix ALL=(ALL:ALL) NOPASSWD: /sbin/route -n -- 

Durch das “–” am Ende des Aufrufs sorgen wir dafür das keine weiteren Optionen angehangen werden können. Somit ist es dem Benutzer “zabbix” beispielsweise nicht möglich Routen zu löschen oder zu erstellen. Was uns jetzt noch fehlt ist der entsprechende UserParameter. Diesen tragen wir wie folgt in unsere Agent Config ein:

UserParameter=route.check,sudo /sbin/route -n -- | grep -c "192.168.5.0" 

Nach einem Neustart des Zabbix Agents können wir nun den Key “route.check” verwenden um auf das Vorhandensein der Route zu prüfen.

Nach diesem Muster können wir beliebige weitere Befehle für den Zabbix Agent freigeben, somit sind den UserParametern keine grenzen mehr gesetzt.