SCOM Monitor für externes String-Skript

Häufig bekommt man vorgefertigte Skripte, die in das SCOM-Monitoring eingebunden werden sollen. Ein Two-State-VBScript-Monitor erhält von einer Batch-Datei Statusmeldungen als String über StdOut übergeben.

Vorzugsweise sollte so eine Batch Datei den String „OK“ (Healthy) oder einen String mit Fehlermeldung „Fehler XYZ aufgetreten“ (Unhealthy) zurückgeben. Diese Rückgabe eines String über StdOut wird als Parameter status via PropertyBag des SCOM-Monitors zu einem Healthy/Unhealthy-Status verarbeitet und entsprechend eskaliert.
In diesem Beispiel-Script wird zusätzlich geprüft, ob die externe Datei existiert und im Fehlerfall eine entsprechende Nachricht an die PropertyBag übergeben.

Hier das im SCOM-Monitor eingebundene VBScript mit der PropertyBag:

'SCOM-Monitorscript fuer Aufruf externes String-Script
Dim oAPI, oBag, objShell, objExec, fso, line, s

Const FileName = "c:\meinebatch.bat“

Set oAPI = CreateObject("MOM.ScriptAPI“)

Set fso = CreateObject("Scripting.FileSystemObject“)

If (fso.FileExists(FileName)) Then

    Set objShell = WScript.CreateObject("WScript.Shell“)

    Set objExec = objShell.Exec(FileName)

    Doline = objExec.StdOut.ReadLine()

        s = s & lineLoop While Not objExec.Stdout.atEndOfStream

Else

    s = "File “ & FileName & “ does not exist“

End If
Set oBag = oAPI.CreatePropertyBag()

Call oBag.AddValue("status“,s)

Call oAPI.Return(oBag)

 

Programmbeschreibung zeilenweise
1 Definition der Variablen
2 Definition Stringkonstante für das aufzurufende externe Programm. Es muss der absolute Pfad und Dateiname angegeben werden.
3 Zuweisen Objekt MOM.ScriptAPI für die PropertyBag zur Übergabe von Parametern an den SCOM-Monitor.
4 Zuweisen FileSystemObject für die Methode FileExists
5 Bedingung mit FileExists, wenn auszuführendes externes Programm existiert, dann …bis Zeile 12 folgenden Code ausführen.
6 Objektdefinition WScript.Shell
7 Auf das Objekt WScript.Shell die Methode Exec mit dem Parameter „externes Programm“ anwenden.
8 Loop, fußgesteuerte Schleife bis 11
9 Die aktuelle Zeile von StdOut wird gelesen und der Variable line zugewiesen.
10 Die aktuelle Zeile wird ohne(!) Zeilenvorschub der Variable s für den gesamten Output hinzugefügt.
11 Ende der fußgesteuerten Schleife wenn EndOfLine in StdOut erreicht ist.
12 Wenn externes Programm nicht vorhanden ist … bis Zeile 14
13 Fehlermeldung der Variable s zuweisen
14 End If
15 Erzeugen einer PropertyBag
16 Zuweisen (Add) des Ergebnis von s zum Parameter „status“ in der PropertyBag
17 Return zum SCOM mit PropertyBag im „Schlepptau“
TheCloudOnAWall

The Cloud will watch You! – Wand am S-Bahnhof „Düsseldorf-Derendorf“

 

 

 

 

 

 

 

 

 

 

 

 


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.