Zabbix windowsupdates monitoren

Verfügbare Updates per Skript abfragen

Über ein Visual-Basic-Skript kann man ein Windows-System abfragen, wie viele Updates zur Installation bereitstehen und ob das System nach dem Update neu gestartet werden muss.

Laden Sie das Beispielskript herunter und speichern Sie es in dem Ordner, in dem Sie auch die Datei zabbix_sender.exe gespeichert haben.

Öffnen Sie eine Eingabeaufforderung und testen Sie das Skript wie folgt:

cd c:\Program Files\zabbix
cscript winupdates.vbs
Microsoft (R) Windows Script Host, Version 5.8
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

localhost updates.pending 68
localhost reboot.required 1
localhost reboot.to_complete 0

Sicher erkennen Sie schon, dass die Ausgabe des Skriptes dem Eingabeformat des Zabbix-Senders entspricht.

Items und Trigger einrichten

Legen Sie ein neues Template mit dem Namen „Windows-Updates“ an. Für dieses Template legen Sie die folgenden Items vom Typ „Zabbix Trapper“ an. Alle Items haben „Numeric (unsigned)“ als „Type of Information“:

  • Windows Reboot Required: reboot.required
  • Windows Reboot Required to complete previous Update: reboot.to_complete
  • Windows Updates pending: updates.pending
Item, welches die Anzahl der verfügbaren Windows-Updates überwacht

Richten Sie für jedes der drei Items einen Trigger ein, der ein Problem meldet, sobald der Messwert ungleich Null ist.

Weisen Sie anschließend das neue Template einem Windows-System zu.

Nun können Sie testen, ob der Zabbix-Server die Informationen über den Update-Status eines Windows-Systems annimmt:

cd C:\"Program Files"\zabbix
cscript //NoLogo winupdates.vbs <HOSTNAME>|zabbix_sender.exe -vvv -z <IP-ZABBIX-SERVER> -i -

Ersetzen Sie <HOSTNAME> durch den Hostnamen des Systems, so wie Sie es im Zabbix-Server angelegt haben.

Geplanten Task anlegen

Wenn Sie die Daten manuell erfolgreich an den Zabbix-Server schicken konnten, richten Sie einen geplanten Task ein, der das System täglich auf neue Updates prüft.

Verpacken Sie das oben genannte Kommando in ein Batch-Skript, beispielsweise windupdates.bat, welches Sie im selben Ordner speichern, in dem zabbix_sender.exe und winupdates.vbs gespeichert sind. Entfernen Sie die Option -vvv. Diese erweiterte Ausgabe wurde nur zu Testzwecken gebraucht.

Öffnen Sie die Aufgabenplanung des Systems und fügen Sie eine neue lokale Aufgabe zur Bibliothek hinzu. Als Trigger wählen Sie beispielsweise täglich um 23.00 Uhr aus. Als Aktion geben Sie den vollen Pfad zur Datei windupdates.bat an.

Regelmäßige Prüfung der Updates über die Aufgabenplanung

Schneller können Sie den geplanten Task mit dem nachfolgenden Kommando auf der Kommandozeile anlegen (entfernen Sie alle Zeilenumbrüche):

schtasks /create /tn "Zabbix Winupdate"
 /sc TÄGLICH /ST 23:00 /tr 
 "\"C:\Program Files\zabbix\winupdates.bat"\" /ru System
Zabbix zeigt den Update-Status eines Windows-Systems an.