[EMAIL PROTECTED] wrote:
hi friends ,

 Is it possible to send the name of the interface as an argument to the
perl script we call in TRAPHANDLE  command??

 I have something like this in my snmptrapd.conf file and it works fine .

traphandle IF-MIB::linkDown         /home/rchand/mail/sendmail.pl down

But i also like to know which interface caused this trap as i recieve traps
from multiple interface...

The index of the interface is available in the trap and is passed to your trap handler by snmptrapd. Snmptrapd passes the following to your script:


hostname
ip address
uptime
trapname / OID
enterprise variables (one per line)
ip address from trap agent
trap community string
enterprise

The above are passed as variable name [space] variable value pairs, except for the first two.

If you parse the enterprise variables, you will be able to find the interface index number. You will then need to retrieve the actual interface text name from the router or device using an snmpget in your script.

For example, the following is a linkDown trap (using numeric OIDs - snmptrapd was running with the -On switch).

router01
192.168.1.1
.1.3.6.1.2.1.1.3.0 31:18:27:02.00
.1.3.6.1.6.3.1.1.4.1.0 .1.3.6.1.6.3.1.1.5.3
.1.3.6.1.2.1.2.2.1.1.3 3
.1.3.6.1.2.1.2.2.1.7.3 2
.1.3.6.1.2.1.2.2.1.8.3 3

(Note: The above example is missing the ip address, community string and enterprise which is usually the last three lines.)

You want to look at these three lines, which are the 'enterprise variables':

.1.3.6.1.2.1.2.2.1.1.3 3
.1.3.6.1.2.1.2.2.1.7.3 2
.1.3.6.1.2.1.2.2.1.8.3 3

If you look in IF-MIB.txt, you will see under 'linkDown NOTIFICATION-TYPE':

OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }

The three objects above are the three variables that are passed, which you see above. ifIndex has a value of 3, ifAdminStatus is 2 and ifOperStatus is 3.

If I had run snmptrapd without the -On, it would have been:

.
.
IF-MIB::ifIndex.3 3
IF-MIB::ifAdminStatus.3 2
IF-MIB::ifOperStatus.3 3
.
.

which is easier to read..

To get the name of the interface on a (Cisco) router for the above, you would something like:

snmpget -v 1 -c public router01 .1.3.6.1.2.1.2.2.1.2.index

for example:

snmpget -v 1 -c public router01 .1.3.6.1.2.1.2.2.1.2.3
IF-MIB::ifDescr.1 = STRING: FastEthernet0/3

The tutorial should also help:

http://www.net-snmp.org/tutorial/tutorial-5/commands/snmptrap.html

Alex



-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to