snmp自定义处理程序

本文介绍了如何使用SNMP的traphandle配置在收到特定OID报文时调用自定义处理程序。通过示例展示了traphandle如何工作,以及如何创建一个简单的Python脚本来接收和处理SNMP报文。此外,还探讨了snmpd.conf的extend功能,用于执行自定义脚本以监控系统状态,如TCP连接、UDP数量、僵尸进程和内存使用情况。这些脚本的输出可通过SNMP查询查看。
摘要由CSDN通过智能技术生成

 

traphandle的使用

 

    前面一篇博客里提到在snmptrapd.conf文件中配置traphandle 能够接收指定的OID报文信息后,调用相应的处理程序对报文进行相应的处理操作。并且可以在调用的时候给程序传递参数。

 

具体格式为:

 

   TraphandleOID|default PROGRAM [ARGS ...]

 

例如:

traphandle .1.3.6.1.4.1.2021.251.1 /root/traptest/test.pl  test_param
 
traphandle使用的简单示例
 
traphandle DISMAN-EVENT-MIB::mteTriggerFired my_command
 
如上,表示snmptrapd收到DISMAN-EVENT-MIB::mteTriggerFired 对应的snmptrapd OID的报文信息的时候调用 my_command 命令。
 
(注:这里使用的OID和snmpd里使用的OID不同,例如上面的OID可以接收proc的进程异常报文信息,但是使用snmpd的OID UCD-SNMP-MIB::prTable 收不到该内容的)
 
 
 
如上图所示,在snmptrapd.conf文件中加入traphandle 选项内容。然后
snmptrapd -C -c /usr/local/share/snmp/snmptrapd.conf -df -Lo 

 

启动snmptrapd

 

随后再把之前配置好的有进程监控proc的snmpd.conf配置的snmpd服务启动。

 

如图所示,当snmpd启动的时候,snmptrapd接收到proc的snmp报文信息,同时调用my_command命令。但是my_command是随便取得名字,在系统中并不存在,所以报错。

但是以上验证了了,traphandle在收到指定OID报文后确实会调用指定的其他程序。

 

 

Forward 选项的使用
上面一篇博客内容里提到forward可以转发指定的OID 报文信息。从接收到的机器转发到其他机器上。
 
      forward default/OID destination

 

 如图所示,该snmptrapd服务会转发除掉traphandle 已经监控的DISMAN-EVENT-MIB::mteTriggerFired 报文之外的其他报文到192.139.68.1的机器上。

 

   snmptrapd -C -c /usr/local/share/snmp/snmptrapd.conf -df -Lo

 

   启动snmptrapd。

 

  使用snmptrap模拟发送报文

 

snmptrap -v 2c -cpublic 127.0.0.1 "" .1.3.6.1.4.1.2021.251.1 sysLocation.0 s  "test_info"

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值