Shunze 學園 >電腦資訊學系 >OpenNMS > 《十二》Windows Resource Threshold 哈囉,還沒有註冊或者登入。請你[註冊|登入]
« 上一篇主題 下一篇主題 » 顯示成列印模式 | 增加到我的最愛
發表新主題 發表回覆
作者
主題
shunze
工友伯伯


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

shunze 離線
《分享》Windows Resource Threshold引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

Windows在安裝及啟用SNMP後,Resource Graphs已可撈到Memory/Disk數據,繪製流量圖。

Memory


Disk



而其參照的設定則定義在mib2.xml中,路徑如下。

/usr/share/opennms/etc/datacollection/mib2.xml

##### Diks & Memory 用的是同一組 #####
<group name="mib2-host-resources-storage" ifType="all">
    <mibObj oid=".1.3.6.1.2.1.25.2.3.1.2" instance="hrStorageIndex" alias="hrStorageType" type="string" />
    <mibObj oid=".1.3.6.1.2.1.25.2.3.1.3" instance="hrStorageIndex" alias="hrStorageDescr" type="string" />
    <mibObj oid=".1.3.6.1.2.1.25.2.3.1.4" instance="hrStorageIndex" alias="hrStorageAllocUnits" type="gauge" />
    <mibObj oid=".1.3.6.1.2.1.25.2.3.1.5" instance="hrStorageIndex" alias="hrStorageSize" type="gauge" />
    <mibObj oid=".1.3.6.1.2.1.25.2.3.1.6" instance="hrStorageIndex" alias="hrStorageUsed" type="gauge" />
</group>

有了這些oid定義,又能以這些數據繪製流量圖,
我們當然也可以使用這些數據來設定相關threshold的告警機制。


  • Memory & Disk的threshold設定
    如上所說Windows的Memory與Disk是透過同一個group來取得,而其間的差別是透過 hrStorageDescr 這個字串描述來區別;
    我們可以透過snmpwalk的查詢來驗證此事。



    而hrStorage的threshold,在預設的threshold group - hrstorage中,已定義了二組hrStorage的threshold可供參考或直接套用,
    一組是使用率超過90%的警示,另一組是相對成長率達33%的警示。



    由於Memory及Disk沒有使用率的oid,所以在使用率的計算上,都是以 使用量 / 總量 來計算取得,公式如下。
    hrStorageUsed / hrStorageSize * 100.0

    當然,若我們需直接以使用量來做告警,而不是以使用率來告警,就不需要做這樣的百分比轉換。

    在Memory與Disk的區分上,前面已經說了是透過 hrStorageDescr 這個字串描述來區別,
    以順子的Memory為例,其字串值為 "Physical Memory",若要針對Memory來設threshold,
    那麼就在要Regular Expression中輸入 Physical Memory 做為過濾條件。



    若要偵測的目標是順子的C碟空間的話,則要在Regular Expression中輸入 ^C:\\ Label: Serial Number 50921c69 做為過濾條件。




  • CPU的偵測
    有沒有發現到本文一開始,除了展示Memory與Disk的流量圖外,並沒有一併展示CPU的流量圖呢?
    這是因為OpenNMS系統中雖然有包了Windows CPU loading的oid,但並沒有加入到預設收集的項目之中。

    Windows CPU loading的oid是 .1.3.6.1.2.1.25.3.3.1.2,別名為 hrProcessorLoad
    此oid雖然同樣包含在mib2.xml的內容之中,但沒有include到systemDef之中,所以在預設條件下並不會進行CPU loading的數據收集。
    <group name="mib2-host-resources-processor" ifType="all">
        <mibObj oid=".1.3.6.1.2.1.25.3.2.1.1" instance="hrDeviceEntry" alias="hrDeviceIndex" type="string" />
        <mibObj oid=".1.3.6.1.2.1.25.3.2.1.2" instance="hrDeviceEntry" alias="hrDeviceType" type="string" />
        <mibObj oid=".1.3.6.1.2.1.25.3.2.1.3" instance="hrDeviceEntry" alias="hrDeviceDescr" type="string" />
        <mibObj oid=".1.3.6.1.2.1.25.3.3.1.2" instance="hrDeviceEntry" alias="hrProcessorLoad" type="Gauge32" />
    </group>
    ...
    <systemDef name="Enterprise">
        <sysoidMask>.1.3.6.1.4.1.</sysoidMask>
        <collect>
            <includeGroup>mib2-interfaces</includeGroup>
            <includeGroup>mib2-tcp</includeGroup>
            <includeGroup>mib2-powerethernet</includeGroup>
        </collect>
    </systemDef>


    我們必需把 mib2-host-resources-processor 這個group納入systemDef之中,
    這樣OpenNMS才會透過這個group堛榣id定義去撈取CPU的loading數值。
    <systemDef name="Enterprise">
        <sysoidMask>.1.3.6.1.4.1.</sysoidMask>
        <collect>
            <includeGroup>mib2-interfaces</includeGroup>
            <includeGroup>mib2-tcp</includeGroup>
            <includeGroup>mib2-powerethernet</includeGroup>
            <includeGroup>mib2-host-resources-processor</includeGroup>
        </collect>
    </systemDef>


    設定完重啟OpenNMS服務之後,Windows Server的node已多了Host Resources Device這個項目,
    其中還有一個Unknown Processor Type!



    有了這個收集類型,Windows Server的CPU loading流量圖當然就可以順利產生~




    至於本篇的重點threshold的設定,由於CPU沒有預設的範本可用,
    而CPU的oid是在跟Memory/Disk一樣都是在mib2.xml中,所以順子決定把CPU的threshold新增在mib2這個group中。



    CPU threshold的設定重點如下,
    Datasource 輸入 hrProcessorLoad
    Datasource type 選擇 Host Resources Device
    Datasource label 可輸入 hrDeviceType或留白(反正這只是一個識別字串)
    而Value/Re-arm value及Trigger數目,可依需要自行設定。



    如上圖所示,這樣就會建立一個當CPU使用率超過90%時,就會觸發的threshold;
    而當CPU使用率掉回60%以下,就會取消該事件∼


    ↑測試lab中,當CPU使用率達100%的通知信。


    另外據說這個機制無法分辨多核CPU的各別使用率,
    只要CPU中,有任何一個達標,就會觸發threshold事件。
    不過順子的lab中只有分配一顆CPU給Windows server使用,
    無法對這個說法進行驗證...

    存疑的朋友,可以利用自己的環境測測看最準∼



以上除了CPU的偵測需要自行增加外,
Windows的Memory與Disk的threshold設定,我們都可以拿系統預設的threshold來做樣本套用或修改,
也如同上一篇 Linux Resource Threshold 所說,我們可以依需求來建立自己的threshold,
也可以依各主機的性質不同,透過IP來進行對應的過濾。
這部分請參考 Linux Resource Threshold,本篇就不再重複贅述∼

Windows的threshold設定到此告一段落∼


參考資料
雜亂的學習筆記本



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

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




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

Powered by: Burning Board 1.1.1 2001 WoltLab GbR