Shunze 學園 >電腦資訊學系 >OpenNMS > 《六》建立第三方物件的Trap Event Notice 哈囉,還沒有註冊或者登入。請你[註冊|登入]
« 上一篇主題 下一篇主題 » 顯示成列印模式 | 增加到我的最愛
發表新主題 發表回覆
作者
主題
shunze
工友伯伯


註冊日期: 2002 04
來自: 潮汐終止之地
文章: 2332

shunze 離線
《分享》建立第三方物件的Trap Event Notice引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

在OpenNMS上內建了多種OS與網通設備管理時所需的MIBs資料,
OpenNMS可藉由這些資訊來解析物件所發出的trap notice,進而通知管理員該物件有狀況發生。

但若物件本身沒有被OpenNMS支援,OpenNMS堥S有物件的MIB時,如何讓OpenNMS識別這些物件呢?

以奕瑞代理的防火牆Cyberoam為例,在OpenNMS上就不支援。
雖然OpenNMS無法識別它,不過我們可以透過在Cyberoam官網下載Cyberoam的MIB檔案,
然後把MIB餵給OpenNMS,讓OpenNMS有足夠能力去解析這些資訊。

在Cyberoam中設定好SNMP組態後,回到OpenNMS,
我們可以透過 SNMP MIB Compiler 功能手動匯入第三方物件的MIB檔來進行編譯,讓OpenNMS能夠解析它。



在MIB Compiler頁面中,按下 Upload MIB 按鈕,上傳剛才下載的Cyberoam MIB檔。



上傳後的MIB檔會出現在pending區域中,按下右鍵Compile編譯這個物件。



從Cyberoam官網下載的MIB檔,在編譯時會指出第387行有錯誤!?
把它從 DataBaseService OBJECT-TYPE 改為後 databaseService OBJECT-TYPE 符合OpenNMS的規範後,再編譯一次就不會報錯了。
*注意,編譯時需要正確無誤的MIB資訊,OpenNMS才能完成該MIB檔的編譯。

編譯完成後,該物件會移到compiled已編譯區域;
這時,我們可按下右鍵Generate Events來建立MIB檔中所定義的事件event。



建立event時,首先會產生這個物件的UEI。



接著在事件畫面中,按下save Events File按鈕,就可以建立好物件MIB中所有的events。



完成後,在SNMP MIB Complier中會顯示剛才完成的內容,
包含編譯後所產生的物件event的XML檔案路徑。


(基本上所有物件的event XML檔都會放置在 /usr/share/opennms/etc/events/ 路徑下。)

第三方物件的MIB成功編譯後,原本Events堜狳S有的第三方物件相關event,就會出現了!




第三方物件events產生後,回到Event Notifications中,建立一個該物件的事件通知吧∼



在Cyberoam的MIB中,有定義 highCpuUsage 這個CPU 使用率過高的trap event.
假設我們想透過Cyberoam的trap notice來主動發送這個CPU使用率過高的trap event,
我們可以點選 highCpuUsage 這個trap event。



然後在Services部分選擇SNMP,這樣就完成這個CPU使用率過高的條件設定了。



若這trap event只需要對應到Cyberoam物件,不想對應到其它nodes,
我們可以在IPADDR的條件式中手動將IP改為Cyberoam這個node的IP。



完成後按下Next到最後一個階段...



在最後的這個畫面中,我們需編輯這個事件的email通知內容,
包含郵件主旨、內容、發送對象與描述等。
這個部分順子是參照它事件的內容來做修改的。



完成後,Event Notifications中就會出現這筆自建的Trap Notice Event了∼




當前端Cyberoam的CPU使用率過高,達到Cyberoam本身設定的條件,就會觸發trap機制,送出trap notice給指定的SNMP Server。

在OpenNMS還沒有編譯Cyberoam的MIB,無法解譯Cyberoam傳來的OID意義時,
OpenNMS呈現出來的,會是OID的數字。



一旦在OpenNMS編譯過Cyberoam的MIB後,OpenNMS就能完美解讀該trap的意義。



而我們所設定的event notification也就能發揮作用,成功透過email通知管理員有狀況發生。




不過,以上OpenNMS event及email擷圖,是順子模擬產生出來的,
並不是在測試環境中,真正產生的結果。

在Linux上產生SNMP Trap的指令如下。

snmptrap -v 2c -c public <SNMP_Server_IP> "" .1.3.6.1.4.1.21067.2.1.4.1 .1.3.6.1.4.1.21067.2.1.4.1 s "100% cpu usage"


之所以採用模擬的方式而不是讓Cyberoam產生真正的CPU trap event,
那是因為Cyberoam的CPU high usage trap event判斷條件相當嚴苛!
要連續25分鐘CPU的使用率都達95%以上才會觸發該trap機制,
除非持續的被攻擊,否則很難在測試環境中觸發這樣的trap event。
以Linux模擬送出trap event,意思到就好了,大家就饒了順子吧∼


參考資料
OpenNMS: MIB Management Through the GUI
Windows server Event trap for opennms



♥順子老婆的網拍,請多關照∼

If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!




2015-10-16, 18:21 shunze 的個人資料 把 shunze 加入好友列表 發送Email給 shunze 瀏覽 shunze 的網站 MSN : shunze@gmail.com
  « 上一篇主題 下一篇主題 »
發表新主題 發表回覆
跳到:

Powered by: Burning Board 1.1.1 2001 WoltLab GbR