Die Windows Server-Sicherung (ab Server 2008) lässt sich über die Management Console bequem einsehen. Aber wer schaut da täglich rein? Ich wollte das über Nagios überwachen und habe dafür ein PowerShell-Script geschrieben.
Die Idee
Auf den zu überwachenden Systemen ist jeweils eine Vollsicherung (Bare Metal) eingerichtet, die ein- bis mehrmals am Tag startet. Mich interessiert nur eine Frage: Wann war die letzte erfolgreiche Sicherung, und ist diese älter als drei Tage? Warum, weshalb, wo, wie, was — ist mir im ersten Schritt egal. Ich will nur informiert sein, wenn es keine aktuelle Datensicherung gibt.

Das Script
Das PowerShell-SnapIn Windows.ServerBackup liefert über Get-WBSummary eine Zusammenfassung der Sicherungen. Unter LastSuccessfulBackupTime steht das Datum der letzten erfolgreichen Sicherung.
Das Script vergleicht dieses Datum mit dem aktuellen: Ist die Sicherung von heute oder gestern, gibt es OK zurück. Bei zwei bis drei Tagen eine Warnung. Älter als drei Tage bedeutet CRITICAL. Zusätzlich erkennt es, ob die Befehlszeilentools nicht installiert sind und ob eine Sicherung über einen Tageswechsel hinweg noch läuft.
Download: backuptest.ps1 (aktuelle Version 0.3)
Voraussetzungen
Über den Server-Manager muss unter Windows Server-Sicherungsfeatures das Feature Befehlszeilentools installiert sein. Ohne das SnapIn gibt es beim Start des Scripts eine Fehlermeldung. Außerdem muss die Execution Policy angepasst werden:
Set-ExecutionPolicy RemoteSigned

NSClient++ einrichten
Das Script nach C:\scripte\ legen. Im NSClient++ die NRPE-Konfiguration erweitern. Der Aufruf eines PowerShell-Scripts über NSClient++ sieht beim ersten Hinschauen etwas seltsam aus:
[NRPE Handlers] command[check_windowsbackup]=cmd /c echo C:\scripte\backuptest.ps1 | powershell.exe -command -
Dazu muss NSClient++ natürlich als NRPE-Server konfiguriert sein:
[modules] NRPEListener.dll NRPEClient.dll [NRPE] port=5666 command_timeout=120 allowed_hosts=1.2.3.4 socket_timeout=120
Testen
Nach einem Neustart des NSClient++-Dienstes kann man vom Nagios-System aus testen:
$ check_nrpe -H 4.3.2.1 -p 5666 -t 120 -c check_windowsbackup OK: Backup von gestern

Die restliche Einrichtung in Nagios (Service, Host, Command) ist Standard.
Fragen? Einfach melden.
Schreibe einen Kommentar