Was können wir für Sie tun?

1 + 3 =

Bitte beachten Sie unsere Datenschutzerklaerung.

Skriptbasiertes Monitoring mit Zabbix – Individuelle Prüfungen auf Windows- und Linux-Systemen professionell umgesetzt

4.07.25 | anyWARE News

Einleitung: Wenn der Dienst läuft, aber nicht funktioniert

Ein Backupdienst meldet „aktiv“ – doch seit Tagen wurden keine Daten mehr geschrieben. Ein Prozess läuft, aber reagiert nicht mehr auf Anfragen. Eine Logdatei enthält seit Stunden kritische Fehler – aber niemand merkt es. Genau hier setzt skriptgestütztes Monitoring mit Zabbix an. Es ergänzt klassische Metriken wie CPU-Last und Festplattenauslastung um individuelle Prüfungen, die genau das erfassen, was in Ihrer Umgebung wirklich zählt. Ob unter Linux oder Windows: Mit eigenen Shell- oder PowerShell-Skripten überwachen Sie jede gewünschte Bedingung – automatisiert, nachvollziehbar und visuell aufbereitet.


Warum eigene Prüfskripte in Zabbix integrieren?

Standardwerte wie Speicherverbrauch, Netzwerkdurchsatz oder Dienststatus sind in vielen Fällen nicht ausreichend. Gerade in komplexen oder spezialisierten IT-Umgebungen kommt es darauf an, konkrete Bedingungen auswerten zu können – zum Beispiel:

Wenn ein Prozess nur dann als funktionierend gelten soll, wenn er neben dem „Running“-Status auch eine externe Datenbankverbindung erfolgreich herstellt. Oder wenn ein Lizenzzähler aus einer Datei gelesen werden muss, um zu erkennen, wann eine kritische Schwelle überschritten ist. Auch die gezielte Prüfung von Logdateien – beispielsweise auf bestimmte Schlüsselwörter in den letzten zehn Minuten – lässt sich nur mit eigenen Skripten zuverlässig umsetzen.

Mit Zabbix können solche Prüfungen vollständig automatisiert werden: Ein Skript ermittelt den Status, liefert einen klaren Rückgabewert und Zabbix übernimmt Auswertung, Trigger und Alarmierung.


Architektur: Wie eigene Prüfungen in Zabbix eingebunden werden

Benutzerdefinierte Prüfungen werden in Zabbix meist über den Agenten realisiert – entweder über den klassischen Zabbix Agent (v1) oder den modernen Zabbix Agent 2, der auf Plug-ins und native JSON-Ausgabe setzt. Die Ausführung erfolgt typischerweise lokal auf dem Zielsystem. Dabei sind zwei Modi möglich:

Beim passiven Modus fragt der Zabbix Server aktiv einen bestimmten Schlüssel beim Agenten an, der das definierte Skript ausführt und den Rückgabewert zurückgibt. Im aktiven Modus hingegen sendet der Agent die Messwerte zyklisch an den Server – sinnvoll etwa bei Geräten hinter NAT oder in DMZs ohne Rückkanal.

Die Einbindung erfolgt über sogenannte UserParameter in der Konfigurationsdatei des Agenten. Ein Eintrag könnte so aussehen:

iniKopierenBearbeitenUserParameter=check.backup.status,/etc/zabbix/scripts/check_backup_status.sh

Damit ist der neue Schlüssel check.backup.status registriert und kann im Zabbix-Frontend als Item verwendet werden. Für den Einsatz externer Skripte muss in der zabbix_agentd.conf zusätzlich die Option UnsafeUserParameters=1 gesetzt werden – mit Bedacht und möglichst restriktiven Rechten.


Praxisbeispiele: Bash und PowerShell in Aktion

Ein Beispiel unter Linux zeigt, wie ein einfaches Bash-Skript zur Logfile-Analyse eingebunden werden kann:

bashKopierenBearbeiten#!/bin/bash
logfile="/var/log/backup.log"
if grep -q "Backup completed successfully" "$logfile"; then
  echo 0
else
  echo 1
fi

Das Skript liefert 0 für Erfolg und 1 für Fehler. In Zabbix wird ein Item mit Typ Zabbix agent angelegt, das diesen Befehl aufruft. Ein Trigger könnte dann bei Rückgabewert ungleich null Alarm schlagen – zum Beispiel:

textKopierenBearbeiten{myhost:check.backup.status.last()}<>0

Auch unter Windows lassen sich eigene Checks realisieren. Hier ein PowerShell-Beispiel, das prüft, ob ein benannter Dienst läuft und gleichzeitig einen minimalen Arbeitsspeicherverbrauch aufweist:

powershellKopierenBearbeiten$svc = Get-Service -Name "MyService"
$proc = Get-Process -Name "MyService" -ErrorAction SilentlyContinue
if ($svc.Status -eq "Running" -and $proc.WorkingSet -gt 20000000) {
  exit 0
} else {
  exit 1
}

Dieses Skript erkennt, ob der Dienst zwar aktiv ist, aber faktisch „leer“ läuft, etwa durch einen blockierten Thread oder fehlende Requests.


Technische Vorteile und Anwendungsfelder

Die Integration eigener Skripte in Zabbix bietet weit mehr als nur Flexibilität – sie erlaubt die Abbildung vollständiger Betriebslogik. Besonders vorteilhaft ist das bei:

  • Eigenentwicklungen und Branchenlösungen, die keine Monitoring-API bereitstellen
  • Verbundprüfungen, z. B. Status + Inhalt + Laufzeit
  • Auditrelevanten Nachweisen, etwa zur Laufzeit täglicher Datenbankjobs
  • Sicherheitsmonitoring, durch zielgerichtete Logfile-Signaturen

Ein weiterer Vorteil: Die Logik bleibt im Skript gekapselt. Zabbix muss nur das Ergebnis interpretieren – das spart Triggerlogik und vermeidet Fehlalarme.


Best Practices für sauberes Skript-Monitoring

Damit skriptgestütztes Monitoring stabil und sicher läuft, sollten einige Grundsätze beachtet werden:

Zunächst sollten alle Skripte in einem zentralen Verzeichnis abgelegt und mit restriktiven Berechtigungen versehen sein. Unter Linux ist /etc/zabbix/scripts/ gängig, unter Windows etwa C:\Zabbix\scripts\. Der Zugriff sollte nur für den Zabbix-Agenten möglich sein.

Zweitens empfiehlt es sich, Skripte so zu gestalten, dass sie ausschließlich einfache Rückgabewerte liefern – zum Beispiel numerische Codes wie 0 (OK), 1 (Warnung), 2 (kritisch) – oder kurze Textantworten. Für umfangreiche Ausgaben (z. B. JSON) können log[]– oder dependent item-Typen verwendet werden.

Drittens ist eine gute Fehlerbehandlung wichtig. Skripte sollten bei Problemen nicht still abbrechen, sondern bewusst einen Fehlerstatus zurückgeben – idealerweise mit Logging. Timeouts auf Agentenebene verhindern, dass fehlerhafte Skripte das Monitoring blockieren.

Und viertens: Eine saubere Dokumentation. In Zabbix sollten Items benannt, mit Beschreibung versehen und sinnvoll getaggt sein – so können andere Administrator:innen jederzeit nachvollziehen, was geprüft wird.


Ergänzende Hinweise zu Zabbix Agent 2

Der neuere Zabbix Agent 2 bringt zusätzliche Vorteile für skriptbasierte Checks: Er unterstützt native Plug-ins, parallele Ausführung und komplexere Datentypen. Er eignet sich besonders für JSON-basierte Rückgaben, API-Abfragen und Kombinationen mehrerer Logiken. Bestehende UserParameter können auch mit Agent 2 verwendet werden – Migration ist unkompliziert.


Fazit: Monitoring, das Ihrer Realität entspricht

Standardmetriken liefern nur die halbe Wahrheit. Wer Prozesse, Services und Anwendungen verlässlich betreiben will, braucht Monitoring, das exakt zur eigenen IT passt. Mit skriptbasierten Prüfungen in Zabbix machen Sie Ihre kritischen Prozesse sichtbar – in Echtzeit, mit Alarmierung und Historie. Ob Windows-Dienste, Linux-Skripte, externe Abfragen oder individuelle Logik: Sie definieren die Prüfbedingung – Zabbix übernimmt den Rest.


Über uns

Die anyWARE AG ist Ihr IT-Dienstleister für Infrastruktur-Monitoring, Netzwerksicherheit und Systemmanagement im Mittelstand. Mit jahrelanger Erfahrung in der Einführung und Betreuung von Zabbix-Umgebungen bieten wir Ihnen praxisorientierte Lösungen – von standardisierten Templates bis zu maßgeschneiderten Prüfskripten, API-Abfragen und sicherheitsrelevanten Checks.

Ob Sie bestehende Skripte überwachen, neue Prüfungen definieren oder Ihre IT dokumentieren wollen – wir begleiten Sie von der Idee bis zur Automatisierung. Schulung, Dokumentation und langfristiger Betrieb inklusive.