Backup Exec in Nagios überwachen
Mittels Powershell und dem CLI-Tool Backup Exec Management Command Line Interface lässt sich in Nagios der Status von Backup Exec bzw. die Alert-Meldungen überwachen:
Inhaltsverzeichnis
Powershell-Script check_bealert.ps1
Erstelle die Datei check_bealert.ps1 mit folgendem Inhalt:
#
# Name: check_bealert.ps1
#
# Comment: powershell script to query backup exec state using bemcli
#
# Copyright by Flo Krug
# Version 1.4
import-module "\program files\symantec\backup exec\modules\bemcli\bemcli";
$returnState = 0;
$returnString = "OK - Backup Exec has no warnings or critical alerts detected";
$returnString_warning = "0 warnings";
$returnString_critical = "0 critical alerts";
$count_bealerts_warnings = 0;
$count_bealerts_criticals = 0;
foreach($bealerts_warning in get-bealert | where {$_.severity -match "warning"}){
$count_bealerts_warnings++;
if( $count_bealerts_warnings -gt 1){
$returnString_warning = "$count_bealerts_warnings warnings"
}
else{
$returnString_warning = "$count_bealerts_warnings warning"
}
}
foreach($bealerts_critical in get-bealert | where {$_.severity -match "error"}){
$count_bealerts_criticals++;
if( $count_bealerts_criticals -gt 1){
$returnString_critical = "$count_bealerts_criticals critical alerts"
}
else{
$returnString_critical = "$count_bealerts_criticals critical alert"
}
}
if($count_bealerts_criticals -gt 0){
$returnString = "CRITICAL - Backup Exec has detected " + $returnString_warning + " and " + $returnString_critical;
$returnState = 2;
}
elseif($count_bealerts_warnings -gt 0 -And $count_bealerts_criticals -le 0){
$returnString = "WARNING - Backup Exec has detected " + $returnString_warning + " and " + $returnString_critical;
$returnState = 1;
}
Write-Host $returnString;
exit $returnState
Das Script ermittelt, ob - und falls ja - wie viele Warnungen und Critical Alerts in Backup Exec ermittelt wurden und liefert den entsprechenden Status zurück. Der Nagios-Status für eine Warnung oder ein Critical wird zurückgesetzt, indem im Backup Exec diese Alerts von einem Admin bestätigt werden:
Zum Testen kann das PS1-Script mittels Powershell direkt am Server aufgerufen werden, eine entsprechende Meldung sollte dann in der Konsole erscheinen:
Achtung: bei manchen Windows Systemen muss noch der Powershell-Befehl
set-executionpolicy remotesigned
ausgeführt werden. Andernfalls scheitert der Scriptaufruf.
NSClient++ konfigurieren
Am Backup Exec Server muss der NSClient++ installiert und funktionstüchtig konfiguriert worden sein. Füge dann in der nsclient.ini folgenden Inhalt ein bzw. ergänze den Abschnitt:
[/settings/external scripts/scripts]
; Eigene Scripts:
check_bealert=cmd /c echo scripts\check_bealert.ps1; exit($lastexitcode) | powershell.exe -command -
Kopiere das erstellte Script in den Unterordner scripts des NSClient++-Programmverzeichnisses und starte dann den NSClient++ Dienst neu.
Nagios einrichten
Ich bin ein recht fauler/intelligenter (?) Hund, deshalb verwende ich NagiosQL zum Verwalten der Nagios Konfig-Files. Basierend darauf nachfolgend die Nagios-Konfiguration.
Der neue Command check_bealert im Nagios sieht wie folgt aus:
Dann noch ein entsprechender Dienst srv_bealert und den/die Backup Exec Server zuweisen:
Nach Abspeichern der Konfig und Neustart vom Nagios Daemon sollte am entsprechenden Server nun der Backup Exec Status überwacht werden: