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


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

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

在上一篇 建立第三方物件的Trap Event Notice 中,我們知道透過上傳及編譯第三方物件後,
可以讓OpenNMS識別該物件所傳來的trap notice。

除了trap notice外,編譯過的第三方物件還可以在OpenNMS中,產生data collect,
讓OpenNMS也能去讀取第三方物件所提供的MIB查詢資訊。


首先,在MIB Compiler中對剛上傳並已成功編譯過MIB按右鍵,產生data collect。



在Data Collection第一個頁籤Resource Types中,使用者若有需要建立的特殊資源可在此建立。



什麼樣的資料型態必需在此頁籤中建立resoures?
參考 Collecting SNMP data from tables with arbitrary indexes 這個網頁,發現若MIB的資料型態中並不是單純的數字或字串等基本型態,
而是陣列或表格化資料,這時候就可以建立個別的resource type。
以Cyberoam來說,MIB傳來都是基本型態,所以不需要在此頁籤中建立個別的resource。


在Data Collection第二個頁籤MIB Groups中,OpenNMS會自動把MIB堛漯咱騤穈T建立於此。



基本上這個頁籤堛漯咱韝漁e並不需要修改,
單純數字或字串型態的 ifTypeignore,其 instance 則為 0

但若MIB物件資訊傳來的是陣列或表格化資料,
那麼我們就必需在此修改其 instance,並對應到Resource Type中的 name,兩者必需一致,相互呼應。
此外 ifType 必需設為 all,才能接收到所有的資料。


而Data Collection第三個頁籤則是定義System Definitions。
簡單一點的說法,就定義哪些OID要引用這個data collect。
這部分預設是沒有任何設定,我們必需自行定義,讓OpenNMS知道哪些OID要引用此data collect。



Group Name可依喜好自行輸入,
而System OID的部分,打上第三方物件的OID。
以Cyberoam來說,其OID是 .1.3.6.1.4.1.21067.2,
然後選擇 Mask 意味node的OID中有相符的OID即採用此data collect物件。
最後再把我們要收集的Group進行勾選,移到Selected區域,按下Save就完成囉∼



完成System Definitions後,再按下Save Data Collection File,第三方物件的data collect功能的實現就只差一步囉!






完成data collect的設定後,回到MIB Compiler會有訊息提示,
包括System Definitions已經建立,CYBEROAM-MIB.xml已經儲存,Graph template CYBEROAM-MIB-graph.properties 已經建立等訊息。
但請注意橘色WARN那一行,系統提醒我們要更新datacollection-config.xml這個檔案,把剛才建立的CYBEROAM-MIB.xml加進去。



這個部分您可以手動編輯 /usr/share/opennms/etc/datacollection-config.xml 檔案來修改,
也可以透過Web UI來完成,方法如下。



datacollection-config.xml中預設有兩個SNMP Collection Name,請點 default 這個項目進行編輯。



然後在Include Collections這個區塊中,把我們新建的CYBEROAM-MIB加進去。





加進去後,再把 SNMP Storage Flagselect 改為 all
改為 all 的理由是 select 預設只會收集interface相關的數據,且與該項目的collect選用與否有關。
而node-level的資料是不被收集的,所以要改為 all 才能把與interface無關的node-level數據進行收集。



完成後會出現一個短暫的提示畫面,要我們把collectd-configuration.xml的間隔調整為300秒?
(預設就是300秒啊?說真的我不懂這個提示的用意...)



模組化的OpenNMS其所有物件的MIB xml檔統一收錄在以下路徑中,各自的MIB自成一個檔案與別的模組無關。

/usr/share/opennms/etc/datacollect/

若不習慣它的Web UI操作,您也可以直接修改此xml來完成。


所有工作完成後,讓它跑個5分鐘,
在以下存放RRD繪圖資料的路徑中,應該就可以看到該node的node-level data collect資料出現了!
/usr/share/opennms/share/rrd/snmp/[Node_Number]/


↑藍色的資料夾是interface-level所使用,一個interface就是一個資料夾;
而白色的node-level資料則不放在子資料夾中,兩者很容易辨識。


Node-level資料開始收集後,Resource Graphs堛摸ode-level Performance Data就會有對應resource的MRTG流量圖產生了∼





第三方物件的node-level data collect總算完成!

(這部分卡了我整整一個週的時間,接下來將分享順子卡關的地方給大家參考∼)



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

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




2015-10-25, 21:03 shunze 的個人資料 把 shunze 加入好友列表 發送Email給 shunze 瀏覽 shunze 的網站 MSN : shunze@gmail.com
shunze
工友伯伯


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

shunze 離線
《分享》卡關一週的關鍵問題引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

順子在測試node-level data collect卡關卡了一週,
之間比較過OpenNMS內建支援的Cisco、Extreme、Fortinate、F5等模組,
試過各種可能性的調整,始終無法得到node-level的流量圖。
在 /usr/share/opennms/share/rrd/snmp/[Node_Number] 堙A也不見有任何node-level層級的資料產生。

卡關的地方在於System Definitions的 System OID 設定。
比較過內建的Cisco、Extreme、Fortinate、F5等模組,發現大部分都是以 .1.3.6.1.4.1.XXXX.y. 的型式來填入,
只有部分幾個cisco的System OID是以 .1.3.6.1.4.1.XXXX.y 的型式來填入。
兩者的差別僅在於最後面那個 .
而且絕大多數都有那個 “.”,所以在測Cyberoam時,自然也就以 .1.3.6.1.4.1.21067.2. 的型式來填寫。

<sysoidMask>.1.3.6.1.4.1.21067.2.</sysoidMask>


卡關了,怎麼想也想不到居然跟那個 “.” 有關?
在煩悶的情緒中,不斷的修改與測試...
在某一次的測試中,突然發現有資料了!?
趕緊把設定檔備份下來,先保留現場再說!

逐一修改比對後,居然卡關是卡在那個 “.”!?
只要少了那個 “.”,node-level的資料就可以成功收集。
<sysoidMask>.1.3.6.1.4.1.21067.2</sysoidMask>

這個 “.”,真是讓人卡關卡的好心酸...





那麼,
System OID最後面究竟要不要帶那個 “.”?
說真的,我也不知道...

若你跟順子一樣,設定看來都沒錯,但就是沒有資料,
不妨在這個 “.” 碰碰運氣,做個比較測試就知道了∼



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

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




2015-10-25, 22:27 shunze 的個人資料 把 shunze 加入好友列表 發送Email給 shunze 瀏覽 shunze 的網站 MSN : shunze@gmail.com
shunze
工友伯伯


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

shunze 離線
《分享》snmpStorageFlag改為all後的影響引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

在本篇討論中,為了能夠收到node-level的資料,
順子把datacollection-config.xml堛 snmpStorageFlag 參數由 select 調整為 all

原本interface的data collect可藉由 Collect / Don't Collect 自行調整是否要收集此項目的資料。



然而在調整為 all 之後,不僅是node-level的資料會被收集,連所有interface的資料也都會被強迫收集!
Collect / Don't Collect 的設定在對應 all 時,其效果會被忽略。




所有資料都會被強迫收集?那資料會成長的很快嗎?

實際比較過 /usr/share/opennms/share/rrd/snmp/[Node_Number] 路徑下的RRD資料,
發現每個項目所引用的兩個檔案 jrb 與 meta 似乎是維持在固定大小,
看來是不會膨脹成長。

不過,也找不到其它方式來調整資料項目的收集與否。
要引用node-level的data collect,看來只有接受“全部收集”這樣的事實了...



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

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




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

Powered by: Burning Board 1.1.1 2001 WoltLab GbR