Thought others might like to have this ... We wrote a pretty simple Netcool SNMP rule file that can be included in your SNMP probe for accepting traps from NPM. It's generic which allows you to control what is sent from NPM via the Custom Alerts tool in NPM (no mods needed to probe).
In your custom alerts create a new alert and have your trigger and clear events send SNMP traps. Use these fields in your AlertMessage separated by an ampersand.
# Severity (CRITICAL, MAJOR, MINOR)
# Type (SET, CLEAR, INFO)
# AlertGroup
# AlertKey
# Summary
# Here is an example of one:
For example: MAJOR&SET&High Transmit Percent Utilization&${NetObjectName}&The transmit utilization for the interface ${NetObjectName} has exceed a threshold!
For Node issues, the device with issues will be the @Node in Omnibus and the IP address of the device will be the @AlertKey
For Interfaces, the device on which the interface exists will be the @Node in Omnibus and the @AlertKey will be the interface with the issue.
Hope someone else can use this also! Feel free to provide more ideas!
-------- solarwinds.include.snmptrap.rules --------
case ".1.3.6.1.4.1.11307": ### Solarwinds Rules switch($specific-trap) { case "10": ### - Solarwinds Trap $OID = $1 $Hostname = $2 $IPAddress = $3 $NodeID = $4 $InterfaceName = $5 $DeviceType = $6 $DeviceID = $7 $AlarmText = $8 $SummaryText = $9 @Agent = "SOLARWINDS-TRAPS-MIB" @AlertGroup = "Solarwinds Performance Management" $Severity = extract($AlarmText, "([^&]+)&[^&]+&[^&]+&[^&]+&[^&]+") $Type = extract($AlarmText, "[^&]+&([^&]+)&[^&]+&[^&]+&[^&]+") $AlertGroup = extract($AlarmText, "[^&]+&[^&]+&([^&]+)&[^&]+&[^&]+") $AlertKey = extract($AlarmText, "[^&]+&[^&]+&[^&]+&([^&]+)&[^&]+") $Summary = extract($AlarmText, "[^&]+&[^&]+&[^&]+&[^&]+&([^&]+)") $ONPMServer = @Node @Node = $Hostname @AlertGroup = $AlertGroup @AlertKey = $AlertKey @Summary = $Summary ## Setting the URL for getting directly to this device/interface in Solarwinds # if (match($6, "Interface")) { @URL = "http://" + $ONPMServer + "/Orion/NetPerfMon/InterfaceDetails.aspx?NetObject=I:" + $DeviceID } else if (match($6, "Node")) { @URL = "http://" + $ONPMServer + "/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N:" + $DeviceID } ## Setup the severity # if (match($Severity, "CRITICAL")) { @Severity = 5 } else if (match($Severity, "MAJOR")) { @Severity = 4 } else if (match($Severity, "MINOR")) { @Severity = 3 } else { @Severity = 2 } ## Setup the type # if (match($Type, "SET")) { @Type = 1 } else if (match($Type, "CLEAR")) { @Type = 2 } else if (match($Type, "INFO")) { @Type = 13 } else { @Type = 0 } @Identifier = @Node + " " + @AlertKey + " " + @AlertGroup + " " + @Type + " " + @Agent + " " + @Manager + " " + $specific-trap details($*) default: details($*) }log(DEBUG, "<<<<< Leaving... solarwinds.include.snmptrap.rules >>>>>")