透過SNMP檢視裝置CPU利用率配置舉例
摘 要:NET-SNMP是SNMP協議的一套開源實現工具,可作為NMS或Agent。本文主要介紹NET-SNMP作為NMS透過SNMP協議檢視H3C裝置(作為Agent)CPU利用率的配置應用。
1簡介
SNMP是網路中管理裝置(NMS)和被管理裝置(Agent)之間的通訊規則。NMS透過Get和Set等操作獲取、設定Agent上變數的值,從而實現對Agent的遠端管理、監控。Agent的CPU利用率就是NMS經常監控的重要變數。
CPU利用率反映了一段時間內裝置CPU資源的使用情況。如果CPU利用率一直居高不下,說明裝置負載較重,需要對裝置當前狀況進行分析,找到引起裝置負載過重的原因,從而預防、診斷網路故障。
目前市場上有多種NMS產品,其中Net-SNMP作為一種開源實現的NMS在業界被廣泛使用。它提供了一套完整的應用程式,實現了SNMPv1/v2c/v3功能。本文將描述如何使用Net-SNMP工具透過訪問MIB物件獲取裝置CPU利用率。
2Net-SNMP使用簡介
本文主要用到Net-SNMP的snmpget功能和snmpwalk功能。
l snmpget功能:即執行一次SNMP Get操作,用來獲取Agent上指定MIB物件的值。命令列格式為snmpget [OPTIONS] AGENT OID [OID]。
l snmpwalk功能:即執行一次SNMP Walk操作,用來獲取Agent上多個MIB物件的值。命令列格式為snmpwalk [OPTIONS] AGENT [OID]。
以上兩條命令列中各引數的含義如下:
3相關MIB節點
本文透過訪問H3C私有MIB來檢視CPU利用率。如果想要透過物件的名稱訪問該節點,在訪問前需要在NMS上先下載並編譯hh3c-entity-ext。mib或h3c-entity-ext。mib,MIB檔案可以透過H3C公司網站進行下載。如果不編譯該MIB檔案,則只能透過物件OID進行訪問。
hh3c-entity-ext。mib是H3C new風格的MIB檔案,h3c-entity-ext。mib是H3C compatible風格的MIB檔案。使用哪個MIB檔案由裝置當前的MIB風格決定。在Agent上使用display mib-snmp命令檢視裝置的MIB風格,如果“Current MIB style”顯示為:
l new,則需要使用hh3c-entity-ext。mib檔案中的hh3cEntityExtCpuUsage節點,該節點的詳細描述請參見表2。
l compatible,則需要使用h3c-entity-ext。mib檔案中的h3cEntityExtCpuUsage節點,該節點的詳細描述請參見表3。
表2 hh3cEntityExtCpuUsage物件描述表
4使用SNMP v1、v2c檢視裝置CPU利用率配置舉例
使用SNMP v1或者v2c版本配置基本相同,本文以SNMP v1為例。如果網路上執行的SNMP是v2c版本的,則只需將本舉例中snmpget工具命令中的-v引數的值改為2c即可。
4。1組網需求
l 網管工作站(NMS)與裝置(Agent)透過乙太網相連。
l NMS上執行Net-SNMP軟體,要求在NMS上透過SNMP v1、團體名public能夠檢視Agent最後一分鐘內的CPU利用率。
圖1 使用SNMP v1、v2c檢視裝置CPU利用率組網圖
4。2配置思路
l 在Agent上配置介面引數:指定介面的IP地址,保證Agent和NMS路由的可達。
l Agent上需要完成SNMP功能基本配置(包括SNMP的版本、SNMP團體名),使得NMS和Agent之間可以互訪。
l 檢視Agent支援的MIB風格,確定需要使用的MIB物件。
l 將Net-SNMP軟體中的snmpget。exe和snmpwalk。exe檔案放到NMS的C:\usr\bin路徑下,透過MIB物件查詢Agent最後1分鐘內CPU利用率。
4。3配置步驟
4。3。1配置Agent
# 配置Agent的IP地址為192。168。1。56/24,並確保Agent與NMS之間路由可達。
l 如果Ethernet1/1是三層介面,請進行以下配置:
[Sysname] interface ethernet 1/1
[Sysname-Ethernet1/1] ip address 192。168。1。56 24
[Sysname-Ethernet1/1] quit
l 如果Ethernet1/1是二層介面,請進行以下配置:
[Sysname] vlan 2
[Sysname-vlan2] port Ethernet 1/1
[Sysname-vlan2] quit
[Sysname] interface vlan-interface 2
[Sysname-Vlan-interface2] ip address 192。168。1。56 24
[Sysname-Vlan-interface2] quit
# 配置SNMP版本。為了防止Agent和NMS因為版本問題導致不能建立SNMP連線,建議將版本引數配置為all,表示支援v1、v2c、v3三個版本。
[Sysname] snmp-agent sys-info version all
# 配置可讀屬性團體名。
[Sysname] snmp-agent community read public
# 檢視裝置當前支援的MIB檔案風格,以便決定使用哪個MIB物件。
[Sysname] display mib-style
Current MIB style: new
Next reboot MIB style: new
以上顯示資訊表明,裝置當前支援的MIB檔案風格為new,所以使用hh3cEntityExtCpuUsage物件,OID為1。3。6。1。4。1。25506。2。6。1。1。1。1。6。(如果Current MIB style顯示為compatible,則下面的配置步驟中需要將1。3。6。1。4。1。25506。2。6。1。1。1。1。6替換為1。3。6。1。4。1。2011。10。2。6。1。1。1。1。6)
4。3。2配置NMS
(1) 檢視CPU的實體編號
使用ENTITY-MIB中的entPhysicalDescr、entPhysicalClass和entPhysicalName物件確定CPU實體的編號。如果使用這些物件不能確定CPU實體的編號,或者想一次檢視裝置上所有CPU的利用率,可以直接執行4。3。2 (4)檢視所有CPU的利用率。
C:\usr\bin> snmpwalk -v 1 -c public 192。168。1。56 1。3。6。1。2。1。47。1。1。1。1。2
iso。3。6。1。2。1。47。1。1。1。1。2。1 = STRING: “H3C S7502E”
iso。3。6。1。2。1。47。1。1。1。1。2。2 = STRING: “Container for Board Modu
iso。3。6。1。2。1。47。1。1。1。1。2。3 = STRING: ”Container for Board Modu
iso。3。6。1。2。1。47。1。1。1。1。2。4 = STRING: “Container for Board Modu
iso。3。6。1。2。1。47。1。1。1。1。2。5 = STRING: ”Container for Board Modu
iso。3。6。1。2。1。47。1。1。1。1。2。16 = STRING: “Container for Power Mod
iso。3。6。1。2。1。47。1。1。1。1。2。17 = STRING: ”Container for Power Mod
iso。3。6。1。2。1。47。1。1。1。1。2。18 = STRING: “Container for Fan Modul
iso。3。6。1。2。1。47。1。1。1。1。2。19 = STRING: ”LSQ1MPUA0“
iso。3。6。1。2。1。47。1。1。1。1。2。20 = STRING: ”LSQ1MPUA0“
iso。3。6。1。2。1。47。1。1。1。1。2。21 = ”“
iso。3。6。1。2。1。47。1。1。1。1。2。33 = STRING: ”PSU“
iso。3。6。1。2。1。47。1。1。1。1。2。35 = STRING: ”FAN“
……
以上顯示資訊表明,CPU的實體編號為19和20。如果要確定主用主控板和備用主控板分別對應的實體編號,可以繼續執行以下命令:
C:\usr\bin> snmpwalk -v 1 -c public 192。168。1。56 1。3。6。1。2。1。47。1。1。1。1。7
iso。3。6。1。2。1。47。1。1。1。1。7。1 = STRING: ”H3C S7502E“
iso。3。6。1。2。1。47。1。1。1。1。7。2 = STRING: ”Slot 0“
iso。3。6。1。2。1。47。1。1。1。1。7。3 = STRING: ”Slot 1“
iso。3。6。1。2。1。47。1。1。1。1。7。4 = STRING: ”Slot 2“
iso。3。6。1。2。1。47。1。1。1。1。7。5 = STRING: ”Slot 3“
iso。3。6。1。2。1。47。1。1。1。1。7。16 = STRING: ”Slot 14“
iso。3。6。1。2。1。47。1。1。1。1。7。17 = STRING: ”Slot 15“
iso。3。6。1。2。1。47。1。1。1。1。7。18 = STRING: ”Slot 16“
iso。3。6。1。2。1。47。1。1。1。1。7。19 = STRING: ”Master Board 0“
iso。3。6。1。2。1。47。1。1。1。1。7。20 = STRING: ”Slave Board 1“
iso。3。6。1。2。1。47。1。1。1。1。7。21 = STRING: ”Board 2“
……
以上顯示資訊表明,主用主控板對應的實體編號為19,備用主控板分別對應的實體編號為20。
(2) 檢視主用主控板的CPU利用率
C:\usr\bin> snmpget -v 1 -c public 192。168。1。56 1。3。6。1。4。1。25506。2。6。1。1。1。1。6。19
將返回下面的響應資訊:
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。19 = INTEGER: 2
以上資訊表明主用主控板的CPU利用率為2%。
(3) 檢視備用主控板的CPU利用率
C:\usr\bin> snmpget -v 1 -c public 192。168。1。56 1。3。6。1。4。1。25506。2。6。1。1。1。1。6。20
將返回下面的響應資訊:
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。20 = INTEGER: 2
以上資訊表明備用主控板的CPU利用率為2%。
(4) 檢視所有CPU的利用率
執行snmpwalk工具命令,非零值即為CPU的利用率。
C:\usr\bin> snmpwalk -v 1 -c public 192。168。1。56 1。3。6。1。4。1。25506。2。6。1。1。1。1。6
將返回下面的響應資訊:
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。1 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。2 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。3 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。4 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。5 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。16 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。17 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。18 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。19 = INTEGER: 2
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。20 = INTEGER: 2
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。21 = INTEGER: 3
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。33 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。35 = INTEGER: 0
……
以上資訊表明,主用主控板(對應實體編號為19)的CPU利用率為2%,備用主控板(對應實體編號為20)的CPU利用率為2%,介面板(對應實體編號為21)的CPU利用率為3%。
5使用SNMP v3檢視裝置CPU利用率配置舉例
5。1組網需求
l 網管工作站(NMS)與裝置(Agent)透過乙太網相連。
l NMS上執行Net-SNMP軟體,要求在NMS上透過SNMP v3、使用者名稱v3user(認證方式為MD5,認證密碼為aaaaaaaaaa,加密演算法為DES56,加密密碼是bbbbbbbbbb)能夠檢視Agent最後一分鐘內的CPU利用率。
5。2配置思路
l 在Agent上配置介面引數:指定介面的IP地址,保證Agent和NMS路由的可達。
l Agent上需要完成SNMP功能基本配置(包括SNMP的版本、組、使用者、認證和加密引數),使得NMS和Agent之間可以互訪。
l 檢視Agent支援的MIB風格,確定需要使用的MIB物件。
l 將Net-SNMP軟體中的snmpget。exe和snmpwalk。exe檔案放到NMS的C:\usr\bin路徑下,透過MIB物件查詢Agent最後1分鐘內CPU利用率。
5。3配置步驟
5。3。1配置Agent
# 配置Agent的IP地址為192。168。1。56/24,並確保Agent與NMS之間路由可達。
l 如果Ethernet1/1是三層介面,請進行以下配置:
[Sysname] interface ethernet 1/1
[Sysname-Ethernet1/1] ip address 192。168。1。56 24
[Sysname-Ethernet1/1] quit
l 如果Ethernet1/1是二層介面,請進行以下配置:
[Sysname] vlan 2
[Sysname-vlan2] port Ethernet 1/1
[Sysname-vlan2] quit
[Sysname] interface vlan-interface 2
[Sysname-Vlan-interface2] ip address 192。168。1。56 24
[Sysname-Vlan-interface2] quit
# 配置SNMP版本。為了防止Agent和NMS因為版本問題導致不能建立SNMP連線,建議將版本引數配置為all,表示支援v1、v2c、v3三個版本。
[Sysname] snmp-agent sys-info version all
# 設定SNMP引數:使用的使用者名稱為v3user,認證方式為MD5,認證密碼為aaaaaaaaaa,加密演算法為DES56,加密密碼是bbbbbbbbbb。
l 根據實際需要,使用者可以自行選擇是否對互動的SNMP報文進行認證,是否對互動的SNMP報文進行加密,本舉例採用的是既認證又加密;
l 為了讓設定的認證、加密密碼在裝置重啟後能夠繼續生效,這裡先將明文密碼加密,然後在建立使用者時直接使用加密後的密碼進行配置。
[Sysname] snmp-agent calculate-password aaaaaaaaaa mode md5 local-engineid
The secret key is: 17CED5A1298DF35A643D81EC14E0E816
[Sysname] snmp-agent calculate-password bbbbbbbbbb mode md5 local-engineid
The secret key is: 5D3250992503990147EEB03B04CF2190
[Sysname] snmp-agent group v3 test
[Sysname] snmp-agent usm-user v3 v3user test cipher authentication-mode md5 17CED5A1298DF35A643D81EC14E0E816 privacy-mode des56 5D3250992503990147EEB03B04CF2190
# 檢視裝置當前支援的MIB檔案風格,以便決定使用哪個MIB物件。
[Sysname] display mib-style
Current MIB style: new
Next reboot MIB style: new
以上顯示資訊表明,裝置當前支援的MIB檔案風格為new,所以使用hh3cEntityExtCpuUsage物件,OID為1。3。6。1。4。1。25506。2。6。1。1。1。1。6。(如果Current MIB style顯示為compatible,則下面的配置步驟中需要將1。3。6。1。4。1。25506。2。6。1。1。1。1。6替換為1。3。6。1。4。1。2011。10。2。6。1。1。1。1。6)
5。3。2配置NMS
(1) 檢視CPU的實體編號
先使用ENTITY-MIB中的entPhysicalDescr、entPhysicalClass和entPhysicalName物件確定CPU實體的編號。如果使用這些物件不能確定CPU實體的編號,或者想一次檢視裝置上所有CPU的利用率,可以直接執行5。3。2 (4)檢視所有CPU的利用率。
C:\usr\bin> snmpwalk -v 3 -a MD5 -A aaaaaaaaaa -u v3user -x DES -X bbbbbbbbbb 192。168。1。56 1。3。6。1。2。1。47。1。1。1。1。2
iso。3。6。1。2。1。47。1。1。1。1。2。1 = STRING: ”H3C S7502E“
iso。3。6。1。2。1。47。1。1。1。1。2。2 = STRING: ”Container for Board Modu
iso。3。6。1。2。1。47。1。1。1。1。2。3 = STRING: “Container for Board Modu
iso。3。6。1。2。1。47。1。1。1。1。2。4 = STRING: ”Container for Board Modu
iso。3。6。1。2。1。47。1。1。1。1。2。5 = STRING: “Container for Board Modu
iso。3。6。1。2。1。47。1。1。1。1。2。16 = STRING: ”Container for Power Mod
iso。3。6。1。2。1。47。1。1。1。1。2。17 = STRING: “Container for Power Mod
iso。3。6。1。2。1。47。1。1。1。1。2。18 = STRING: ”Container for Fan Modul
iso。3。6。1。2。1。47。1。1。1。1。2。19 = STRING: “LSQ1MPUA0”
iso。3。6。1。2。1。47。1。1。1。1。2。20 = STRING: “LSQ1MPUA0”
iso。3。6。1。2。1。47。1。1。1。1。2。21 = “”
iso。3。6。1。2。1。47。1。1。1。1。2。33 = STRING: “PSU”
iso。3。6。1。2。1。47。1。1。1。1。2。35 = STRING: “FAN”
……
以上顯示資訊表明,CPU的實體編號為19和20。如果要確定主用主控板和備用主控板分別對應的實體編號,可以繼續執行以下命令:
C:\usr\bin> snmpwalk -v 3 -a MD5 -A aaaaaaaaaa -u v3user -x DES -X bbbbbbbbbb 192。168。1。56 1。3。6。1。2。1。47。1。1。1。1。7
iso。3。6。1。2。1。47。1。1。1。1。7。1 = STRING: “H3C S7502E”
iso。3。6。1。2。1。47。1。1。1。1。7。2 = STRING: “Slot 0”
iso。3。6。1。2。1。47。1。1。1。1。7。3 = STRING: “Slot 1”
iso。3。6。1。2。1。47。1。1。1。1。7。4 = STRING: “Slot 2”
iso。3。6。1。2。1。47。1。1。1。1。7。5 = STRING: “Slot 3”
iso。3。6。1。2。1。47。1。1。1。1。7。16 = STRING: “Slot 14”
iso。3。6。1。2。1。47。1。1。1。1。7。17 = STRING: “Slot 15”
iso。3。6。1。2。1。47。1。1。1。1。7。18 = STRING: “Slot 16”
iso。3。6。1。2。1。47。1。1。1。1。7。19 = STRING: “Master Board 0”
iso。3。6。1。2。1。47。1。1。1。1。7。20 = STRING: “Slave Board 1”
iso。3。6。1。2。1。47。1。1。1。1。7。21 = STRING: “Board 2”
……
以上顯示資訊表明,主用主控板對應的實體編號為19,備用主控板分別對應的實體編號為20。
(2) 檢視主用主控板的CPU利用率
C:\usr\bin> snmpget -v 3 -a MD5 -A aaaaaaaaaa -u v3user -x DES -X bbbbbbbbbb 192。168。1。56 1。3。6。1。4。1。25506。2。6。1。1。1。1。6。19
將返回下面的響應資訊:
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。19 = INTEGER: 1
以上資訊表明主用主控板的CPU利用率為1%。
(3) 檢視備用主控板的CPU利用率
C:\usr\bin> snmpget -v 3 -a MD5 -A aaaaaaaaaa -u v3user -x DES -X bbbbbbbbbb 192。168。1。56 1。3。6。1。4。1。25506。2。6。1。1。1。1。6。20
將返回下面的響應資訊:
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。20 = INTEGER: 2
以上資訊表明備用主控板的CPU利用率為2%。
(4) 檢視所有CPU的利用率
執行snmpwalk工具命令,非零值即為CPU的利用率。
C:\usr\bin> snmpwalk -v 3 -a MD5 -A aaaaaaaaaa -u v3user -x DES -X bbbbbbbbbb 192。168。1。56 1。3。6。1。4。1。25506。2。6。1。1。1。1。6
將返回下面的響應資訊:
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。1 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。2 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。3 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。4 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。5 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。16 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。17 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。18 = INTEGER: 0
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。19 = INTEGER: 1
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。20 = INTEGER: 2
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。21 = INTEGER: 3
iso。3。6。1。4。1。25506。2。6。1。1。1。1。6。33 = INTEGER: 0
……
以上資訊表明,主用主控板(對應實體編號為19)的CPU利用率為2%,備用主控板(對應實體編號為20)的CPU利用率為2%,介面板(對應實體編號為21)的CPU利用率為3%。