取消
显示结果 
搜索替代 
您的意思是: 
cancel
3416
查看次数
0
有帮助
3
评论
fortune
VIP Alumni
VIP Alumni
介绍
本文将说明如何在Cisco 3504无线局域网控制器(WLC)上配置SNMP监视,将对象名称转换为对象标识符,反之亦然,并提供Cisco客户最常用的OID列表。


使用的组件
所有测试均在运行映像版本8.9和MacOS 10.14的3504 WLC上执行。本文中的OID在较旧的AireOS版本和其他基于AireOS的无线控制器(8540/5508/5520/2504)上也有效。

在WLC上配置SNMP设置
SNMPv2c是SNMP的基于社区的版本,设备之间的所有通信均采用明文形式。SNMPv3是最安全的版本,可提供消息完整性检查,数据包的身份验证和加密。SNMPv1已过时,但仍然存在以提供旧版软件兼容性。

在本文中,将仅使用SNMPv2c和SNMPv3。
登录控制器的Web界面。
在管理-> SNMP->常规下,确保启用所需的协议版本。
173410e8olizgg7kssuik4.jpg


在社区菜单下,将显示所有当前创建的社区。
173411ap9lca7m7zclif11.jpg


最佳实践是删除默认的预配置社区并创建一个新社区。IP地址和网络掩码的行为类似于访问列表。默认情况下,两者都将设置为0.0.0.0,这意味着将允许所有IP地址对此社区进行SNMP查询。访问模式字段将保留为“只读”,因为我们希望该社区仅用于监视,而不用于WLC的配置。
重要说明:所有低于8.7.1.135的版本都会受到错误CSCvg61933的影响,在该错误中 ,不允许将网络掩码设置为255.255.255.255。可以将控制器升级到高于8.7.1.135的最新推荐版本,或在CLI中使用以下命令创建新的社区: config snmp community ipaddr
173411sysi5vj0q5d24asa.jpg


在“ SNMP V3用户”菜单下,您可以查看所有已配置的用户,其权限以及用于身份验证和加密的协议。“
新建”
按钮允许创建新用户。建议选择HMAC-SHA作为认证协议,选择CFB-AES-128作为隐私协议。我们将创建一个名为“ admin”的用户,其身份验证和隐私密码设置为“ Cisco123Cisco123”:173411kuzitq2sz2isp2ip.jpg

Object names and object IDs (OIDs)什么是对象名称和OID?
对象ID(简称OID)是代表特定变量或对象的唯一标识符。例如,当前的CPU使用率被认为是可变的,可以通过调用其对象ID来检索其值。每个OID都是唯一的,并且在世界范围内不应有两个相同,这与MAC地址非常相似。这些标识符遵循树的层次结构,每个OID都可以追溯到其根。每个供应商在通用根之后都有自己的分支。
打个比方可以是一个家庭住址,其中的根是国家或州,然后是城市邮政编码,街道,最后是住家号码。
数字后跟一个点,表示到达该树或分支中的特定点所需的每个步骤。

173634lk5d45osdx3vkhld.jpg

所有这些值都存储在每个网络设备的管理信息库(简称MIB)中。每个标识符都有名称和定义(可能的值范围,类型等)。

为了使用SNMP和查询设备,不需要在snmp工具上加载MIB​​,只要知道有效的OID,设备就会以OID表示的变量中存储的值进行响应。例如,在下图中,SNMP管理器正在使用OID 1.3.6.1.2.1.1.1.0向设备的SNMP代理查询其系统描述。
173635yfrzm6gfhyjt4gfv.jpg

但是,在查询工具上加载MIB​​可以从将OID号转换为名称并了解其定义中受益。
MIB以及思科WLC上所有对象名称和ID的列表
截至2019年5月,没有一个简单易用的表格包含每个可用对象名称及其各自用于无线LAN控制器的OID。作为替代,思科提供了管理信息库(MIB),该信息可能不易阅读,但包含所有可用的对象名称及其描述。可以在这里下载Cisco 3504 WLC MIB 。
下载的存档文件包含多个.my文本文件,这些文件可以导入任何第三方SNMP监视服务器,也可以使用常规文本编辑器直接打开。为了找到特定对象名称的OID,首先需要找到包含它的确切文件。
例如,所有与监视设备的物理状态(例如温度和风扇速度)有关的对象都将位于一个名为CISCO-ENVMON-MIB.my的MIB内部。在这里,“ ciscoEnvMonFanState”是将用于提供WLC风扇状态的对象名称。MIB文件遵循以下所示的语法。有关风扇状态对象的信息如下所示:
ciscoEnvMonFanState对象类型 语法CiscoEnvMonState MAX-ACCESS只读 当前状态 描述 “正在检测风扇的当前状态。” :: = {ciscoEnvMonFanStatusEntry 3}
大多数第三方监视软件都依赖OID,而不是对象名称。可以使用Cisco的SNMP对象导航器工具在对象名称和对象ID之间进行转换。 在搜索栏中输入对象名称。输出将提供OID和简短描述。此外,可以使用相同的工具查找OID的相应对象名称。

173411yc2ypv7aiqbbvuzc.jpg

使用OID监视WLC的状态
在获取需要监视的对象的OID之后,可以执行第一个SNMP查询。以下示例将展示如何使用SHA 身份验证密码Cisco123Cisco123和AES隐私密码设置为“ Cisco123Cisco123”的SNMPv2社区snmp_test和SNMPv3用户admin获取每个内核的WLC CPU使用率(OID = 1.3.6.1.4.1.9.9.618.1.4.1)。。控制器管理界面位于10.48.39.164。
通过snmpwalk监视
Snmpwalk是SNMP应用程序,它使用SNMP GETNEXT请求向网络实体查询信息树。默认情况下,它在MacOS和大多数Linux发行版中都存在。对于SNMPv2c,该命令将遵循以下语法:
snmpwalk -v2c -c <社区名称>
例:
VAPEROVI-M-H1YM:〜vaperovi $ snmpwalk -v2c -c snmp_test 10.48.39.164 1.3.6.1.4.1.9.9.618.1.4.1SNMPv2-SMI :: enterprises.9.9.618.1.4.1.0 = STRING:“ 0%/ 1%,0%/ 1%,0%/ 1%,0%/ 1%”
如果使用SNMPv3,则命令将遵循以下语法:
snmpwalk -v3 -l authPriv -u <用户名> -a [MD5 | SHA] -A -x [AES | DES] -X
根据在控制器上创建SNMPv3用户的方式,选择MD5 / SHA和AES / DES。
例:
VAPEROVI-M-H1YM:〜vaperovi $ snmpwalk -v3 -l authPriv -u admin -a SHA -A Cisco123Cisco123 -x AES -X Cisco123Cisco123 10.48.39.164 1.3.6.1.4.1.9.9.618.1.4.1SNMPv2-SMI :: enterprises.9.9.618.1.4.1.0 = STRING:“ 0%/ 1%,0%/ 1%,0%/ 0%,0%/ 1%”通过Python 3和pysnmp库进行监视
以下代码段是用Python 3.7编写的,将使用pysnmp模块(pip install pysnmp)对Cisco 3504 WLC的CPU使用率进行SNMP查询。这些示例将使用在上一章中创建的相同SNMPv2社区和SNMPv3用户。只需替换变量值,然后将代码与您自己的自定义脚本集成即可。
SNMPv2c示例:
从进口pysnmp.hlapi *
COMMUNITYNAME = ' snmp_test '
ip地址= '10 .48.39.164'
OID = '1.3.6.1.4.1.14179.2.3.1.13.0'
errorIndication,errorStatus,errorIndex,varBinds = next( getCmd(SnmpEngine(), CommunityData(社区名称), UdpTransportTarget((ipaddress,161)), ContextData(), ObjectType(ObjectIdentity(OID))))如果错误指示: 打印(错误指示)elif errorStatus: print('%s at%s'%(errorStatus.prettyPrint(), errorIndex和varBinds [int(errorIndex)-1] [0]或'?'))其他: 对于varBinds中的varBind: print('='.join([x.prettyPrint()for varBind中的x]))
输出将打印出来:
SNMPv2-SMI :: enterprises.14179.2.3.1.13.0 = 73
SNMPv3示例:
从pysnmp.hlapi导入*用户名='管理员'ipAddress = '10 .48.39.164'OID ='1.3.6.1.4.1.14179.2.3.1.13.0'authKey ='Cisco123Cisco123'privKey ='Cisco123Cisco123'errorIndication,errorStatus,errorIndex,varBinds = next( getCmd(SnmpEngine(), UsmUserData(用户名,authKey,privKey, authProtocol = usmHMACSHAAuthProtocol, privProtocol = usmAesCfb128Protocol), UdpTransportTarget((ipaddress,161)), ContextData(), ObjectType(ObjectIdentity(OID))))如果错误指示: 打印(错误指示)elif errorStatus: print('%s at%s'%(errorStatus.prettyPrint(), errorIndex和varBinds [int(errorIndex)-1] [0]或'?'))其他: 对于varBinds中的varBind: print('='.join([x.prettyPrint()for varBind中的x]))
最常监视的OID表
考虑到MIB以非用户友好的语法显示数据,下表包括一些最常见的对象名称以及Cisco客户正在使用的OID。









描述
对象名称
OID
预期回应
总体CPU使用率(%)
agentCurrentCPUUtilization
1.3.6.1.4.1.14179.1.1.5.1.0
整数:0
每核心CPU使用率
clsAllCpu用法
1.3.6.1.4.1.9.9.618.1.4.1.0
STRING:“ 0%/ 1%,0%/ 1%,0%/ 1%,0%/ 1%”
RAM使用率(%)
clsSysCurrentMemoryUsage
1.3.6.1.4.1.9.9.618.1.8.6.0
量规32:33
CPU温度(°C)
bsnSensorTemperature
1.3.6.1.4.1.14179.2.3.1.13.0
整数:76
已加入AP的数量
clsSysApConnectCount
1.3.6.1.4.1.9.9.618.1.8.4.0
量规32:2
客户数量
clsMaxClientsCount
1.3.6.1.4.1.9.9.618.1.8.12.0
量规32:0
每个WLAN的客户端数量
bsnDot11EssNumberOfMobileStations
1.3.6.1.4.1.14179.2.1.1.1.38.0
Counter32:3
Counter32:2


评论
one-time
Level 13
Level 13
感谢版主大大分享,谢谢~
赞赞赞,非常好的分享
Tiandao
Level 1
Level 1
可以监控那个AP掉线了吗?思科AireOS WLC掉线的AP就不在WLC上显示了!
入门指南

使用上面的搜索栏输入关键字、短语或问题,搜索问题的答案。

我们希望您在这里的旅程尽可能顺利,因此这里有一些链接可以帮助您快速熟悉思科社区:









快捷链接