SNMP based monitors and numeric expressions workaround


Operations Manager allows creating monitors based on either SNMP traps received or the data returned from an OID probe poll. Monitors of that type may be created using the OpsMgr Operations Console. David published a step-by-step guide on how to create a simple SNMP probe based monitor. The procedure for SNMP traps is quite similar. Unfortunately the monitors created by the wizards will not work correctly with numeric expressions (Greater than / Less than etc.). The logic will treat any value received from an SNMP network device as string.

  • Create the monitors as usual, using the wizards from OpsMgr’s autoring pane.
  • Export the management pack and open it in your favourite XML editor
  • Look for both <FirstExpression> and <SecondExpression>of the SNMP monitors. They will have a datasource type of ‘System.SnmpProbe.2SingleEvent2StateMonitorType‘ or ‘System.SnmpTrapProvider.2SingleEvent2StateMonitorType’.
  • Change <XPathQuery Type=”String> and <Value Type=”String> (four times in total). Replace “String” with one of the following values. Make sure you choose a datatype which will work with your data:
    • Boolean
    • Integer
    • UnsignedInteger
    • Double
    • Duration
    • DateTime
  • Reimport your management pack

The following expression will work correctly with SNMP probe and trap driven monitors:

 <XPathQuery Type=”Integer>/DataItem/SnmpVarBinds/SnmpVarBind[1]/Value</XPathQuery>
 <Value Type=”Integer>45</Value>

SNMP only HP ProLiant Hardware Management Pack


It is relatively simple to monitor the hardware status of your ProLiant servers with Operations Manager. HP  has a free management pack (HP ProLiant Management Pack for System Center Operations Manager 2007), that discovers and monitors them. However; if your ProLiant servers happen to have a different OS than Windows installed, it will not not work since the management pack relies on having both HP Management Agent and OpsMgr Agent installed on the servers.

In particular I was looking for a way to include the hardware status of our VMware ESX 3 servers as seamlessly as possible into OpsMgr. The VMware ESX server is running a RedHat Enterprise Linux 3 and HP does provide a specifically adapted Management Agent for it (HP Management Agents for VMware ESX Server). That allows accessing hardware information about the server using SNMP queries.

Management Pack

My own management pack relies entirely on SNMP OID queries to discover the ProLiant servers and will alert if any degraded component is found. It does reuse class definitions from HP’s management pack so you will need to have them loaded on your OpsMgr system as well.

Download HP ProLiant SNMP only MP Guide

Download HP ProLiant SNMP only MP V1.0.0.71 (sealed & XML)(rename after downloading – it is a zip file)

I am including the XML formatted management pack as an example on how to do SNMP discoveries and OID monitoring. More details about the discovery here: SNMP Discovery Provider

  • Make sure you have HP’s management packs in place
  • Import the two MPs included in the zip file
  • Configure the SNMP stack of the non-windows ProLiants to allow access from the OpsMgr server or gateway that is going to act as SNMP proxy.
  • Discover the ProLiant servers as SNMP Network Devices

  Screen Shot

VMware ESX 3.5 server installed on an HP ProLiant DL 360 G5