《分享》Linux Resource Threshold |  |
Linux在啟用SNMP後,Resource Graphs已可得到CPU/Memory/Disk等流量圖。
CPU

Memory

Disk

Disk-inodes

而其參照的設定則定義在netsnmp.xml中,路徑如下。
/usr/share/opennms/etc/datacollection/netsnmp.xml
##### CPU #####
<group name="ucd-loadavg" ifType="ignore">
<mibObj oid=".1.3.6.1.4.1.2021.10.1.5" instance="1" alias="loadavg1" type="integer" />
<mibObj oid=".1.3.6.1.4.1.2021.10.1.5" instance="2" alias="loadavg5" type="integer" />
<mibObj oid=".1.3.6.1.4.1.2021.10.1.5" instance="3" alias="loadavg15" type="integer" />
</group>
##### Memory #####
<group name="ucd-memory" ifType="ignore">
<!-- Total Swap Size configured for the host. -->
<mibObj oid=".1.3.6.1.4.1.2021.4.3" instance="0" alias="memTotalSwap" type="integer" />
<mibObj oid=".1.3.6.1.4.1.2021.4.4" instance="0" alias="memAvailSwap" type="integer" />
<mibObj oid=".1.3.6.1.4.1.2021.4.5" instance="0" alias="memTotalReal" type="integer" />
<mibObj oid=".1.3.6.1.4.1.2021.4.6" instance="0" alias="memAvailReal" type="integer" />
<mibObj oid=".1.3.6.1.4.1.2021.4.11" instance="0" alias="memTotalFree" type="integer" />
<mibObj oid=".1.3.6.1.4.1.2021.4.13" instance="0" alias="memShared" type="integer" />
<mibObj oid=".1.3.6.1.4.1.2021.4.14" instance="0" alias="memBuffer" type="integer" />
<mibObj oid=".1.3.6.1.4.1.2021.4.15" instance="0" alias="memCached" type="integer" />
<!-- Error flag. 1 indicates very little swap space left -->
<mibObj oid=".1.3.6.1.4.1.2021.4.100" instance="0" alias="memSwapError" type="integer" />
</group>
##### Disk #####
<group name="net-snmp-disk" ifType="all">
<mibObj oid=".1.3.6.1.4.1.2021.9.1.2" instance="dskIndex" alias="ns-dskPath" type="string" />
<mibObj oid=".1.3.6.1.4.1.2021.9.1.6" instance="dskIndex" alias="ns-dskTotal" type="gauge" />
<mibObj oid=".1.3.6.1.4.1.2021.9.1.7" instance="dskIndex" alias="ns-dskAvail" type="gauge" />
<mibObj oid=".1.3.6.1.4.1.2021.9.1.8" instance="dskIndex" alias="ns-dskUsed" type="gauge" />
<mibObj oid=".1.3.6.1.4.1.2021.9.1.9" instance="dskIndex" alias="ns-dskPercent" type="gauge" />
</group>
<group name="net-snmp-disk-more" ifType="all">
<mibObj oid=".1.3.6.1.4.1.2021.9.1.3" instance="dskIndex" alias="ns-dskDevice" type="string" />
<mibObj oid=".1.3.6.1.4.1.2021.9.1.10" instance="dskIndex" alias="ns-dskPercentNode" type="gauge" />
</group>
有了這些oid定義,又能以這些數據繪製流量圖,
我們當然也可以使用這些數據來設定相關threshold的告警機制。
以上設定,都是拿系統預設的threshold來做示範,
我們可以直接修改套用,或以它為範本來新增自己需要的threshold。
而這些threshold的內容就存放在以下路徑的 thresholds.xml 檔案中。
/usr/share/opennms/etc/thresholds.xml
在thresholds.xml的設定中,我們只能拿同屬一個group的oid來做過濾條件,
如上例disk threshold中,我們以ns-dskPath做為過濾條件。
若我們需要以IP來做為條件,或是修改每5分鐘的偵測間隔,
必需透過修改另一個設定檔 threshd-configuration.xml 來完成。
/usr/share/opennms/etc/threshd-configuration.xml
threshd-configuration.xml 與 thresholds.xml 這兩個設定檔是相互呼應的,以補彼此不足。
擷取threshd-configuration.xml中 netsnmp 的設定為例
<package name="netsnmp">
<filter>IPADDR != '0.0.0.0' & (nodeSysOID LIKE '.1.3.6.1.4.1.2021.%' | nodeSysOID LIKE '.1.3.6.1.4.1.8072.%')</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="netsnmp"/>
</service>
</package>
我們可以看到在netsnmp這個package裏,定義了偵測時間間隔與IP範圍等多項參數。
而其中這thresholding-group這個key值,則清楚定義這個package是與netsnmp這個group互相呼應的。
在threshd-configuration.xml中,預設的偵測時間間隔為300000毫秒,也就是5分鐘,
若想縮短時間間隔為1分鐘,可直接修改 interval 參數來達成。
若想以IP做為條件過濾,也可於此設定檔中,透過修改 IPADDR 的邏輯判斷,或對 include-range 的 begin & end來調整對應的IP範圍。
*請注意,
修改 threshd-configuration.xml,需重啟服務設定才會生效!
Linux的threshold設定到此告一段落~
參考資料
雜亂的學習筆記本

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