NET-SNMP 发送接受并处理SNMP Trap/Notification

NET-SNMP 提供了两个工具来发送和接收trap,

* 用NET-SNMP如何发送trap?

snmptrap 发送trap,具体用法:

 

snmptrap -v 1 -c public -d localhost enterprise-oid agent trap-type specific-type uptime [OID TYPE VALUE]

 

agnet : 发送方地址

trap-type : 0 , coldstart; 1, warstart;2, linkdown; 3, linkup; 4,authentication failure;5,neighbor loss,6,enterprise specific.

               

具体例子:

 

snmptrap -v 1 -c public -d localhost DAP-2590-v111:dap2590 192.168.0.25 1 0 DAP-2590-v111:wirelessLanIfDesc
 s mytest

 

 

* 用NET-SNMP如何捕捉trap?
 ** 怎样让net-snmp收到trap?
  C:/Program Files/Net-SNMP/usr/bin>snmptrapd -f -Le -d
 执行之后NET-SNMP开始接收trap,注意这是debug模式,会将收到的trap包内容打印出。

 ** 碰到错误couldn't open udp:162 -- errno 2 ("No such file or directory")?
  碰到此错误很可能是有程序占用了windows的SNMP接受端口(162)。用下面命令来找出占用此端口的进程。
  netstat -ano|find "162"
  如果有输出则最后一个数字是进程号。从微软免费下一个Process Explorer,找出占用该端口的进程,决定是否停掉。

  ** 碰到错误 Warning: no access control information configured. This receiver will *NOT* accept any incoming notifications.
  没有设定访问控制的情况下NET-SNMP对所有的进入trap都丢掉。因为一个snmp manager可能收到大量的trap而其中只有一小部分是真正需要处理的。具体设置可以通过net-snmp安装目录下的bin/snmpconf.bat来实现(用此方法需要保证计算机上已安装ActivePerl);或者参照docs/Net-SNMP.chm->configuratoin->snmptrapd.conf->Access Control中的描述来手工修改。

 **举例,最简单的设定的步骤(对所有的都不丢):
 1.建一个snmptrapd.conf并在此文件中加入下面这行配置。
  disableAuthorization yes
  2. 在运行snmptrapd的时候加入读取配置文件的参数。e.g.
  C:/Program Files/Net-SNMP/usr/bin>snmptrapd -c "C:/Program Files/Net-SNMP/usr/bin/snmptrapd.conf" -f -Le -d
 现在收到trap之后,会发现消息已经被尽可能地解开。

* 如何调用其他windows程序来处理net-snmp捕捉到的trap?
  1.在上面生成的文件中,加入下面配置
 traphandle  default <program>

**举例:

编写下面批处理文件test.bat:
@echo off
echo. >> c:/temp/log.txt
echo %date% %time% >> c:/temp/log.txt

set /P host=%=%
set /P ip=%=%
set /P oid=%=%
set /P val=%=%
echo TRAP: host=%host%; ip=%ip%; %oid% = %val%; >> c:/temp/log.txt
然后在snmptrapd.conf中加入
traphandle default c:/temp/test.bat
那么net-snmp在收到trap时会执行test.bat,打开c:/temp/log.txt会发现有记录在内

 

参考地址:http://blog.csdn.net/vastsmile/archive/2009/09/09/4535128.aspx   

你可能感兴趣的:(c,windows,Date,manager,Authentication,Access)