《分享》第三方物件的Resource Threshold |  |
在做完Linux及Windows的resource threshold後,
還記不記得順子在 第七篇 的時候,設定過第三方物件的node-level data collect?
如果第三方物件在匯入MIB後,就能透過OpenNMS收集該物件的資料,並且繪製成流量圖,
那麼是否也可以藉此數據設定第三方物件的resource threshold?
這部分當然是可以的~
順子同樣以奕瑞代理的防火牆Cyberoam為例,示範如何進行第三方物件的resource threshold設定。
參考 第七篇 的內容匯入Cyberoam的MIB後,OpenNMS的datacollection資料夾,會多出Cyberoam的MIB資料結構,其路徑如下。
/usr/share/opennms/etc/datacollection/CYBEROAM-MIB.xml
若我們有把cpuStatus、diskStatus、memoryStatus及mailHits等group加入systemDef,
那麼node-level的Resource Graphs就能夠撈取這些數據並繪製成圖。
<group name="cpuStatus" ifType="ignore">
<mibObj oid=".1.3.6.1.4.1.21067.2.1.2.2.1" instance="0" alias="cpuPercentUsage" type="integer32"/>
</group>
<group name="diskStatus" ifType="ignore">
<mibObj oid=".1.3.6.1.4.1.21067.2.1.2.3.1" instance="0" alias="diskCapacity" type="gauge32"/>
<mibObj oid=".1.3.6.1.4.1.21067.2.1.2.3.2" instance="0" alias="diskPercentUsage" type="gauge32"/>
</group>
<group name="memoryStatus" ifType="ignore">
<mibObj oid=".1.3.6.1.4.1.21067.2.1.2.4.1" instance="0" alias="memoryCapacity" type="gauge32"/>
<mibObj oid=".1.3.6.1.4.1.21067.2.1.2.4.2" instance="0" alias="memoryPercentUsage" type="gauge32"/>
<mibObj oid=".1.3.6.1.4.1.21067.2.1.2.4.3" instance="0" alias="swapCapacity" type="gauge32"/>
<mibObj oid=".1.3.6.1.4.1.21067.2.1.2.4.4" instance="0" alias="swapPercentUsage" type="gauge32"/>
</group>
<group name="mailHits" ifType="ignore">
<mibObj oid=".1.3.6.1.4.1.21067.2.1.2.9.1" instance="0" alias="pop3Hits" type="counter64"/>
<mibObj oid=".1.3.6.1.4.1.21067.2.1.2.9.2" instance="0" alias="imapHits" type="counter64"/>
<mibObj oid=".1.3.6.1.4.1.21067.2.1.2.9.3" instance="0" alias="smtpHits" type="counter64"/>
</group>
...
<systemDef name="Cyberoam Firewall">
<sysoidMask>.1.3.6.1.4.1.21067.2</sysoidMask>
<collect>
<includeGroup>cpuStatus</includeGroup>
<includeGroup>diskStatus</includeGroup>
<includeGroup>memoryStatus</includeGroup>
<includeGroup>mailHits</includeGroup>
</collect>
</systemDef>

在上述前置作業完成後,接著我們就可以開始著手設定Cyberoam的threshold。
由於Cyberoam是一個新物件,並不適用於OpenNMS內建7個group中的任何一個,所以就來建一個全新的group給Cyberoam來用吧~
(也該是時候學一下如何建立新的threshold group了...)
OpenNMS的threshold group在建立時,分成兩個部分,
第一個是threshd-configuration.xml,位在以下路徑中。
/usr/share/opennms/etc/threshd-configuration.xml
我們在該檔案中,新增以下內容給Cyberoam來使用。
<package name="Cyberoam">
<filter>IPADDR != '0.0.0.0' & nodeSysOID LIKE '.1.3.6.1.4.1.21067.2%'</filter>
<include-range begin="1.1.1.1" end="254.254.254.254"/>
<include-range begin="::1" end="ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff" />
<service name="SNMP" interval="300000" user-defined="false" status="on">
<parameter key="thresholding-group" value="Cyberoam"/>
</service>
</package>
↑有沒有發現順子比照其它範例,加上了Cyberoam的OID .1.3.6.1.4.1.21067.2 來進行物件的條件過濾~
第二個部分是thresholds.xml,位在以下路徑中。
/usr/share/opennms/etc/thresholds.xml
在這裏我們只加了一個Cyberoam的空殼給Cyberoam用。
<group name="Cyberoam" rrdRepository="/var/lib/opennms/rrd/snmp/">
</group>
當然若您很熟其中的設定,您也可以直接在該殼層中完成您所有細項設定,一切全憑您個人能力~
以上兩個部分設定好後,重啟OpenNMS服務,這時新增的threshold group就會出現了!
點入這個group,來新增一個threshold事件吧~
順子以偵測Cyberoam CPU的loading做示範,
在Datasource 欄位輸入 cpuPercentUsage,對應到Cyberoam mib中cpuStatus group的alias名稱;
Datasource type 選擇 Node,因為mib中 cpuStatus的instance為0,對應資料出現在Node之中,所以要選Node;
Datasource label 留白;
而 Value/Re-arm value 及 Trigger 數目,可依需要自行設定。
如上圖所示,這樣就會建立一個當CPU使用率超過50%時,就會觸發的threshold;
而當CPU使用率掉回30%以下,就會取消該事件~
要測試這個CPU的threshold是否有效其實很簡單,
由於Cyberoam的報表iView是個極耗資源的東西,所以只要在Cyberoam上多開幾個iView,CPU自然就會衝到100%。
5分鐘內,管理員的email就會收到該threshold的警示通知了~
順子之前在測Cyberoam的 CPU high usage trap event 時,
把原廠那個要 連續25分鐘CPU loading都會超過95% 才會觸發snmp trap的功能唸的要死...
嘿嘿,現在就不用靠Cybroam原廠的trap event了,
順子自己透過threshold就可以順心所欲的定義自己想要的觸發事件,
這樣是否理想多了~
當然若要監控Cyberoam的硬碟及記憶體使用率,只要比照CPU的偵測來設定;
把Datasource改為對應項目名稱的alias即可。
第三方物件的resource threshold設定到此告一段落~

♥順子老婆的網拍,請多關照~
If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!
|