UPS-MIB
Subscribe

From OpenNMS

Jump to: navigation, search

HOWTO: Monitoring UPS with Standard UPS-MIB using OpenNMS

Any UPS which supports the UPS-MIB can be monitored with the OpenNMS SNMP-Monitor. The following configuration assume the UPS-MIB is supported.

 upsBatteryStatus    .1.3.6.1.2.1.33.1.2.1.0
 upsSecondsOnBattery .1.3.6.1.2.1.33.1.2.2.0

Detecting with capsd

First of all you need a new service in your capsd-configuration. We use the generic SNMP-Monitor to detect devices with this supported MIBs.

$OPENNMS_HOME/etc/capsd-configuration.xml

 
  <!-- UPS Standard MIBs -->
  <protocol-plugin protocol="UPS-Battery-Status" class-name="org.opennms.netmgt.capsd.plugins.SnmpPlugin" scan="on">
      <property key="vbname" value=".1.3.6.1.2.1.33.1.2.1.0" />
      <property key="timeout" value="2000" />
      <property key="retry" value="1" />
  </protocol-plugin>
  <protocol-plugin protocol="UPS-Seconds-on-battery" class-name="org.opennms.netmgt.capsd.plugins.SnmpPlugin" scan="on">
      <property key="vbname" value=".1.3.6.1.2.1.33.1.2.2.0" />
      <property key="timeout" value="2000" />
      <property key="retry" value="1" />
  </protocol-plugin>
  

Next step start monitoring the OID values.

Monitoring with Pollerd

To monitor this OIDs you have to create some monitors in

 $OPENNMS_HOME/etc/poller-configuration.xml
 
  <!-- UPS Standard MIBs -->
  <service name="UPS-Battery-Status" interval="300000" user-defined="false" status="on">
      <parameter key="retry" value="5"/>
      <parameter key="timeout" value="5950"/>
      <parameter key="port" value="161"/>
      <parameter key="oid" value=".1.3.6.1.2.1.33.1.2.1.0"/>
      <parameter key="operator" value="="/>
      <parameter key="operand" value="2"/>
      <parameter key="reason-template" value="UPS battery status is not normal. \
        The state should be normal(${operand}) the observed value is ${observedValue}. \
        Please check your UPS event log. Syntax: unknown(1), batteryNormal(2), batteryLow(3), \
        batteryDepleted(4)"/>
  </service>
  <service name="UPS-Seconds-on-battery" interval="300000" user-defined="false" status="on">
      <parameter key="retry" value="5"/>
      <parameter key="timeout" value="5950"/>
      <parameter key="port" value="161"/>
      <parameter key="oid" value=".1.3.6.1.2.1.33.1.2.2.0"/>
      <parameter key="operator" value="="/>
      <parameter key="operand" value="0"/>
      <parameter key="reason-template" value="UPS battery since ${observedValue} seconds on battery. \
        The value should be ${operand}. Please check your UPS event log. Syntax: Seconds on battery."/>
  </service>
  
  <monitor service="UPS-Battery-Status" class-name="org.opennms.netmgt.poller.monitors.SnmpMonitor"/>
  <monitor service="UPS-Seconds-on-battery" class-name="org.opennms.netmgt.poller.monitors.SnmpMonitor"/>
  

The monitored values are interpreted as follow:

 upsBatteryStatus    .1.3.6.1.2.1.33.1.2.1.0
  • unknown(1)
  • batteryNormal(2) - UP
  • battteryLow(3)
  • batteryDepleted(4)
 upsSecondsOnBattery .1.3.6.1.2.1.33.1.2.2.0
  • seconds on battery should be 0 - UP