2014-03-30 40 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