Shunze 學園 >電腦資訊學系 >OpenNMS > 《五》透過Threshold設定網卡流量告警機制 哈囉,還沒有註冊或者登入。請你[註冊|登入]
« 上一篇主題 下一篇主題 » 顯示成列印模式 | 增加到我的最愛
發表新主題 發表回覆
作者
主題
shunze
工友伯伯


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

shunze 離線
《分享》透過Threshold設定網卡流量告警機制引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

Switch、Router等網通設備透過SNMP納入OpenNMS管理後,已可以看到網卡流量。
那麼有沒有辦法更一進步的設定流量告警機制?
當上下載流量到達一個臨介值時,發出通知信,告知網管人員?

有的,在OpenNMS中可在Manage Thresholds中進行設定。



OpenNMS中預設已建立7個類型的threshols類別組態,堶惘釵U自的監控範本可供參考。
而網卡監控就是在mib2這一項。



進入mib2的threshold,可看到堶惘1個基本型(Basic)與4個運算型(Expression-based)的thresholds範例。
若是基本值比較,可建立Basic thresholds,
若是有複雜計算,可建立Expression-based thresholds。

因為SNMP在mib2塈鴩鴘澈吤]大小為byte,而順子想做的告警條件是下載流量大於幾M(bit)時,發出警告,
兩者之間需要做單位轉換,用Expression-based thresholds比較適合。



要建立一個下載流量大於10M(bit)的告警機制,可參考順子下圖的設定,說明如後。


  • Type high,代表高於後述Expression的條件時,進行觸發。
  • Expression ifInOctets * 8 / 1000000,ifInOctets為進網卡的封包大小(單位為byte),乘上8轉換為bit,再除以1000000轉換為M(bit)。
  • Datasource Type interface,資料來源類型,選擇網卡interface。
  • Datasource label ifName,其它mib2 thresholds範例都打ifName,跟著打ifName。
  • Value 10,觸發threshold的臨介值。打上10,代表超過10M觸發告警機制。
  • Re-arm 3,回復正常狀態的臨介值。打上3,代表小於3M,告警狀態解除。
  • Trigger 1,發生幾次後,觸發告警機制。預設1次。
  • Description,此threshold的描述。
  • Triggered UEI與Re-armed UEI,順子不太懂,可留白使用預設的。
  • 整個threshold的解讀是,當下載(ifInOctets)流量大於10M時,發出警告;當小於3M時解除警告。




但我只想監控某port,不想全部監控該怎麼做呢?
例如順子公司的Cyberoam防火牆其Port D是WAN port,其它都是內部使用的port,
順子只想監控Port D,該如何去調整呢?

這個部分可透過Resource Filters來設定條件,但我們還是必需看懂引用的mib2.xml內容,才能設定過濾條件;
因為能做為Resource Filters的條件欄位,也必需是同一group中的mibObj oid。

mib2.xml位於以下路徑。
/usr/share/opennms/etc/datacollection/mib2.xml

其重點內容擷取如下。
    <!-- data from standard (mib-2) sources -->
    <group name="mib2-interfaces" ifType="all">
        <mibObj oid=".1.3.6.1.2.1.2.2.1.2" instance="ifIndex" alias="ifDescr" type="string" />
        <mibObj oid=".1.3.6.1.2.1.2.2.1.5" instance="ifIndex" alias="ifSpeed" type="string" />
        <mibObj oid=".1.3.6.1.2.1.2.2.1.10" instance="ifIndex" alias="ifInOctets" type="counter" />
        <mibObj oid=".1.3.6.1.2.1.2.2.1.11" instance="ifIndex" alias="ifInUcastpkts" type="counter" />
        <mibObj oid=".1.3.6.1.2.1.2.2.1.12" instance="ifIndex" alias="ifInNUcastpkts" type="counter" />
        <mibObj oid=".1.3.6.1.2.1.2.2.1.13" instance="ifIndex" alias="ifInDiscards" type="counter" />
        <mibObj oid=".1.3.6.1.2.1.2.2.1.14" instance="ifIndex" alias="ifInErrors" type="counter" />
        <mibObj oid=".1.3.6.1.2.1.2.2.1.16" instance="ifIndex" alias="ifOutOctets" type="counter" />
        <mibObj oid=".1.3.6.1.2.1.2.2.1.17" instance="ifIndex" alias="ifOutUcastPkts" type="counter" />
        <mibObj oid=".1.3.6.1.2.1.2.2.1.18" instance="ifIndex" alias="ifOutNUcastPkts" type="counter" />
        <mibObj oid=".1.3.6.1.2.1.2.2.1.19" instance="ifIndex" alias="ifOutDiscards" type="counter" />
        <mibObj oid=".1.3.6.1.2.1.2.2.1.20" instance="ifIndex" alias="ifOutErrors" type="counter" />
    </group>

我們可以發現除了 .1.3.6.1.2.1.2.2.1.12 的 ifInOctets 外,
還有 .1.3.6.1.2.1.2.2.1.16 的 ifOutOctets 可供我們做流量上傳的監測使用。

但重點是 .1.3.6.1.2.1.2.2.1.2ifDescr 網卡描述,
不同port會有不同的名稱描述 ifDescr
我們可以透過這個 ifDescr 屬性,來做為網卡過濾的條件。

使用snmpwalk來query目標物Cyberoam 192.168.33.2的 .1.3.6.1.2.1.2.2.1.2 內容,可得到如下圖的結果。



在得知Port D的 ifDescr 名稱為 PortD 後,
我們就可以把這個 ifDescr 做為過濾條件加到threshold中。



事實上這個名稱也可以在Node的Physical Interfaces中取得。



最後別忘了去確認PortD interface的 Collect 功能是否已經選好。



一切就緒後,當Cyberoam的Port D下載流量超過臨介值10M時,就會觸發告警機制。



管理員的email就會收到通知信!



當流量降回3M以下時,也會收到警報解除的通知信。



以上的threshold設定會儲存在如下的設定檔中。
/usr/share/opennms/etc/thresholds.xml



此外,若我們想要變更threshold的偵測時間或是對特定IP來進行掃描或排除,
那麼我們必需透過修改另一個設定檔 threshd-configuration.xml 來實現,其路徑如下。
/usr/share/opennms/etc/threshd-configuration.xml

以本例來說,與網卡相關的package mib2其內容如下。
<package name="mib2">
    <filter>IPADDR != '0.0.0.0'</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="mib2"/>
    </service>
</package>

我們可以看到預設的偵測時間間隔為300000毫秒,也就是5分鐘,
若想縮短時間間隔為1分鐘,可直接修改 interval 參數來達成。



另外,若需要對IP進行條件過濾,也可於此設定檔中,透過修改 IPADDR 的邏輯判斷,或對 include-range 的 begin & end來調整對應的IP範圍。

*請注意,
修改 threshd-configuration.xml,需重啟服務設定才會生效!



流量告警機制到此設定完成∼


參考資料
Creating Threshold Alarms



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

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




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

Powered by: Burning Board 1.1.1 2001 WoltLab GbR