WMI-Performance-Messung und Meldung

14/11/2007 - 15:36 von kornkreismacher | Report spam
Hallo, ich überwache momentan einen WinXP Prof Rechner mit der Software
WhatsUp Gold 11 Premium.

Ich würde gerne die Performance Counter Daten von WMI für die RAM und CPU
Auslastung überwachen. Mein Problem liegt nur darin, dass ich quasi nur die
aktuellen Spitzenwerte überwachen kann. Also wenn der Rechner mit dem Skript
abgefragt wird, bekomme ich nur den aktuellen Wert zurück. Ich würde also
gerne einen Zeitraum von circa 10-30 Sekunden überwachen. Wenn in diesem
Zeitraum die CPU-Auslastung oder der RAM-Speicher nicht lànger als 50% der
Zeit unter 50% eines Schwellenwerts liegt, sage ich dem Programm, dass alles
OK ist. Vielleicht hat auch jm eine andere Lösung, wie man den RAM oder die
CPU Last gut messen kann????

Mein Skript sieht folgendermaßen aus (so funktioniert es auch - liefert mir
aber nicht mein gewünschtes Ergebnis!):
='Sending log message to the WhatsUp Event Viewer
Context.LogMessage "Checking Address=" & Context.GetProperty("Address")

'Set the result code of the check (0=Success, 1=Error)
Context.SetResult 0, "No error"

' PC1 mit Arbeitsspeicher: 256MB
' Schwellenwert im folgenden angeben [MByte]
Const WARNING_THRESHOLD = 25

On Error Resume Next

Set objLocator = CreateObject( "WbemScripting.SWbemLocator" )
Set objWMIService = objLocator.ConnectServer (
Context.GetProperty("Address"), "root/cimv2",
Context.GetProperty("CredWindows:DomainAndUserid") ,
Context.GetProperty("CredWindows:Password") )
objWMIService.Security_.impersonationlevel = 3

Set RAMWert = objWMIService.ExecQuery ("Select * from
Win32_PerfRawData_PerfOS_Memory")
For Each objRAM in RAMWert
FreierRAM = objRAM.AvailableMBytes
Context.LogMessage "Freier RAM: " & FreierRAM & "MBYte"
If FreierRAM < WARNING_THRESHOLD Then
Context.SetResult 1, "Zur Zeit steht weniger als " &
WARNING_THRESHOLD & "MByte freier RAM zur Verfügung!"
End If
Next
If FreierRAM > WARNING_THRESHOLD Then
Context.SetResult 0, "Es stehen mehr als " & WARNING_THRESHOLD & "MByte
freier RAM zur Verfügung - alles in Ordnung!"
End If
 

Lesen sie die antworten

#1 Regi de Ur
14/11/2007 - 17:46 | Warnen spam
The kornkreismacher asked:
Ich würde gerne die Performance Counter Daten von WMI für die RAM und
CPU Auslastung überwachen. Mein Problem liegt nur darin, dass ich
quasi nur die aktuellen Spitzenwerte überwachen kann. Also wenn der
Rechner mit dem Skript abgefragt wird, bekomme ich nur den aktuellen
Wert zurück. Ich würde also gerne einen Zeitraum von circa 10-30
Sekunden überwachen. Wenn in diesem Zeitraum die CPU-Auslastung oder
der RAM-Speicher nicht lànger als 50% der Zeit unter 50% eines
Schwellenwerts liegt, sage ich dem Programm, dass alles OK ist.
Vielleicht hat auch jm eine andere Lösung, wie man den RAM oder die
CPU Last gut messen kann????

Mein Skript sieht folgendermaßen aus (so funktioniert es auch -
liefert mir aber nicht mein gewünschtes Ergebnis!):


[snipping a horrible formatted script]

why you shouldn't use the SWbemRefresher object? Note: This object is
not available with Windows 2000, Windows NT 4.0, and Windows Me/98/95:

Monitor Memory Performance:
http://www.microsoft.com/technet/sc...ovb04.mspx
Win32_PerfFormattedData_PerfOS_Memory Class (Windows):
http://msdn2.microsoft.com/en-us/li...93838.aspx
SWbemRefresher Object (Windows):
http://msdn2.microsoft.com/en-us/li...94268.aspx

bye-bye
Regi

Ähnliche fragen