Wondering how to send test SNMP trap in Nagios? We can help you.
As a part of our Server Management Services, we help our customers handle Nagios-related requests regularly.
Let us today discuss the methods to send a trap to Nagios server to test SNMP Trap functionality.
How to measure Uptime while we send test SNMP trap in Nagios
When we send a trap, it must of course conform to a set of standards. The common option is uptime.
Every trap needs an uptime value. Uptime is how long the system has been running since boot. Sometimes this is the operating system, other devices might use the SNMP engine uptime. Regardless, a value will be sent.
Supplying no value by using two single quotes ” will instruct the command to obtain the value from the operating system we are executing this on.
For those who look at the spooled trap before it is processed will want to understand what type of format it is. Here is an example:
DISMAN-EVENT-MIB::sysUpTimeInstance 36:2:40:51.67
This equates to 36 days, 2 hours, 40 minutes and 51.67 seconds.
SNMP v2 Trap
The command below takes the form of:
snmptrap -v <snmp_version> -c <community> <destination_host> <uptime> <OID_or_MIB> <object> <value_type> <value>
Using a MIB:
snmptrap -v 2c -c public localhost '' NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456
Shortening the MIB:
snmptrap -v 2c -c public localhost '' netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456
Using OID’s instead of MIB:
snmptrap -v 2c -c public localhost '' 1.3.6.1.4.1.8072.2.3.0.1 1.3.6.1.4.1.8072.2.3.2.1 i 123456
The commands above required the following settings in /etc/snmp/snmptrapd.conf:
disableAuthorization yes
traphandle default /usr/sbin/snmptthandler
SNMP v3 Trap
The command below takes the form of:
snmptrap -v <snmp_version> -e <engine_id> -u <security_username> -a <authentication_protocal> -A <authentication_protocal_pass_phrase> -x <privacy_protocol> -X <privacy_protocol_pass_phrase> <destination_host> <uptime> <OID_or_MIB> <object> <value_type> <value>
Using a MIB:
snmptrap -v 3 -e 0x090807060504030201 -u the_user_name -a SHA -A the_SHA_string -x AES -X the_AES_string localhost '' NET-SNMP-EXAMPLES-MIB::netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456
Shortening the MIB:
snmptrap -v 3 -e 0x090807060504030201 -u the_user_name -a SHA -A the_SHA_string -x AES -X the_AES_string localhost '' netSnmpExampleHeartbeatNotification netSnmpExampleHeartbeatRate i 123456
Using OID’s instead of MIB:
snmptrap -v 3 -e 0x090807060504030201 -u the_user_name -a SHA -A the_SHA_string -x AES -X the_AES_string localhost '' 1.3.6.1.4.1.8072.2.3.0.1 1.3.6.1.4.1.8072.2.3.2.1 i 123456
The commands above required the following settings in /etc/snmp/snmptrapd.conf:
disableAuthorization yes
traphandle default /usr/sbin/snmptthandler
createUser -e 0x090807060504030201 the_user_name SHA the_SHA_string AES the_AES_string
authUser log,execute,net the_user_name
SNMP Trap Definition
The following trap definition can be placed in /etc/snmp/snmptt.conf which will allow the test traps sent above to be passed through to Nagios:
EVENT netSnmpExampleHeartbeatRate .1.3.6.1.4.1.8072.2.3.0.1 "netSnmpExampleHeartbeatRate" Normal
FORMAT SNMP netSnmpExampleHeartbeatRate
EXEC /usr/local/bin/snmptraphandling.py "$r" "SNMP Traps" "$s" "$@" "" "netSnmpExampleHeartbeatRate"
Trap vs Inform
TRAP
A TRAP is a SNMP message sent from one application to another (which is typically on a remote host). Their purpose is merely to notify the other application that something has happened, has been noticed, etc. The big problem with TRAPs is that they are unacknowledged. So we do not actually know if the remote application received our important message to it.
INFORM
SNMPv2 PDUs fixed this by introducing the notion of an INFORM, which is nothing more than an acknowledged TRAP. That is, when the remote application receives the INFORM, it sends back a “I got it” message. This is nice because then the person sending the traps can keep trying until the trap gets through.
All of the commands above can be changed from snmptrap to snmpinform which will allow to send a test inform.
[Need any further assistance with Nagios? – We’re available 24*7]
Conclusion
In short, when troubleshooting an SNMP Trap issue, it can be very helpful to remove the actual device that could be causing problems and use the snmptrap command instead. Today, we discussed some of the methods that our Support Engineers follow to send a trap to Nagios server to test SNMP Trap functionality.
0 Comments