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


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

shunze 離線
《分享》透過SNMP取得Linux資源狀態引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

要在OpenNMS上取得環境中Linux主機的資源狀態,例如CPU使用率,連線人數,TCP連線數等,其實是很簡單的,
只要Linux上安裝好SNMP,OpenNMS就可以透過SNMP協定來抓取到這些系統資源。

以Ubuntu來說,安裝SNMP指令如下。

apt-get install snmp snmpd

以CentOS來說,安裝SNMP指令如下。
yum install net-snmp net-snmp-utils


安裝完成後,修改設定檔 /etc/snmp/snmpd.conf,依需求建立v1/v2c或v3的community/user,
讓OpenNMS能以這些設定的community或user去query該主機,並得到MIB的回應資訊即可。

v1 snmp的簡單read only community設定如下,其中Community-Name預設為 public,可依需求自行修改。
##    sec.name    source    community
com2sec    notConfigUser    default        <Community-Name>
##    group.name    sec.model    sec.name
group    notConfigGroup    v1        notConfigUser
##    incl/excl    subtree    mask
view    roview        included    .1
## context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact roview none none


而v2c的設定其實跟v1一樣,只是把版本由 v1 改為 v2c
##    sec.name    source    community
com2sec    notConfigUser    default        <Community-Name>
##    group.name    sec.model    sec.name
group    notConfigGroup    v2c        notConfigUser
##    incl/excl    subtree    mask
view    roview        included    .1
## context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact roview none none

至於v3的設定與v1/v2c不同,它有user的帳號/密碼概念,不再是單單透過Community Name去做驗證,
簡單的建立read only帳號的方式如下,啟動服務後就會建立一個名為snmpuser的v3 ready only帳號了。
##以MD5加密的方式建立使用者snmpuser的authentication密碼,以DES的方式建立privacy密碼。
createUser snmpuser MD5 <SNMP-AuthPWD> DES <SNMP-PrivPWD>
##建立v3版本ready only的snmpuser帳號
rouser snmpuser priv .1

以上設定,是簡單的讀取權限設定,
若您不希望開放所有MIB資料都可以讀取,請自行修改允許的MIB階層。


設定完成後,啟動snmpd服務,
service snmpd start

另外CentOS還需要下達以下指令才能在level 3,4,5時自動啟動,Ubuntu則不需要。
chkconfig --level 345 snmpd on


啟動snmpd服務後以對應版本的snmpwalk去測試能否取得到MIB的回應訊息。
SNMP v1
snmpwalk -v 1 -c <Community-Name> localhost

SNMP v2c
snmpwalk -v 2c -c <Community-Name> localhost

SNMP v3
snmpwalk -v 3 -u snmpuser -l authPriv -a MD5 -A <SNMP-AuthPWD> -x DES -X <SNMP-PrivPWD> localhost


測試無誤後,在OpenNMS中以對應的SNMP版本資訊去掃描,就可以抓到以下資訊。



再把 datacollection-config.xml 設定檔中的 snmpStorageFlag 參數由預設的 select 調整為 all 並重啟OpenNMS服務後,
就可以在Resource Graphs中的node-level得到以下豐富的CPU、Memory與TCP流量圖。
(snmpStorageFlag 設定為 all 的原因請參考這一篇 建立第三方物件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-28, 11:15 shunze 的個人資料 把 shunze 加入好友列表 發送Email給 shunze 瀏覽 shunze 的網站 MSN : shunze@gmail.com
shunze
工友伯伯


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

shunze 離線
《分享》如何抓取Linux硬碟使用量資訊引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

如上文所述,在安裝snmp後,Linux已能讓snmp server抓取CPU、Memory與TCP Session等資訊,
但硬碟的相關資訊則還沒有辦法抓到...



爬文後發現,要讓Linux能提供硬碟資訊供snmp server抓取,其實很簡單;
只要在snmp的設定檔加入欲提供讀取的磁碟分割區路徑,就能解放disk資訊的讀取能力。

例如順子的Linux有/、/boot、/dev/shm這三個分割區,



那麼可以在 /etc/snmp/snmpd.conf 中加入以下內容。

disk /
disk /boot
disk /dev/shm

重啟snmpd服務之後,OpenNMS就能抓到Disk的相關資訊了∼










參考資料
Monitoring disk usage on Linux based systems



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

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




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

Powered by: Burning Board 1.1.1 2001 WoltLab GbR