Setting the severity of SNMP Trap PDU events in OpenNMS

In VT60x SNMP Trap PDU is linked to an event dynamically, through the action THEN logic. Therefore, to determine the severity until the creation of the SNMP Trap element and its binding to the logic circuit is impossible.

The body of the SNMP Trap PDU transmitted variables:

  • Trap ID 

  • text string like:

"Trap (name: <TrapName>, ID: <TrapID>) was worked. Time: <Time> Logic: <LogicName>, Sensor: <ElementName>, in state: <ElementState>, value: <ElementValue>"

where

  • TrapName - SNMP Trap name;

  • TrapID - ID of SNMP Trap;

  • Time - logic response time;

  • LogicName - triggered logic name;

  • ElementName - element name, which state changing has led to triggered logic;

  • ElementState - state of the element when triggered logic;

  • ElementValue - altered state element valuu when triggered logic;

Thus to determine the severity of Trap PDU can be, for example,:

1) by trap ID, ie tie events with different severity to the trap with different ID

2) by state of the field in the row Trap PDU (see above)

To add an SNMP Trap PDUevent handler proceed as follows:

1) Create event file SNMP Trap PDU in $ONMS/etc/events:

Vutlan.events.xml
<events xmlns="http://xmlns.opennms.org/xsd/eventconf"> <event> <mask> <maskelement> <mename>id</mename> <mevalue>.1.3.6.1.4.1.39052.1</mevalue> </maskelement> <maskelement> <mename>generic</mename> <mevalue>6</mevalue> </maskelement> <maskelement> <mename>specific</mename> <mevalue>5</mevalue> </maskelement> <varbind> <!-- for filtering by ID of SNMP Trap element <vbnumber>1</vbnumber> <vbvalue>1011</vbvalue> --> <!-- for filtering by state of triggered element--> <vbnumber>2</vbnumber> <vbvalue>~(.*)'warning'(.*)</vbvalue> <vbvalue>~(.*)'not connected'(.*)</vbvalue> <vbvalue>~(.*)'off'(.*)</vbvalue> <vbvalue>~(.*)'on'(.*)</vbvalue> </varbind> </mask> <uei>uei.opennms.org/vendor/vutlan/traps/ctlUnitTrapNotification</uei> <event-label>VUTLAN-MIB defined trap event: ctlUnitTrapNotification</event-label> <descr> <![CDATA[ <p>Vutlan EMS device trap received: %parm[#2]% </p> ]]> </descr> <logmsg dest='logndisplay'> <![CDATA[ <p>Trap ID: %parm[#1]% </p> <p>Vutlan EMS device trap received: %parm[#2]% </p> ]]> </logmsg> <severity>Warning</severity> </event> <event> <mask> <maskelement> <mename>id</mename> <mevalue>.1.3.6.1.4.1.39052.1</mevalue> </maskelement> <maskelement> <mename>generic</mename> <mevalue>6</mevalue> </maskelement> <maskelement> <mename>specific</mename> <mevalue>5</mevalue> </maskelement> <varbind> <vbnumber>2</vbnumber> <vbvalue>~(.*)'alarm'(.*)</vbvalue> </varbind> </mask> <uei>uei.opennms.org/vendor/VUTLAN/traps/ctlUnitTrapNotification</uei> <event-label>VUTLAN-MIB defined trap event: ctlUnitTrapNotification</event-label> <descr> <![CDATA[ <p>Vutlan EMS device trap received: %parm[#2]% </p> ]]> </descr> <logmsg dest='logndisplay'> <![CDATA[ <p>Trap ID: %parm[#1]% </p> <p>Vutlan EMS device trap received: %parm[#2]% </p> ]]> </logmsg> <severity>Critical</severity> </event> <event> <mask> <maskelement> <mename>id</mename> <mevalue>.1.3.6.1.4.1.39052.1</mevalue> </maskelement> <maskelement> <mename>generic</mename> <mevalue>6</mevalue> </maskelement> <maskelement> <mename>specific</mename> <mevalue>5</mevalue> </maskelement> <varbind> <vbnumber>2</vbnumber> <vbvalue>~(.*)'normal'(.*)</vbvalue> </varbind> </mask> <uei>uei.opennms.org/vendor/VUTLAN/traps/ctlUnitTrapNotification</uei> <event-label>VUTLAN-MIB defined trap event: ctlUnitTrapNotification</event-label> <descr> <![CDATA[ <p>Vutlan EMS device trap received: %parm[#2]% </p> ]]> </descr> <logmsg dest='logndisplay'> <![CDATA[ <p>Trap ID: %parm[#1]% </p> <p>Vutlan EMS device trap received: %parm[#2]% </p> ]]> </logmsg> <severity>Normal</severity> </event> </events>

2) attach this file to the OpenNMS events configuration:

eventconf.xml
.. <event-file>events/Vutlan.events.xml</event-file> ..



Vytlan.events.xml file contains three node events with different settings of the filter mask, which is applied to the variables SNMP Trap PDU. Each section has its own severity.
Filter by Trap ID can be implemented as follows::

eventconf.xml

ie in this case, the event will only handle the element Trap PDU with ID = 1011.

Also, you can filter the regular expression to a string parameter

eventconf.xml

in this case, the event will handle the events only if the substring 'warning' is in the string variable Trap PDU

By the regular expression can be implemented filters by predefined name elements, logic, etc.