用PYTHON捕获SNMP TRAP

用PYTHON捕获SNMP TRAP

Posted on  2004-10-16 12:17  流水 阅读(3534) 评论( 3编辑  收藏 

接触到pysnmp是因为项目中需要捕获一硬件设备发出来的snmp trap,并针对不同的event trap作出反应(声音告警、执行一些命令)。
pysnmp是“SNMP framework for Python”,可以让我们在Python的环境下捕获snmp trap,还有snmpset,snmpwalk,snmpget等。

pysnmp和pysnmp-apps的安装
pysnmp的安装就是解压出来的pysnmp目录放到c:\Python23\Lib\site-packages\
建议也下载pysnmp-apps-0.0.2.tar.gz,这个文件包括一些pysnmp的简单工具,相当于例程。将解压出来的pysnmpap目录放到c:\Python23\Lib\site-packages\

使用
pysnmp-apps-0.0.2.tar.gz里面有pysnmptrapd.py和pysnmptrap.py两个文件,一个收一个发。
用以下命令可以查看使用帮助:
# python pysnmptrapd.py -h
# python pysnmptrap.py -h

用以下命令接受snmp traps:
# python pysnmptrapd.py -f -o mysnmp.log  192.168.0.1:162
如果在Unix,不加-f就使pysnmptrapd.py以deamon的方式运行。因为是在Windows上执行,在Windows里pysnmptrapd.py无法用deamon方式运行,需要-f参数。-o mysnmp.log表示收到的snmp trap写到mysnmp.log这个文件。192.168.0.1是我运行pysnmptrapd.py的Windows机器的IP地址,162是接收snmp trap的udp端口。这些参数是针对我这个项目的环境的。
记得在设备上将snmp trap的destination地址设为192.168.0.1,这样就可以收到snmp traps了。

用以下命令发送snmp traps:
# python pysnmptrap.py 192.168.0.1:162 -c public .1.3.6.1.4.1.2.3.1.2.1.2 a 192.168.0.250 0 0
192.168.0.1:162是发送目标地址和端口,public是community,.1.3.6.1.4.1.2.3.1.2.1.2是enterprise-OID,a 192.168.0.250表示发送端地址(Agent Addr)是192.168.0.250,最后Generic Trap是0,Specific Trap也是0

对收到的snmp trap作出反应
用以下命令让pysnmptrapd.py收到snmp trap后调用myEventTrapHandler.py作出反应:
# python pysnmptrapd.py -f -o mysnmp.log  -p myEventTrapHandler.py 192.168.0.1:162

查看pysnmptrapd.py的代码就知道有哪些参数传递给myEventTrapHandler.py

我修改了pysnmptrapd.py,使传递的参数符合我的需要,也改变了pysnmptrapd.py的一些参数缺省值,使这些缺省值适合项目环境。

总结
使用过pysnmp之后,发现利用pysnmp捕获snmp trap并作出反应是很轻松的事。现在我的Python程序可以捕获snmp trap,针对不同的trap播放WAV文件告警、执行一些命令,达到了预期的目标。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值