SNMP Trap 将通知传递给脚本以便使用 NET-SNMP 进行进一步处理

SNMP Trap 将通知传递给脚本以便使用 NET-SNMP 进行进一步处理

我一直在尝试使用 NET-SNMP“traphandle”创建一个简单的 dell s4810 交换机接口关闭状态警报。我想知道如何将通知信息传递给脚本,以便我可以解析文本?我可以激活脚本,但不能传递通知。也许有一个好的 python 或 perl 模块?我将不胜感激任何建议或建议。

答案1

当您收到 SNMP 陷阱时,守护进程 snmptrapd 会将此陷阱转发到外部程序(通常是您的脚本)。

snmptrapd 将添加一些参数(IP 地址、主机名、通知、OID),这些参数将被发送到脚本的标准输入中。

接收陷阱的脚本示例,该脚本来自http://net-snmp.sourceforge.net/wiki/index.php/TUT:Configuring_snmptrapd

#!/bin/sh

 read host
 read ip
 vars=

 while read oid val
 do
   if [ "$vars" = "" ]
   then
     vars="$oid = $val"
   else
     vars="$vars, $oid = $val"
   fi
 done

 echo trap: $1 $host $ip $vars 

此脚本将接收 snmptrapd 守护进程的参数,并将其回显。因此,您可以添加命令以导出到文件,以查看您的配置是否正常工作。

相关内容