Patch for auto-acknowledgement of threshold events

Description

The current implementation of auto acknowledgements matches an event against
nodeid, serviceid and interfaceid. This is not sufficient for threshold
acknoledgements. The submitted patch allows to set more parameters.
The patch is against 1.2.5.
I am not completely happy with the resulting sql query - LIKE %blah% is ugly,
but I had no idea how to do it better.
Please note that this patch includes also patches #1380 and #1160.
The definition in notifd-configuration.xml look like:
<auto-acknowledge resolution-prefix="RESOLVED: "
uei="uei.opennms.org/threshold/highThresholdRearmed"
acknowledge="uei.opennms.org/threshold/highThresho
ldExceeded">
<match>nodeid</match>
<match>interfaceid</match>
<match>serviceid</match>
<match>ds</match>
</auto-acknowledge>
<auto-acknowledge resolution-prefix="RESOLVED: "
uei="uei.opennms.org/threshold/lowThresholdRearmed"
acknowledge="uei.opennms.org/threshold/lowThreshold
Exceeded">
<match>nodeid</match>
<match>interfaceid</match>
<match>serviceid</match>
<match>ds</match>
</auto-acknowledge>

Environment

Operating System: All Platform: PC

Acceptance / Success Criteria

None

Attachments

2

Lucidchart Diagrams

Activity

Show:

Alejandro Galue April 29, 2014 at 2:51 PM

The new enhancements committed on master on revision 305bc744e69e684878a2c0bf522177cd9dd7c9c4 should address this feature.

Alejandro Galue February 13, 2014 at 1:19 PM

Check my last comment on that should help for any kind of events (not only traps).

If you like the solution vote for it

Wiktor Wodecki April 7, 2010 at 3:55 AM

Is there any change of seeing this included in 1.8?
We are also making heavy use of threshold auto acknowledgements and in order to achive this we have standalone script which manipulates the database directly. Quite ugly, but it serves our purpose.

Tilman Kastner May 1, 2008 at 1:28 PM

Hmm, guess there's another problem. When I wrote the patch back in 2005, I thought ds-name would be sufficient to match a particular threshold event.
But with arbitrary indexes this is no longer the case.

For example:

I added three more fields to net-snmp-disk:

<group name="net-snmp-disk" ifType="all">
<mibObj oid=".1.3.6.1.4.1.2021.9.1.2" instance="dskIndex" alias="ns-dskPath" type="string" />
<mibObj oid=".1.3.6.1.4.1.2021.9.1.6" instance="dskIndex" alias="ns-dskTotal" type="gauge" />
<mibObj oid=".1.3.6.1.4.1.2021.9.1.7" instance="dskIndex" alias="ns-dskAvail" type="gauge" />
<mibObj oid=".1.3.6.1.4.1.2021.9.1.8" instance="dskIndex" alias="ns-dskUsed" type="gauge" />
<mibObj oid=".1.3.6.1.4.1.2021.9.1.9" instance="dskIndex" alias="ns-dskPercent" type="gauge" />
<!-- abian -->
<mibObj oid=".1.3.6.1.4.1.2021.9.1.5" instance="dskIndex" alias="ns-dskMinp" type="integer"/>
<mibObj oid=".1.3.6.1.4.1.2021.9.1.100" instance="dskIndex" alias="ns-dskErr" type="integer"/>
<mibObj oid=".1.3.6.1.4.1.2021.9.1.101" instance="dskIndex" alias="ns-dskEStr" type="string"/>
<!-- /abian -->
</group>

and created an threshold for this:

<threshold type="high" ds-name="ns-dskErr" ds-type="dskIndex" ds-label="ns-dskEStr" value="1" rearm="0" trigger="3"/>

As soon as an admin puts a "disk /bla xx%" - line in snmpd.conf, events are generated:

High threshold exceeded for SNMP datasource ns-dskErr on interface 10.0.0.9, parms: ds="ns-dskErr" value="1.0" threshold="1.0" trigger="3" rearm="0.0" label="/srv/nfs08: less than 15% free (= 89%)" ifIndex="2"

Very nice and fancy, our admins love these

But how would one match this threshold event for auto-acknowledgement?
Somehow, I would need to match not only ds-name, but ds-name[dskIndex]

Benjamin Reed September 7, 2007 at 5:09 PM

OK for 1.8, tarus? or should we push this to 2.0?

Fixed

Details

Assignee

Reporter

Components

Fix versions

Affects versions

Priority

PagerDuty

Created November 15, 2005 at 12:01 PM
Updated January 27, 2017 at 4:30 PM
Resolved April 29, 2014 at 2:51 PM