Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

SNMP frente a telemetría

Configuración de SNMP en WLC

A través de la interfaz web

A través de la línea de comandos

Nombres de objetos e ID de objetos (OID)

¿Qué son los nombres de objeto y los OID?

MIBs y lista de todos los nombres e ID de objeto en Cisco WLCs

Utilice los OID para Monitorear el Estado del WLC

Supervisión mediante Snmpwalk

Monitor a través de Python3 y biblioteca de pysnmp

Integración con software de terceros (Grafana+Prometheus/PRTG Network Monitor/SolarWinds)

Integración con CUCM

Tabla de OIDs Monitorizados con Mayor Frecuencia

Supervisión de WLC en espera en HA

Monitoree el WLC en espera directamente

Monitorear el WLC en espera a través del WLC activo

Introducción

Este documento describe cómo configurar el Protocolo simple de administración de red (SNMP) para monitorear el Controlador de LAN inalámbrica (WLC) Cisco 9800.

Prerequisites

Requirements

- Conocimiento básico de 9800 WLC y protocolo SNMP

- Herramienta/servidor SNMP

Componentes Utilizados

Todas las pruebas se realizaron en MacOS 10.14 y un WLC 9800-CL con la versión de imagen 17.5.1. Algunos de los OID mencionados en este artículo no existen en versiones de imágenes anteriores.

La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

SNMP frente a telemetría

Los WLCs antiguos de AireOS confían en SNMP como el protocolo principal para el monitor. La mayoría de la información relevante como el conteo de clientes, el número de puntos de acceso unidos, el procesador y el uso de la memoria se pueden obtener a través de la consulta SNMP de la herramienta que monitorea, al WLC.

Con 9800 WLC, el foco se ha puesto en la telemetría. La telemetría funciona en un modelo "push" donde el WLC envía información relevante al servidor sin necesidad de ser consultado. Catalyst 9800 todavía ofrece SNMP para propósitos heredados. Parte de la información puede ser exclusiva de la telemetría y algunos de los OID previamente disponibles en AireOS aún no están disponibles en 9800.

Configuración de SNMP en WLC

Desde Cisco IOS XE Bengaluru 17.6.1, el puerto de servicio Ethernet (interfaz de administración VRF/GigabitEthernet 0) es compatible con el controlador inalámbrico Catalyst de Cisco serie 9800.

Antes de esta versión, el WLC Catalyst 9800 solo se podía monitorear con SNMP a través de su interfaz de administración inalámbrica o a través de la interfaz de administración de redundancia (en el caso de un WLC en espera en un clúster HA en las versiones 17.5.1 y posteriores).

A través de la interfaz web

SNMPv2c es una versión basada en la comunidad de SNMP y toda la comunicación entre los dispositivos está en texto sin formato. SNMPv3 es la versión más segura que ofrece comprobaciones de integridad de mensajes, autenticación y cifrado de los paquetes. SNMPv1 está extremadamente obsoleto, pero aún existe para proporcionar compatibilidad de software heredado. No se menciona en este artículo.

Importante: SNMPv2c está habilitado de forma predeterminada con la comunidad "private" con privilegios de lectura y escritura y la comunidad "public" con privilegios de solo lectura. Se recomienda quitarlos y crear una nueva comunidad con un nombre diferente.

Inicie sesión en la interfaz web del WLC 9800. En Administration > Management > SNMP asegúrese de que SNMP esté habilitado globalmente. En Cadenas de comunidad se muestran todas las comunidades configuradas actualmente y su nivel de permisos:

Antes de crear un usuario SNMP V3, es necesario definir un grupo SNMP V3. Para crear un grupo de usuarios con permiso de lectura y escritura, establezca la Vista de lectura y la Vista de escritura en v1default. El grupo de solo lectura debe tener la vista de escritura vacía

En la ficha SNMP V3 Users, puede ver todos los usuarios configurados, sus privilegios y protocolos utilizados para la autenticación y el cifrado. El botón Nuevo permite crear un nuevo usuario.

Hay 3 modos de seguridad disponibles:

1. AuthPriv = Los mensajes se autentican y cifran

2. AuthNoPriv = Los mensajes se autentican pero no se cifran

3. NoAuthNoPriv = No se aplica seguridad a los mensajes

Seleccione SHA como protocolo de autenticación y se recomienda al menos AES-128 como protocolo de privacidad.

A través de la línea de comandos

SNMP también se puede configurar a través de la interfaz de línea de comandos (CLI). CLI ofrece parámetros de configuración adicionales, como la capacidad de asignar una lista de acceso a la comunidad v2 o al usuario v3.

Ejemplo de configuración de la comunidad de lectura y escritura v2, el grupo de lectura y escritura v3 y el usuario v3 que pertenece a este grupo:

snmp-server manager

snmp-server community

RW

snmp-server community

RO

snmp-server group

v3 auth write v1default snmp-server user

v3 auth sha

priv aes 128

access

Ejemplo de una lista de acceso que solamente permite que el dispositivo en la dirección IP 192.168.10.10 consulte la comunidad del WLC v2 llamada "Comunidad de LecturaEscritura":

ip access-list standard 50

10 permit 192.168.10.10

20 deny   any

snmp-server manager

snmp-server community ReadWriteCommunity RW 50

Nota: En el momento de escribir este documento, sólo se admiten ACL estándar. Las ACL extendidas se pueden asignar, pero no funcionan.

Nombres de objetos e ID de objetos (OID)

¿Qué son los nombres de objeto y los OID?

Los ID de objeto, o OID para abreviar, son identificadores únicos que representan una variable u objeto determinado. Por ejemplo, el uso actual del procesador se considera una variable cuyos valores se pueden recuperar con la llamada en su ID de objeto. Cada OID es único y no puede haber dos iguales en todo el mundo, bastante similares a una dirección MAC.

Estos identificadores siguen una jerarquía de árbol y se puede realizar un seguimiento de cada OID hasta su raíz. Cada proveedor tiene su propia sucursal con una raíz común.

Una analogía podría ser una dirección de casa, donde la raíz sería el país o estado, seguido por un código postal de la ciudad, la calle y, finalmente, el número de casa.

Los números seguidos por un punto representan cada paso que toma para llegar a un punto determinado en ese árbol o rama.

Todos estos valores se almacenan en una Base de información de administración, o MIB para abreviar, en cada dispositivo de red. Cada identificador tiene un nombre y una definición (rango de valores posibles, tipo...).

No es necesario cargar una MIB en la herramienta de supervisión SNMP para utilizar SNMP y consultar un dispositivo.

Siempre que se conozca un OID válido, el dispositivo responde con el valor almacenado en la variable que representa el OID. Sin embargo, si carga la MIB en su herramienta de consulta, proporciona la ventaja de traducir los nombres de objeto a sus IDs y permite conocer su descripción.

En este ejemplo, la herramienta SNMP consulta al agente SNMP de un dispositivo su descripción del sistema con el uso de OID 1.3.6.1.2.1.1.1.0.

MIBs y lista de todos los nombres e ID de objeto en Cisco WLCs

Cisco ofrece Management Information Base (MIB) para WLC 9800. No es fácilmente legible, pero la MIB contiene todos los nombres de objeto disponibles y su descripción.

Todos los modelos 9800 (9800-80, 9800-40, 9800-L, 9800-CL, EWC) utilizan la misma MIB que se puede descargar aquí: https://software.cisco.com/download/home/286322605/type/280775088/release/.

El más actualizado es el que tiene la fecha más reciente, no el que tiene el nombre de versión de código más alto.

El archivo de almacenamiento descargado contiene varios archivos de texto .my que se pueden importar a cualquier servidor SNMP de terceros o simplemente abrir con un editor de texto. Para encontrar el OID de un nombre de objeto específico, primero debe localizar el archivo exacto que lo contiene.

Por ejemplo, todos los objetos relacionados con la supervisión del estado físico del dispositivo (como la CPU y la memoria) se encuentran dentro de una MIB denominada CISCO-PROCESS-MIB.my.

Aquí, "cpmCPUMemoryUsed" es el nombre del objeto que se utiliza para proporcionar la cantidad de memoria utilizada por el WLC en bytes. Todos los archivos MIB tienen una sintaxis similar. La información sobre el objeto de memoria utilizado es similar a la siguiente:

cpmCPUMemoryUsed OBJECT-TYPE

SYNTAX          Gauge32

UNITS           "kilo-bytes"

MAX-ACCESS      read-only

STATUS          current

DESCRIPTION

"The overall CPU wide system memory which is currently

under use."

::= { cpmCPUTotalEntry 12 }

La mayor parte del software de terceros para supervisar se basa en OID, no en nombres de objetos. La traducción entre el nombre de objeto y el ID de objeto se puede realizar con el uso de la herramienta Cisco SNMP Object Navigator.

Introduzca el nombre del objeto en la barra de búsqueda. El resultado proporciona el OID y una breve descripción. Además, se puede utilizar la misma herramienta para buscar el nombre de objeto del OID proporcionado.

Utilice los OID para Monitorear el Estado del WLC

Después de la adquisición del OID del objeto que necesita ser monitoreado, se puede ejecutar la primera consulta SNMP.

Los ejemplos de este capítulo muestran cómo adquirir una memoria libre de WLC (OID = 1.3.6.1.4.1.9.9.48.1.1.1.5) para SNMPv2 community private y SNMPv3 user snmpadmin con la contraseña de autenticación SHA Cisco123# y la contraseña de privacidad AES establecida en Cisco123#. La interfaz de administración del controlador se encuentra en 10.48.39.133.

Supervisión mediante Snmpwalk

Snmpwalk es una aplicación SNMP que utiliza solicitudes SNMP GETNEXT para consultar una entidad de red para obtener un árbol de información. Está presente de forma predeterminada en MacOS y en la mayoría de las distribuciones Linux. Para SNMPv2c, el comando sigue la sintaxis:

snmpwalk -v2c -c

Ejemplo:

VAPEROVI:~ vaperovi$ snmpwalk -v2c -c private 10.48.39.133 1.3.6.1.4.1.9.9.109.1.1.1.1.12

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.2 = 3783236 <-------- Free Memory in Bytes

Si se utiliza SNMPv3, el comando sigue la sintaxis:

snmpwalk -v3 -l authPriv -u <username> -a [MD5|SHA] -A <auth_password> -x [AES|DES] -X <priv_password> <WLC_management_interface_ip> <OID>

Seleccione MD5/SHA y AES/DES en función de cómo creó el usuario SNMPv3 en el controlador.

Ejemplo:

VAPEROVI:~ vaperovi$ snmpwalk -v3  -l authPriv -u snmpadmin -a SHA -A Cisco123# -x AES -X Cisco123# 10.48.39.133 1.3.6.1.4.1.9.9.109.1.1.1.1.12

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.2 = 3783236 <-------- Free Memory in Bytes

#snmpwalk output still shows v2 even though v3 is used

Monitor a través de Python3 y biblioteca de pysnmp

Los fragmentos de código se escriben para Python 3.9 y utilizan el módulo pysnmp (pip install pysnmp) para realizar consultas SNMP para la utilización de memoria del WLC de Catalyst 9800-CL. Estos ejemplos utilizan la misma comunidad SNMPv2 y usuario SNMPv3 creados en uno de los capítulos anteriores. Simplemente reemplace los valores de variable e integre el código dentro de sus propias secuencias de comandos personalizadas.

Ejemplo de SNMPv2:

from pysnmp.hlapi import *

communityName = 'private'

ipAddress = '10.48.39.133'

OID = '1.3.6.1.4.1.9.9.109.1.1.1.1.12'

for (errorIndication,

errorStatus,

errorIndex,

varBinds) in nextCmd(SnmpEngine(),

CommunityData(communityName),

UdpTransportTarget((ipAddress, 161)),

ContextData(),

ObjectType(ObjectIdentity(OID)),

lexicographicMode=False):

if errorIndication:

print(errorIndication)

elif errorStatus:

print('%s at %s' % (errorStatus.prettyPrint(),

errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))

else:

for varBind in varBinds:

print(' = '.join([x.prettyPrint() for x in varBind]))

Salida imprime:

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.2 = 3783236

Ejemplo de SNMPv3:

from pysnmp.hlapi import *

username = 'snmpadmin'

ipAddress = '10.48.39.133'

OID = '1.3.6.1.4.1.9.9.109.1.1.1.1.12'

authKey = 'Cisco123#'

privKey = 'Cisco123#'

for (errorIndication,

errorStatus,

errorIndex,

varBinds) in nextCmd(SnmpEngine(),

UsmUserData(username, authKey, privKey,

authProtocol=usmHMACSHAAuthProtocol,

privProtocol=usmAesCfb128Protocol),

UdpTransportTarget((ipAddress, 161)),

ContextData(),

ObjectType(ObjectIdentity(OID)),

lexicographicMode=False):

if errorIndication:

print(errorIndication)

elif errorStatus:

print('%s at %s' % (errorStatus.prettyPrint(),

errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))

else:

for varBind in varBinds:

print(' = '.join([x.prettyPrint() for x in varBind]))

Integración con software de terceros (Grafana+Prometheus/PRTG Network Monitor/SolarWinds)

La infraestructura Cisco Prime permite supervisar y configurar fácilmente varios dispositivos de red, incluidos los controladores inalámbricos.

Prime Infrastructure viene precargado con todos los OID y la integración con el WLC consiste simplemente en la adición de las credenciales del WLC a Prime. Con 9800 WLC, Prime depende principalmente de la telemetría para recopilar la mayoría de los detalles del WLC, mientras que la pequeña porción de la información se obtiene a través de SNMP.

Por otro lado, Cisco WLC también se puede integrar con varias soluciones de terceros para el monitor, siempre que se conozcan los OID.

Programas como Grafana+Prometheus, PRTG Network monitor y SolarWinds server permiten la importación de MIBs u OIDs y la visualización de valores en un gráfico fácil de usar.

Esta integración puede requerir algunos ajustes en el lado del servidor SNMP. En este ejemplo, el servidor de supervisión PRTG se proporciona con el OID de utilización de CPU por núcleo que devuelve la cadena "0%/1%, 1%/1%, 0%/1%, 0%/1%". PRTG espera un valor entero y genera un error.

Integración con CUCM

Cisco Unified Communications Manager (CUCM) cuenta con una función de seguimiento de terminales inalámbricos que le permite realizar un seguimiento aproximado de la ubicación del cliente en función del punto de acceso al que esté conectado el cliente. Para que esta función funcione, CUCM tiene que extraer información del WLC a través de consultas SNMP.

Importante: Muchas versiones de CUCM se ven afectadas por el Id. de error de Cisco CSCvv07486 - No se pueden sincronizar los puntos de acceso en el WLC debido a que las solicitudes SNMP son demasiado grandes. Este problema se activa en situaciones en las que CUCM ejecuta una versión afectada y el WLC tiene más de 10 puntos de acceso. Debido a la manera incorrecta que CUCM consulta una gran cantidad de OID en una sola solicitud masiva, el WLC se niega a contestar o contesta con una respuesta tooBig. La respuesta demasiado grande no siempre se envía inmediatamente y puede retrasarse. Los debugs SNMP en la impresión del WLC "SNMP: Paquete recibido vía UDP de x.x.x.x en VlanXXSrParseV1SnmpMessage: el paquete es demasiado grande SrDoSnmp: Error de análisis de ASN".

Tabla de OIDs Monitorizados con Mayor Frecuencia

La tabla incluye algunos de los nombres de objeto más comunes y sus OID, con la consideración de que los MIB presentan los datos en una sintaxis no amigable para el usuario:

Nota: Comando "show snmp mib | in <Object name>" se puede utilizar para verificar si un determinado nombre de objeto está disponible en el WLC 9800.

Descripción

Nombre del Objeto

OID (ID del objeto)

Respuesta esperada

Uso general de la CPU en % durante los últimos 5 s

cpmCPUTotal5sec

1.3.6.1.4.1.9.9.109.1.1.1.1.3

ENTERO: 5

Uso general de la CPU en % durante los últimos 1 min

cpmCPUTotal1min

1.3.6.1.4.1.9.9.109.1.1.1.1.4

ENTERO: 5

Uso general de la CPU en % durante los últimos 5 minutos

cpmCPUTotal5min

1.3.6.1.4.1.9.9.109.1.1.1.1.5

ENTERO: 5

Memoria utilizada actual en bytes

cpmCPUMemoryUsed

1.3.6.1.4.1.9.9.109.1.1.1.1.12

ENTERO: 3783236

Memoria libre actual en bytes

cpmCPUMemoryFree

1.3.6.1.4.1.9.9.109.1.1.1.1.13

ENTERO: 4263578

La menor cantidad de memoria libre desde el último arranque en bytes

cpmCPUMemoryLowest

1.3.6.1.4.1.9.9.109.1.1.1.1.15

ENTERO: 4251212

Motivo de la última recarga

por quéRecargar

1.3.6.1.4.1.9.2.1.2

STRING: "reload"

Imagen de software de todos los AP unidos

bsnAPSoftwareVersion

1.3.6.1.4.1.14179.2.2.1.1.8

STRING: "17.5.1.12"

Número de modelo de todos los AP unidos

bsnAPModel

1.3.6.1.4.1.14179.2.2.1.1.16

STRING: "AIR-AP1840I-E-K9"

Número de clientes

X

X

X

Número de puntos de acceso unidos

X

X

X

Estado de la unidad de alimentación

X

X

X

Estado del ventilador

X

X

X

Actualmente hay solicitudes de mejora abiertas para admitir OID del número total de clientes y el número de puntos de acceso unidos:

ID de bug de Cisco CSCvu26309 - El OID de SNMP para el conteo de clientes no está presente en 9800

ID de bug de Cisco CSCvv44330 - OID de SNMP para AP no presente en 9800

En el momento de escribir este artículo, no se admite el estado de la unidad de alimentación (PSU) ni el estado del ventilador. Se ha abierto la solicitud de mejora:

ID de bug de Cisco CSCwa23598 - Mejora del WLC 9800 / Soporte para PSU y estado del ventilador SNMP OID (1.3.6.1.4.1.9.9.13)

Supervisión de WLC en espera en HA

Monitorear un WLC en espera en el clúster de alta disponibilidad sólo es posible desde la versión 17.5.1. El WLC en espera puede ser monitoreado directamente a través de RMI o con la consulta del WLC activo.

Monitoree el WLC en espera directamente

El WLC en espera se puede monitorear directamente solamente si los WLC que se ejecutan en el tipo RMI + RP HA. Se realiza a través de la dirección IP de la interfaz de administración de redundancia (RMI) en espera del WLC en espera.

En este escenario, solamente los OID de IF-MIB son soportados oficialmente, lo que hace posible solamente monitorear el estado de todas las interfaces en el WLC en espera. Ejemplo de salida de 9800-CL WLC:

Descripción

Nombre del Objeto

OID (ID del objeto)

Respuesta esperada

Nombre de interfaz

ifDescr

1.3.6.1.2.1.2.2.1.2

SNMPv2-SMI::mib-2.2.2.1.2.1 = GigabitEthernet1

SNMPv2-SMI::mib-2.2.2.1.2.2 = GigabitEthernet2

SNMPv2-SMI::mib-2.2.2.1.2.3 = GigabitEthernet3

SNMPv2-SMI::mib-2.2.2.1.2.4 = VoIP-Null0

SNMPv2-SMI::mib-2.2.2.1.2.5 = Null0

SNMPv2-SMI::mib-2.2.2.1.2.6 = Vlan1

SNMPv2-SMI::mib-2.2.2.1.2.7 = Vlan39

Estado operativo de la interfaz (1=arriba, 2=abajo)

ifOperStatus

1.3.6.1.2.1.2.2.1.8

SNMPv2-SMI::mib-2.2.2.1.8.1 = 2

SNMPv2-SMI::mib-2.2.2.1.8.2 = 2

SNMPv2-SMI::mib-2.2.2.1.8.3 = 1

SNMPv2-SMI::mib-2.2.2.1.8.4 = 2

SNMPv2-SMI::mib-2.2.2.1.8.5 = 2

SNMPv2-SMI::mib-2.2.2.1.8.6 = 1

Nota: Se espera que el puerto Gig 2 del WLC en espera (puerto troncal utilizado para la conmutación del tráfico) esté en estado apagado. Una vez que ocurre el failover, el puerto Gig 2 en el WLC standby aparece. Algo similar ocurre con los puertos de 10 gigabits en dispositivos físicos 9800 (9800-80, 9800-40 y 9800-CL).

Monitorear el WLC en espera a través del WLC activo

El estado de WLC en espera también se puede monitorear con la consulta al WLC activo. Solamente se soportan oficialmente CISCO-LWAPP-HA-MIB y CISCO-PROCESS-MIB. Cuando se consulta el WLC activo en HA, la primera respuesta representa el valor del WLC activo, mientras que la segunda respuesta representa el valor del WLC en espera.

Descripción

Nombre del Objeto

OID (ID del objeto)

Respuesta esperada

Uso general de la CPU en % durante los últimos 5 s

cpmCPUTotal5sec

1.3.6.1.4.1.9.9.109.1.1.1.1.3

SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.3.5 = 3

SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.3.6 = 7

Uso general de la CPU en % durante los últimos 1 min

cpmCPUTotal1min

1.3.6.1.4.1.9.9.109.1.1.1.1.4

SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.4.5 = 8

SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.4.6 = 6

Uso general de la CPU en % durante los últimos 5 minutos

cpmCPUTotal5min

1.3.6.1.4.1.9.9.109.1.1.1.1.5

SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.5.5 = 10

SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.5.6 = 15

Memoria utilizada actual en bytes

cpmCPUMemoryUsed

1.3.6.1.4.1.9.9.109.1.1.1.1.12

SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.12.5 = 4318980

SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.12.6 = 3950332

Memoria libre actual en bytes

cpmCPUMemoryFree

1.3.6.1.4.1.9.9.109.1.1.1.1.13

SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.12.5 = 4318739

SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.12.6 = 3950738

La menor cantidad de memoria libre desde el último arranque en bytes

cpmCPUMemoryLowest

1.3.6.1.4.1.9.9.109.1.1.1.1.15

SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.15.5 = 3763868

SNMPv2-SMI::enterprise.9.9.109.1.1.1.1.15.6 = 4132588

Estado del WLC en espera (1=arriba, 0=abajo)

cLHaPeerHotStandbyEvent

1.3.6.1.4.1.9.9.843.1.3.4

SNMPv2-SMI::enterprise.9.9.843.1.3.4.0 = 1