Whatsup Vmware ESXi monitor

–These directions assume some whatsup knowledge.
–ESXi does not support SNMP gets, only TRAPS.


  • Install Python 2.6.x
  • Install pywbem
  • Download check_esx_wbem.py put it into c:\python26
  • In Whatsup create new windows credentials, for the domain use esx. For example use esx\root for the username and the input the password.
  • On the node make sure that its configured to use those credentials.
  • Create a new active script monitor and paste the code below.
  • Assign the active script monitor to your node and your all set.

I didn’t write the python script, if you have any problem please first test the python script from the command line. You have to use the windows installer for pywbem the latest version has a dependency that does not work in windows.

I have tested the script on IBM servers. Please let me know if you make any modifications to the script i would love to see them.

'Wbem ESX Monitor

Context.SetResult 0, "No Error"

sysAddress = Context.GetProperty("Address")
sysAdminUser = Context.GetProperty("CredWindows:DomainAndUserid")
sysAdminPass = Context.GetProperty("CredWindows:Password")
sysAdminUser = replace(sysAdminUser,"esx\","")
sysAddress = "https://" & sysAddress & ":5989"

esxcheck = "c:\python26\check_esx_wbem.py"

Set objShell = CreateObject("Wscript.Shell")
command = "python " & esxcheck & " " & sysAddress & " " &  sysAdminUser & " " & sysAdminPass
returncode = objShell.run(command ,0 , True)

Select Case returncode
 Case 0
  context.SetResult 0, "OK! Return Code:" & returncode
 Case 1
  context.SetREsult 1, "Warning!! Return Code:" & returncode
 Case 2
  context.SetResult 1,  "Critical!!! Return Code:" & returncode
 Case 3
  context.SetResult 1,  "Unknown!!! Return Code:" & returncode
End select

Here is my ClassesToCheck block, I added Fan and power supply.

# define classes to check 'OperationStatus' instance
ClassesToCheck = [

3 thoughts on “Whatsup Vmware ESXi monitor”

  1. Hey Stephen, great work on the wrapper! Just wanted to let you know I've modified it fairly heavily to return the result code + the actual text of the results.

    Eg instead of just saying the monitor is down I'll get "Warning!! Return Code: WARNING: System Board 1 PS Redundancy 0

    I'd love to share the code with you but I don't know if you just want me to try and post in the comments or not. Let me know.


  2. Hello,

    Just to add an important remark.
    The script run successfully only on the Python 2.6.5 and pywbem 0.5.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.