Hi,
Fairly new to Intermapper, have written a couple of other probes but am having
trouble with this one. Anyone's help or thoughts would be much appreciated.
I have the probe set up for a few windows servers, which it's monitoring fine
most of the time. The top message is from a successful probe, following a
failed probe 30 seconds earlier. The "Response time: XXX msec" in the
"Condition:" field I found interesting - the timeout for the probe is std 3sec
so it's not timing out.
I can run the script using cscript every 30secs outside of Intermapper and it
returns a value consistently.
This failure to return a value, and as such going into the warning state,
happens every 1-4 hours.
The VB script & probe are below the messages.
Cheers,
Ben.
==================================================================
Success Message
==================================================================
01/19 08:47:56: Message from InterMapper 5.0.6
Event: OK
Name: 192.168.10.20
Document: Disk Space
Address: 192.168.10.20
Probe Type: Windows FreeSpace
Condition: C: OK (22324MB)
==================================================================
Failure Message
==================================================================
01/19 08:47:31: Message from InterMapper 5.0.6
Event: Warning
Name: 192.168.10.20
Document: Disk Space
Address: 192.168.10.20
Probe Type: Windows FreeSpace
Condition: Response time: 2219 msec
==================================================================
Probe
==================================================================
<!--
Comand Line FreeSpace probe (com.testprobe.freespace)
-->
<header>
type="cmd-line"
package="com.testprobe"
probe_name="FreeSpace"
human_name="Windows FreeSpace"
version="1.1"
address_type="IP,AT"
</header>
<description>
\GB\FreeSpace\p\
This probe lets you test the free space of a Windows Share using a custom VB
script. It passes the IP address of the host ($ADDRESS) and the drive letter
($DRIVELETTER), along with warning, alarm and critical values, to a script
which attempts to access the drive and check for space.
This probe loads the VB script "wmi_freespace.vbs" from the "tools" folder
under "intermapper settings".
</description>
<parameters>
NUMBER_OF_DRIVES="1"
DRIVELETTER_1="C"
WARN_MB_1="2048"
ALARM_MB_1="1024"
CRITICAL_MB_1="512"
DRIVELETTER_2="D"
WARN_MB_2="0"
ALARM_MB_2="0"
CRITICAL_MB_2="0"
DRIVELETTER_3="E"
WARN_MB_3="0"
ALARM_MB_3="0"
CRITICAL_MB_3="0"
</parameters>
<command-line>
-- Empty path forces the InterMapper Settings:Tools directory
path=""
cmd="c:\windows\system32\cscript.exe -nologo "c:\program
files\intermapper\intermapper settings\tools\wmi_FreeSpace.vbs""
arg="${ADDRESS} ${NUMBER_OF_DRIVES} ${DRIVELETTER_1} ${WARN_MB_1} ${ALARM_MB_1}
${CRITICAL_MB_1} ${DRIVELETTER_2} ${WARN_MB_2} ${ALARM_MB_2} ${CRITICAL_MB_2}
${DRIVELETTER_3} ${WARN_MB_3} ${ALARM_MB_3} ${CRITICAL_MB_3}"
</command-line>
<command-data>
-- Currently unused.
</command-data>
<command-exit>
critical:${EXIT_CODE}=3
alarm:${EXIT_CODE}=2
warn:${EXIT_CODE}=1
okay:${EXIT_CODE}=0
</command-exit>
<output>
</output>
==================================================================
VB Script (wmi_freespace.vbs)
==================================================================
Set objArgs = WScript.Arguments
Dim strComputer
Dim intNumberOfDrives
Dim strDriveLetter(99)
Dim intWarn(99)
Dim intAlarm(99)
Dim intCritical(99)
Dim intFreeMB(99)
Dim intStatus(99)
Dim strStatus(99)
Dim intProbe
Dim strProbe
intProbe = 0
strComputer = objArgs(0)
intNumberOfDrives = objArgs(1)
Dim i,k
For i = 1 To intNumberOfDrives
k = (i * 4) - 2
strDriveLetter(i) = objArgs(k)
intWarn(i) = objArgs(k+1)
intAlarm(i) = objArgs(k+2)
intCritical(i) = objArgs(k+3)
Next
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &
strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk")
For Each objDisk In colDisks
For i = 1 To intNumberOfDrives
If Lcase(objDisk.DeviceID) = Lcase(strDriveLetter(i)) & ":" then
intFreeMB(i) = Round((objDisk.FreeSpace / 1024 / 1024),0)
If (intCritical(i) - intFreeMB(i))>0 Then
'strStatus(i) = strDriveLetter(i) & ": CRITICAL ("
& intFreeMB(i) & " MB free, Threshold was " & intCritical(i) & " MB)"
strStatus(i) = strDriveLetter(i) & ": CRITICAL (" &
intFreeMB(i) & "MB)"
If intProbe < 3 Then intProbe = 3
ElseIf (intAlarm(i) - intFreeMB(i))>0 then
'strStatus(i) = strDriveLetter(i) & ": ALARM (" &
intFreeMB(i) & " MB free, Threshold was " & intAlarm(i) & " MB)"
strStatus(i) = strDriveLetter(i) & ": ALARM (" &
intFreeMB(i) & "MB)"
If intProbe < 2 Then intProbe = 2
ElseIf (intWarn(i) - intFreeMB(i))>0 Then
'strStatus(i) = strDriveLetter(i) & ": WARN (" &
intFreeMB(i) & " MB free, Threshold was " & intWarn(i) & " MB)"
strStatus(i) = strDriveLetter(i) & ": WARN (" &
intFreeMB(i) & "MB)"
If intProbe < 1 Then intProbe = 1
Else
'strStatus(i) = strDriveLetter(i) & ": OK (" &
intFreeMB(i) & " MB free)"
strStatus(i) = strDriveLetter(i) & ": OK (" &
intFreeMB(i) & "MB)"
If intProbe < 0 Then intProbe = 0
End If
if strProbe = "" then strProbe = strStatus(i) Else
strProbe = strProbe & VbCrLf & strStatus(i)
End If
Next
Next
WScript.Echo(strProbe)
WScript.Quit(intProbe)
==================================================================
----
Unison uses e-mail as a fast and relatively informal means of communication.
The information transmitted in this e-mail is intended only for the person or
entity to which it is addressed, and may contain confidential and/or privileged
material. If in doubt as to the official status of a message, or if you want
formal confirmation, please ask the sender. We are not responsible for any
changes made to a message and/or any attachments after sending. If you have
received this in error please contact the sender and delete the material.
____________________________________________________________________
List archives:
http://www.mail-archive.com/intermapper-talk%40list.dartware.com/
To unsubscribe: send email to: [email protected]