FAQ-通过SNMP命令方式获取CPU信息

发布时间:  2015-11-20 浏览次数:  2979 下载次数:  15
问题描述
查询到CPU利用率的OID是 1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5,但结果比较多,无法区分具体哪个是设备的CPU利用率。

OID=.1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.67108867, Type=Integer, Value=0
OID=.1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.67371013, Type=Integer, Value=0
OID=.1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.67371017, Type=Integer, Value=10
......

结果信息共计78项,仅仅后面的数字不相同。
解决方案
1、使用场景:使用SNMPWALK等命令行工具获取设备信息,如CPU使用率

2、提前准备

a) 下载SNMPWALK,复制到C:\windows\system32,下载链接:http://www.snmpsoft.com/freetools/snmpwalk.htm

b) 设备对应版本的MIB参考(以S9306 v200r003版本为例)

i. 打开http://e.huawei.com

ii. 依次点击:技术支持->产品支持->企业网络->交换机->园区交换机->S9300->文档->参考指南



iii. 下载S9300&S9300E V200R003C00 MIB参考,链接:

http://support.huawei.com/enterprise/docinforeader.action?contentId=DOC1000027267&idPath=7919710|9856733|7923144|16531

c) 设备上配置SNMP相关功能

[S9306]dis ver
VRP (R) software, Version 5.130 (S9300 V200R003C00SPC500)
[S9306]snmp-agent sys-info version all
[S9306]snmp-agent community read huawei123

3、设备有多个实体,而CPU只是其中一个,框式设备则有更多个CPU。每个实体都会对应一个索引号,需要先获取索引号。

a) CMD下执行:

snmpwalk -v:2c -c:huawei123 -r:192.168.108.100 -os:1.3.6.1.2.1.47.1.1.1.1 -op:1.3.6.1.2.1.47.1.1.1.2  >c:\entPhysicalTable.txt
-v:SNMP版本 ,-c:团体名,-r:目标主机,-os:开始OID:1.3.6.1.2.1.47.1.1.1.1,-op:结束OID,>保存结果的位置

b) 前缀1.3.6.1.2.1.47.1.1.1.1,表示entPhysicalTable



4、获取CPU信息

a) CMD下执行

snmpwalk -v:2c -c:huawei123 -r:192.168.108.100 -os:1.3.6.1.4.1.2011.5.25.31.1.1.1.1 -op:1.3.6.1.4.1.2011.5.25.31.1.1.1.2  >c:\hwEntityStateTable.txt

b) 前缀1.3.6.1.4.1.2011.5.25.31.1.1.1.1,表示hwEntityStateTable

该表描述了实体的一些状态,包括管理状态、操作状态、备份状态、告警状态、CPU使用率及使用门限,内存利用率及使用门限等。



5、数据对应,以索引号为纽带。

举例:查询主控板的CPU利用率

[S9306]dis device
Chassis 1 (Master Switch)
S9306's Device status:
Slot  Sub Type         Online    Power      Register       Alarm      Primary
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1     -   LE0MG24CA    Present   PowerOn    Registered     Normal     NA
6     -   LE0DG24TFA00 Present   PowerOn    Registered     Normal     NA
7     -   LE0MSRUA     Present   PowerOn    Registered     Normal     Master
1   LE0MFSUA     Present   PowerOn    Registered     Normal     NA
PWR1  -   -            Present   PowerOn    Registered     Normal     NA
CMU1  -   LE0DCMUA0000 Present   PowerOn    Registered     Normal     Master
FAN1  -   -            Present   PowerOn    Registered     Normal     NA
FAN2  -   -            Present   PowerOn    Registered     Normal     NA

找到主控(SRU/MCU/MPU)在7槽位

从第3点获取的entPhysicalTable.txt中,找到7槽位MPU板的信息:

OID=.1.3.6.1.2.1.47.1.1.1.1.7.68943881, Type=OctetString, Value=MPU Board 1/7  //MPU表示主控板

发现一个索引号,相当关键的信息,后续会以此找到对应的CPU使用率信息。

以此索引号,会找到更多的描述:

OID=.1.3.6.1.2.1.47.1.1.1.1.2.68943881, Type=OctetString, Value=MPU Board                                             //类型
OID=.1.3.6.1.2.1.47.1.1.1.1.8.68943881, Type=OctetString, Value=LE02SRUA VER.D                                     //固件版本
OID=.1.3.6.1.2.1.47.1.1.1.1.10.68943881, Type=OctetString, Value=Version 5.130 V200R003C00SPC500     //软件版本
OID=.1.3.6.1.2.1.47.1.1.1.1.11.68943881, Type=OctetString, Value=020KQR*****                                          //序列号

从第4点获取的hwEntityStateTable.txt找到1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5(CPU利用率)

会发现有很多CPU利用率。足有87项,还有可能更多项。

OID=.1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.67108867, Type=Integer, Value=0
OID=.1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.67371013, Type=Integer, Value=0
OID=.1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.67371017, Type=Integer, Value=10


如何找到我们需要的MPU的CPU利用率?

之前说过,每个实体会对应一个索引号,便是后面的8位数字了,我们之前找到的是68943881。

综合CPU利用率与实体索引号,可以找到:

OID=.1.3.6.1.4.1.2011.5.25.31.1.1.1.1.5.68943881, Type=Integer, Value=9

结论:主控板的CPU利用率是9%

同理,主控板的内存利用率是22%。

END