请选择 进入手机版 | 继续访问电脑版

设为首页 收藏本站
思科社区 关注
思科社区

搜索
热搜: 邮件服务器
查看: 795|回复: 3

使用OID通过SNMP监视Cisco AireOS WLC【原创翻译】

[复制链接]
发表于 2020-1-19 17:38:02 | 显示全部楼层 |阅读模式
介绍
本文将说明如何在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->常规下,确保启用所需的协议版本。


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


最佳实践是删除默认的预配置社区并创建一个新社区。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 <ip_address> <netmask> <community_name>


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

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


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

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

但是,在查询工具上加载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的相应对象名称。


使用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 <社区名称> <WLC管理接口IP> <OID>
例:
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 <auth_password> -x [AES | DES] -X <priv_password> <WLC_management_interface_ip> <OID>
根据在控制器上创建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


本帖子中包含更多资源

您需要 思科 CCO 登录 才可以下载或查看,没有帐号?思科 CCO 注册   

x
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
发表于 2020-1-19 18:25:23 | 显示全部楼层
感谢版主大大分享,谢谢~
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
发表于 2020-1-23 14:29:57 | 显示全部楼层
赞赞赞,非常好的分享
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
发表于 2020-2-6 13:00:53 | 显示全部楼层
可以监控那个AP掉线了吗?思科AireOS WLC掉线的AP就不在WLC上显示了!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
您需要登录后才可以回帖 思科 CCO 登录 | 思科 CCO 注册   

本版积分规则

Archiver | 思科社区  

GMT+8, 2020-2-28 16:48 , Processed in 0.111657 second(s), 39 queries .

京ICP备09041801号-187

版权所有 :copyright:1992-2019 思科系统  重要声明 | 保密声明 | 隐私权政策 | 商标 |

快速回复 返回顶部 返回列表