Aktionen

Zabbix Skript Zabbix Agent per Popup-Skript aus der Zabbix-Server Weboberfläche deaktivieren

Aus znilwiki

Changelog:

  • 14.12.2017: erste Version



1 Aufgabenstellung

Bei einem Kunden werden alte Server aus Zabbix gelöscht. Dies geschieht innerhalb eines Changes, der Zabbix-Administrator wird informiert, deaktiviert und verschiebt den Host zunächst und löscht diesen dann nach einer Karenzzeit von einigen Tagen. Soweit kein Problem.
Nun kommt es doch öfters vor das so ein Altsystem doch wieder gestartet wird um "noch mal etwas nachzusehen". Dank des Zabbix Agenten registriert sich das System darauf hin wieder (Autoregistration), ist wieder im Monitoring - nur um ein paar Minuten später Trigger und Tickets auszulösen weil es wieder heruntergefahren wurde.


2 Lösung

Der Zabbix-Administrator muss sowieso einmal Hand anlegen. Da kann er auch gleich den Zabbix-Agenten auf dem System deaktivieren.
Aber dazu hat er eigentlich keine Rechte...
Hat er doch. Der Zabbix-Agent läuft unter dem Benutzer SYSTEM und kann somit eine ganze Menge.
Deshalb können wir über ein Zabbix-Script einfach den Registry-Schlüssel des Agent manipulieren so das dieser deaktiviert wird.
Beim nächsten Start des Systems wird der Agent dann nicht mehr gestartet.


3 Voraussetzungen

  • Bis Zabbix 3.2 funktioniert das nur für Hosts die direkt an den Zabbix Server senden, nicht für Hosts die über einen Proxy angebunden sind
  • Ab Zabbix 3.4 funktioniert das auch für Hosts hinter Proxys (muss aber in der Proxy-Konfiguration aktiviert werden)
  • In der Konfigurationsdatei des Agenten müssen die folgenden Optionen gesetzt sein:
# Befehle vom Zabbix Server annehmen
EnableRemoteCommands=1
# Sonderzeichen in Parametern / Aufrufen erlauben
UnsafeUserParameters=1



4 Skript Agent deaktivieren

Unter Administration => Scripts erstellen wir folgendes Skript:

ClipCapIt-171214-140532.PNG
Name ..............: Windows/Zabbix Agent Dienst deaktivieren
Commands ..........: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Zabbix Agent" /v "Start" /t REG_DWORD /f /d 4
Confirmation Text .: Warnung: Wenn der Dienst deaktiviert wird kann dieser nach einem Neustart des Hosts nur lokal auf dem System wieder aktiviert werden

Ich habe das mit Bestätigung eingerichtet damit man es nicht versehentlich macht.
Wenn eurer Agent nicht unter dem Standardnamen Zabbix Agent registriert wurde müsst Ihr diesen Namen anpassen.


5 Nutzung

Überall wo das Kontextmenü eines Host zur Verfügung steht könnt Ihr nun den Agent deaktivieren:

ClipCapIt-171214-141127.PNG
ClipCapIt-171214-141221.PNG
ClipCapIt-171214-141241.PNG

unter den Diensten auf dem Host ist das Ergebnis zu sehen:

ClipCapIt-171214-141353.PNG

Auf gleichem Wege könnte man den Agenten wieder aktivieren - so lange der Dienst noch läuft.
Nach einem Neustart geht das nur wieder manuell direkt auf dem Host.


6 Kommentare


Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen.