Überwachung vom Windows Backup mit Nagios
Checkliste Voraussetzungen:
Windows
- Active Perl http://activeperl.softonic.de/
- send_nsca http://exchange.nagios.org/directory/Addons/Passive-Checks/NSCA-Win32-Client/details
- Nagios
Nagios
- NSCA-Server
Notwendiges Wissen:
- Installation von Nagios
- Administration von Windows
- Perl
Definition Nagios Passive Checks
Die Überprüfung wird als "Passive Checks" implementiert. Das bedeutet, das die Windows Maschine die Events aktiv mit send_nsca an den Nagios-Server sendet.
Das wird deshalb gemacht, weil Nagios nicht weiß, wann der Backup-Prozess zu ende ist.
Änderung der globalen Konfiguration von Nagios
Damit Nagios für die Passive Checks vorbereitet ist, muss in der globalen Konfiguration der Passive Check erlaubt werden.
/etc/nagios/nagios.cfg
accept_passive_service_checks=1
accept_passive_host_checks=1
Service-Definition für Passive Checks
define service{ | ||
register |
0 generic-service_passive-1_5 0 1 1 1 0 0 1 1 1 1 0 5 1 4 24x7 w,u,c,r 24x7 240 Service notifications are enabled admins 129600 1 |
|
} |
define servicegroup{ | ||
servicegroup_name |
STBK-WBackup Windows System Backup |
|
} |
define service{ | ||
use |
generic-service_passive-1_5 stbk,term06,term05 STBK-WBackup STBK-WBackup service_is_stale |
|
} |
Auf abgelaufene passive Checks reagieren
Damit Nagios auf ausbleibende Informationen reagieren kann, wird ein "Freshness Check" angelegt. Das bedeutet, daß nach "129600" Sekunden der Serive Check ausgeführt. Es wird eine Meldung ausgegeben, das keine Daten in diesem Zeitraum empfangen wurden. Dazu wird der Service "service_is_stale" aufgerufen.
define command{ | ||
command_name |
service_is_stale $USER1$/service_is_stale.sh |
|
} |
#!/bin/sh
# $USER1$/service_is_stale.sh
/bin/echo "CRITICAL: keine aktuellen Werte von dem Services erhalten";
exit 2;
Windows Backup (wbadmin) Status überprüfen
WIndows 2008
Der Status vom dem Windows Backup wird über das Ereignisprotokoll ermittelt. Windows schreibt die Ereignisse unter "Microsoft-Windows-Backup" in das Event Log
Windows 2012
Unter Windows 2012 hat sich der Ort geändert: Microsoft-Windows-Backup/Betriebsbereit
Das nutzen wir, um einen Trigger zu erstellen. Den Trigger erstellen wir in der Computer Verwaltung "aufgaben Planung"
Ich nehme folgende EreignisID's:
Event ID | Message |
---|---|
Backup finished successfully. OK | |
Backup started at '%6' failed with following error code '%2'. | |
Backup cancelled. | |
Backup started at '%1' failed as Volume Shadow copy operation failed for backup volumes with following error code '%2'. ERROR |
Trigger Erstellung
Wir klicken auf dem Ordner "Backup" mit der rechten Mautaste und wählen "Aufgabe erstellen"
Für das Erstellen eines Triggers sind folgende Schritte durchzuführen
- Allgemein Trigger erstellen
- Trigger für das Ereignis erstellen
- Aktion erstellen
Trigger für Backup "ok"
wir geben dem Trigger den Namen: send status Nagios WBackup ok
Der Trigger soll bei der Ereignis-ID 4 gezündet werden.
und als Aktion das Programm "send_Nagios_status.pl" starten:
Parameter: --status ok --service STBK-WBackup --MSG "systembackup"
Trigger für Backup "error"
wir geben dem Trigger den Namen: send status Nagios WBackup error
Der Trigger soll bei der Ereignis-ID 9 gezündet werden.
und als Aktion das Programm "send_Nagios_status.pl" starten:
Parameter: --status error --service STBK-WBackup --MSG "systembackup"
Perlscript send_Nagios_status.pl
Das Perlscript sendet mit "send_nsca" den Status zum Nagios Server
#!c:/perl/bin/perl.exe -w
use strict;
use Sys::Hostname;
use POSIX;
use Getopt::Long qw($REQUIRE_ORDER $PERMUTE $RETURN_IN_ORDER);
my $status;
my $serverice;
my $MSG;
if(!Getopt::Long::GetOptions(
'status=s' => \$status,
'service=s' => \$serverice,
'MSG=s' => \$MSG
)
){
}
unless($status){
print "error: give --status\n";
print " --status ok |error \n";
exit 2;
}
my $hostname = lc(hostname);
my $NSCA_HOST = "192.168.100.169";
my $nsca_message;
my $error_code;
#{{{ send Freespace Backup Dir
if($status eq"ok"){
$error_code = "0";
$MSG = $MSG . " o.k";
} else {
$error_code = "2";
$MSG = $MSG . " error";
}
$nsca_message = "$hostname;$serverice;$error_code;$MSG:";
_send_nsca('nsca_message' => "$nsca_message");
#}}}
#{{{ _send_nsca
sub _send_nsca {
# 0 -> ok
# 1 -> WARNING
# 2 -> CRITICAL
my (%arg) = @_;
my $nsca_message = $arg{'nsca_message'};
system "echo $nsca_message | C:\\backup\\send_nsca_win32_bin\\send_nsca.exe -H $NSCA_HOST -c C:\\backup\\send_nsca_win32_bin\\send_nsca.cfg -d ;";
return 0;
}
#}}}
exit 0;
Parameter: --status ok --service STBK-WBackup --MSG "systembackup"
Die Datei "send_nsca.cfg" muss entsprechend wie auf dem Nagios Server angepasst werden.
Artikelaktionen
vielen Dank für diese Informationen. Ich wollte nur kurz einmal erwähnen das ich die ID 4 bevorzuge da diese nur generiert wird wenn das Backup auf erfolgreich abgeschlossen wird. Die ID 14 wird auch manchmal bei Fehlern/Warnungen generiert und dann würde Nagios OK anzeigen auch wenn das Backup nicht ganz OK gelaufen ist. Dies ist mir schon ein paar mal aufgefallen, wenn ich wieder mal so einen Fall habe dann gebe ich bescheid. Dann kannst du den Vorgang einmal provozieren und wirst erkennen was ich meine ;).