2014-03-30 65 views
1

当满足某些条件时(例如,当内存使用或磁盘使用率超过80%时),我必须用脚本(例如perl或其他)向我的监视器发送SNMP陷阱(例如,perl或其他) )。 我从不写剧本,所以我不知道该怎么做。如何使用脚本发送SNMP陷阱

这个小脚本将允许我测试我的java程序,它捕获给定端口上的一些陷阱。

回答

2

如果您只想发送一个陷阱来测试您的陷阱接收器,则不必编写脚本!您可以下载并安装 http://net-snmp.sourceforge.net/download.html net-snmp命令行工具命令“snmptrap”就是您要查找的内容。

如果你想从shell脚本执行此操作,当然你只需脚本调用snmptrap二进制文件即可。

如果你真的在perl中编写了一些监控脚本,我仍然认为最简单的方法是从perl脚本执行snmptrap程序。你也可以选择使用一些SNMP库。我已经使用Net :: SNMP(与net-snmp无关)达到良好效果: https://metacpan.org/pod/Net::SNMP

+0

我只是做了我的shell脚本,所以这部分是确定的。但我仍然不知道如何用net-snmp发送陷阱。如果我尝试类似: SNMPTRAP -v 1 -c公共主机 '1.2.3.4.5.6' '192.193.194.195' 6 99 '55' 1.11.12.13.14.15的 “的TestString” 我得到: 的getaddrinfo :主机名称或服务未知 getaddrinfo(“host”,NULL,...):名称或服务未知 snmptrap: zsh:exit 1 snmptrap -v 1 -c public host'1.2.3.4.5.6'' 192.193.194.195'6 99'55's – DouglasAdams

+0

我认为主机“主机”不存在于您的网络上。尝试输入IP地址或现有主机名称。 顺便说一句,你不需要在OID字符串周围加引号。 手册页上有更多关于命令语法的信息,“man snmptrap”。 – Jolta