Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

SNMP x telemetria

Configurar o SNMP no WLC

Por meio da interface da Web

Através da linha de comando

Nomes de objetos e IDs de objetos (OIDs)

O que são nomes de objetos e OIDs?

MIBs e lista de todos os nomes de objetos e IDs em Cisco WLCs

Usar OIDs para monitorar o estado da WLC

Monitor via Snmpwalk

Monitor através da biblioteca Python3 e pysnmp

Integração com software de terceiros (Grafana+Prometheus/PRTG Network Monitor/SolarWinds)

Integração com CUCM

Tabela dos OIDs mais comumente monitorados

Monitorar a WLC em standby em HA

Monitorar diretamente a WLC em standby

Monitorar a WLC em standby por meio da WLC ativa

Introduction

Este documento descreve como configurar o Simple Network Management Protocol (SNMP) para monitorar a controladora Wireless LAN (WLC) Cisco 9800.

Prerequisites

Requirements

- Conhecimento básico do protocolo 9800 WLC e SNMP

- Servidor/ferramenta SNMP

Componentes Utilizados

Todos os testes foram realizados no MacOS 10.14 e em uma WLC 9800-CL com a versão da imagem 17.5.1. Alguns dos OIDs mencionados neste artigo não existem em versões de imagem mais antigas.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

SNMP x telemetria

As WLCs mais antigas do AireOS dependem do SNMP como o protocolo principal do monitor. A maioria das informações relevantes, como a contagem de clientes, o número de pontos de acesso unidos, o processador e o uso de memória, podem ser obtidas através de consulta SNMP da ferramenta que monitora, para a WLC.

Com a WLC 9800, o foco foi colocado na telemetria. A telemetria funciona em um modelo "push", em que a WLC envia informações relevantes ao servidor sem a necessidade de consulta. O Catalyst 9800 ainda oferece o SNMP para fins de legado. Algumas informações podem ser exclusivas para telemetria e alguns dos OIDs anteriormente disponíveis no AireOS ainda não estão disponíveis no 9800.

Configurar o SNMP no WLC

A partir do Cisco IOS XE Bengaluru 17.6.1, a porta de serviço Ethernet (interface de gerenciamento VRF/GigabitEthernet 0) é suportada no Cisco Catalyst 9800 Series Wireless Controller.

Antes desta versão, o Catalyst 9800 WLC só podia ser monitorado com SNMP através de sua interface de gerenciamento sem fio ou através da interface de gerenciamento de redundância (no caso de um WLC em standby no cluster HA nas versões 17.5.1 e superior).

Por meio da interface da Web

O SNMPv2c é uma versão baseada em comunidade do SNMP e toda a comunicação entre os dispositivos está em texto claro. O SNMPv3 é a versão mais segura que oferece verificações de integridade de mensagem, autenticação e criptografia dos pacotes. O SNMPv1 está extremamente desatualizado, mas ainda existe para fornecer compatibilidade de software herdado. Não é mencionado neste artigo.

Importante: o SNMPv2c é ativado por padrão com a comunidade "privada" com privilégios de leitura+gravação e a comunidade "pública" com privilégios somente leitura. É recomendável removê-los e criar uma nova comunidade com um nome diferente.

Faça login na interface da Web do WLC 9800. Em Administration > Management > SNMP, certifique-se de que o SNMP esteja habilitado globalmente. Em Community Strings, todas as comunidades configuradas no momento e seus níveis de permissão são exibidos:

Antes da criação do usuário SNMP V3, é necessário definir um grupo SNMP V3. Para criar um grupo de usuários com permissão de leitura+gravação, defina Read View e Write View como v1default. O grupo somente leitura precisa ter o Modo de Gravação vazio

Na guia SNMP V3 Users, você pode ver todos os usuários configurados, seus privilégios e protocolos usados para autenticação e criptografia. Botão Novo permite a criação de um novo usuário.

Há três modos de segurança disponíveis:

1. AuthPriv = As mensagens são autenticadas e criptografadas

2. AuthNoPriv = As mensagens são autenticadas, mas não criptografadas

3. NoAuthNoPriv = Nenhuma segurança aplicada às mensagens

Selecione SHA como protocolo de autenticação e pelo menos AES-128 como protocolo de privacidade é recomendado.

Através da linha de comando

O SNMP também pode ser configurado através da Interface de Linha de Comando (CLI). A CLI oferece parâmetros de configuração adicionais, como a capacidade de atribuir uma lista de acesso à comunidade v2 ou ao usuário v3.

Exemplo de configuração da comunidade v2 leitura+gravação, grupo v3 leitura+gravação e usuário v3 que pertence 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

Exemplo de uma lista de acesso que só permite que o dispositivo no endereço IP 192.168.10.10 consulte a comunidade WLC v2 chamada "ReadWriteCommunity":

ip access-list standard 50

10 permit 192.168.10.10

20 deny   any

snmp-server manager

snmp-server community ReadWriteCommunity RW 50

Note: No momento da gravação deste documento, somente ACLs padrão são suportadas. As ACLs estendidas podem ser atribuídas, mas não funcionam.

Nomes de objetos e IDs de objetos (OIDs)

O que são nomes de objetos e OIDs?

Os IDs de objeto, ou OIDs abreviados, são identificadores exclusivos que representam uma determinada variável ou objeto. Por exemplo, o uso atual do processador é considerado variável, cujos valores podem ser recuperados com a chamada em seu ID de objeto. Cada OID é exclusivo e não pode haver dois iguais em todo o mundo, muito semelhante a um endereço MAC.

Esses identificadores seguem uma hierarquia de árvore e cada OID pode ser rastreado até sua raiz. Cada fornecedor tem sua própria filial com uma raiz comum.

Uma analogia poderia ser um endereço residencial, onde a raiz seria o país ou o estado, seguido por um CEP da cidade, a rua e, finalmente, o número residencial.

Os números seguidos de um ponto representam cada etapa necessária para chegar a um certo ponto nessa árvore ou ramificação.

Todos esses valores são armazenados em uma base de informações de gerenciamento, ou MIB, abreviando, em cada dispositivo de rede. Cada identificador tem nome e uma definição (intervalo de valores possíveis, tipo...).

Não é necessário carregar uma MIB na ferramenta de monitoramento SNMP para usar o SNMP e consultar um dispositivo.

Desde que um OID válido seja conhecido, o dispositivo responde com o valor que é armazenado na variável que o OID representa. No entanto, se você carregar o MIB em sua ferramenta de consulta, ele fornecerá a vantagem de converter os nomes de objetos em suas IDs e permitirá que o saiba sua descrição.

Neste exemplo, a ferramenta SNMP consulta o agente SNMP de um dispositivo para obter sua descrição do sistema com o uso do OID 1.3.6.1.2.1.1.1.0.

MIBs e lista de todos os nomes de objetos e IDs em Cisco WLCs

A Cisco oferece Base de Informações de Gerenciamento (MIBs - Management Information Base) para 9800 WLCs. Não é de fácil leitura, mas o MIB contém todos os nomes de objetos disponíveis e suas descrições.

Todos os modelos 9800 (9800-80, 9800-40, 9800-L, 9800-CL, EWC) usam o mesmo MIB que pode ser baixado aqui: https://software.cisco.com/download/home/286322605/type/280775088/release/.

A mais atualizada é aquela com a data mais recente, não aquela com o nome de versão de código mais alto.

O arquivo morto baixado contém vários arquivos de texto .my que podem ser importados para qualquer servidor SNMP de terceiros ou simplesmente abertos com um editor de texto. Para localizar o OID de um nome de objeto específico, primeiro é necessário localizar o arquivo exato que o contém.

Por exemplo, todos os objetos relacionados a monitorar o estado físico do dispositivo (como CPU e memória) estão localizados dentro de um MIB chamado CISCO-PROCESS-MIB.my.

Aqui, "cpmCPUMemoryUsed" é o nome do objeto que é usado para fornecer a quantidade de memória usada pelo WLC em bytes. Todos os arquivos MIB seguem uma sintaxe semelhante. As informações sobre o objeto de memória usado se parecem com:

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 }

A maioria dos softwares de terceiros para monitorar depende de OIDs, e não de nomes de objetos. A conversão entre o nome do objeto e a ID do objeto pode ser feita com o uso da ferramenta de navegador de objetos Cisco SNMP.

Digite o nome do objeto na barra de pesquisa. O Output fornece o OID e uma breve descrição. Além disso, a mesma ferramenta pode ser usada para localizar o nome do objeto do OID fornecido.

Usar OIDs para monitorar o estado da WLC

Após a aquisição do OID do objeto que precisa ser monitorado, a primeira consulta SNMP pode ser executada.

Exemplos neste capítulo mostram como adquirir uma memória livre de WLC (OID = 1.3.6.1.4.1.9.9.48.1.1.1.5) para SNMPv2 community private e usuário SNMPv3 snmpadmin com a senha SHA Auth Cisco123# e a senha AES Privacy definida como Cisco123#. A interface de gerenciamento do controlador está localizada em 10.48.39.133.

Monitor via Snmpwalk

Snmpwalk é uma aplicação SNMP que usa solicitações SNMP GETNEXT para consultar uma entidade de rede em busca de uma árvore de informações. Ele está presente por padrão no MacOS e na maioria das distribuições Linux. Para o SNMPv2c, o comando segue a sintaxe:

snmpwalk -v2c -c

Exemplo:

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

Se o SNMPv3 for usado, o comando segue a sintaxe:

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

Selecione MD5/SHA e AES/DES com base em como você criou o usuário SNMPv3 no controlador.

Exemplo:

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 através da biblioteca Python3 e pysnmp

Os trechos de código são escritos para Python 3.9 e utilizam o módulo pysnmp (pip install pysnmp) para fazer consultas SNMP para utilização de memória do Catalyst 9800-CL WLC. Esses exemplos usam a mesma comunidade SNMPv2 e o usuário SNMPv3 criados em um dos capítulos anteriores. Basta substituir os valores de variáveis e integrar o código em seus próprios scripts personalizados.

Exemplo 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]))

A saída é impressa:

SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.2 = 3783236

Exemplo 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]))

Integração com software de terceiros (Grafana+Prometheus/PRTG Network Monitor/SolarWinds)

O Cisco Prime Infrastructure oferece a capacidade de monitorar e configurar facilmente vários dispositivos de rede, o que inclui controladores sem fio.

A Prime Infrastructure vem pré-carregada com todos os OIDs e a integração com a WLC consiste simplesmente na adição das credenciais da WLC ao Prime. Com 9800 WLCs, Prime depende principalmente de Telemetria para coletar a maioria dos detalhes da WLC, enquanto a pequena parte das informações é obtida através do SNMP.

Por outro lado, o Cisco WLC também pode ser integrado a várias soluções de terceiros para monitoramento, desde que os OIDs sejam conhecidos.

Programas como Grafana+Prometheus, PRTG Network monitor e SolarWinds server permitem que as MIBs ou OIDs sejam importadas e os valores sejam exibidos em um gráfico de fácil utilização.

Essa integração pode exigir alguns ajustes no lado do servidor SNMP. Neste exemplo, o servidor monitor PRTG é fornecido com o OID de utilização de CPU por núcleo que retorna a string "0%/1%, 1%/1%, 0%/1%, 0%/1%". PRTG espera um valor inteiro e gera um erro.

Integração com CUCM

O Cisco Unified Communications Manager (CUCM) tem um recurso de rastreamento de endpoint sem fio que permite rastrear aproximadamente a localização do cliente com base no AP ao qual o cliente está conectado. Para que esse recurso funcione, o CUCM precisa extrair informações da WLC através de consultas SNMP.

Importante: muitas versões do CUCM são afetadas pelo bug da Cisco ID CSCvv07486 - Não é possível sincronizar pontos de acesso na WLC devido a solicitações de SNMP muito grandes. Esse problema é acionado em situações em que o CUCM executa uma versão afetada e a WLC tem mais de 10 pontos de acesso. Devido à forma incorreta como o CUCM consulta uma grande quantidade de OIDs em uma única solicitação em massa, a WLC se recusa a responder ou responde com uma resposta tooBig. A resposta tooBig nem sempre é enviada imediatamente e pode ser atrasada. SNMP debugs on WLC print "SNMP: pacote recebido via UDP de x.x.x.x em VlanXXSrParseV1SnmpMessage: pacote é muito grande SrDoSnmp: erro de análise ASN".

Tabela dos OIDs mais comumente monitorados

A tabela inclui alguns dos nomes de objetos mais comuns e seus OIDs, considerando que os MIBs apresentam os dados em sintaxe não amigável:

Note: Comando "show snmp mib | em <Nome do objeto>" pode ser usado para verificar se um determinado nome de objeto está disponível na WLC 9800.

Descrição

Nome do objeto

OID

Resposta esperada

Uso geral de CPU em % nos últimos 5 segundos

cpmCPUTotal5sec

1.3.6.1.4.1.9.9.109.1.1.1.1.3

INTEIRO: 5

Uso geral da CPU em % últimos 1 min

cpmCPUTotal1min

1.3.6.1.4.1.9.9.109.1.1.1.1.4

INTEIRO: 5

Uso geral de CPU em % nos últimos 5 minutos

cpmCPUTotal5min

1.3.6.1.4.1.9.9.109.1.1.1.1.5

INTEIRO: 5

Memória usada atualmente em bytes

cpmCPUMemoryUsed

1.3.6.1.4.1.9.9.109.1.1.1.1.12

INTEIRO: 3783236

Memória livre atual em bytes

cpmCPUMemoryFree

1.3.6.1.4.1.9.9.109.1.1.1.1.13

INTEIRO: 4263578

Menor quantidade de memória livre desde a última inicialização em bytes

cpmCPUMemoryLowest

1.3.6.1.4.1.9.9.109.1.1.1.1.15

INTEIRO: 4251212

Motivo do último recarregamento

por queRecarregar

1.3.6.1.4.1.9.2.1.2

STRING: "recarregar"

Imagem de software de todos os APs associados

bsnAPSoftwareVersion

1.3.6.1.4.1.14179.2.2.1.1.8

CADEIA DE CARACTERES: "17.5.1.12"

Número do modelo de todos os APs associados

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 APs unidos

X

X

X

Estado da unidade de fonte de alimentação

X

X

X

Estado do ventilador

X

X

X

Atualmente, há solicitações de aprimoramento abertas para suportar OIDs do número total de clientes e do número de pontos de acesso unidos:

ID de bug Cisco CSCvu26309 - OID SNMP para contagem de cliente ausente no 9800

ID de bug Cisco CSCvv44330 - OID SNMP para AP não presente no 9800

O estado da PSU (Power Supply Unit, unidade de fonte de alimentação) e o estado do ventilador não são suportados no momento em que este artigo foi escrito. A solicitação de aprimoramento foi aberta:

ID de bug Cisco CSCwa23598 - Aprimoramento de WLC 9800 / Suporte para PSU e SNMP OID de estado do ventilador (1.3.6.1.4.1.9.9.13)

Monitorar a WLC em standby em HA

Monitorar uma WLC em standby no cluster de alta disponibilidade só é possível a partir da versão 17.5.1. A WLC em standby pode ser monitorada diretamente através da RMI ou com a consulta da WLC ativa.

Monitorar diretamente a WLC em standby

A WLC em standby pode ser monitorada diretamente somente se as WLCs que são executadas no tipo RMI + RP HA. Isso é feito através do endereço IP da interface de gerenciamento de redundância (RMI - Redundancy Management Interface) do WLC em standby.

Neste cenário, somente OIDs de IF-MIB são oficialmente suportados, o que torna possível apenas monitorar o estado de todas as interfaces na WLC em standby. Exemplo de saída do WLC 9800-CL:

Descrição

Nome do objeto

OID

Resposta esperada

Nome da interface

ifDescr

1.3.6.1.2.1.2.2.1.2

SNMPv2-SMI::mib-2.2.1.2.1 = GigabitEthernet1

SNMPv2-SMI::mib-2.2.1.2.2 = GigabitEthernet2

SNMPv2-SMI::mib-2.2.1.2.3 = GigabitEthernet3

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

SNMPv2-SMI::mib-2.2.1.2.5 = Null0

SNMPv2-SMI::mib-2.2.1.2.6 = Vlan1

SNMPv2-SMI::mib-2.2.1.2.7 = Vlan39

Estado operacional da interface (1=ativo, 2=inativo)

ifOperStatus

1.3.6.1.2.1.2.2.1.8

SNMPv2-SMI::mib-2.2.1.8.1 = 2

SNMPv2-SMI::mib-2.2.2.1.8.2 = 2

SNMPv2-SMI::mib-2.2.1.8.3 = 1

SNMPv2-SMI::mib-2.2.1.8.4 = 2

SNMPv2-SMI::mib-2.2.1.8.5 = 2

SNMPv2-SMI::mib-2.2.1.8.6 = 1

Nota: Espera-se que a porta Gig 2 da WLC em standby (porta de tronco usada para switching de tráfego) esteja em estado de desligamento. Uma vez que o failover ocorre, a porta Gig 2 na WLC em standby é ativada. O mesmo ocorre com portas de dez gigabits em 9800 dispositivos físicos (9800-80, 9800-40 e 9800-CL).

Monitorar a WLC em standby por meio da WLC ativa

O estado da WLC em standby também pode ser monitorado com a consulta à WLC ativa. Somente MIBs CISCO-LWAPP-HA-MIB e CISCO-PROCESS-MIB são oficialmente suportados. Quando a WLC ativa no HA é consultada, a primeira resposta representa o valor da WLC ativa, enquanto a segunda resposta representa o valor da WLC em standby.

Descrição

Nome do objeto

OID

Resposta esperada

Uso geral de CPU em % nos últimos 5 segundos

cpmCPUTotal5sec

1.3.6.1.4.1.9.9.109.1.1.1.1.3

SNMPv2-SMI::empresas.9.9.109.1.1.1.1.3.5 = 3

SNMPv2-SMI::empresas.9.9.109.1.1.1.1.3.6 = 7

Uso geral da CPU em % últimos 1 min

cpmCPUTotal1min

1.3.6.1.4.1.9.9.109.1.1.1.1.4

SNMPv2-SMI::empresas.9.9.109.1.1.1.1.4.5 = 8

SNMPv2-SMI::empresas.9.9.109.1.1.1.1.4.6 = 6

Uso geral de CPU em % nos últimos 5 minutos

cpmCPUTotal5min

1.3.6.1.4.1.9.9.109.1.1.1.1.5

SNMPv2-SMI::empresas.9.9.109.1.1.1.1.5.5 = 10

SNMPv2-SMI::empresas.9.9.109.1.1.1.1.5.6 = 15

Memória usada atualmente em bytes

cpmCPUMemoryUsed

1.3.6.1.4.1.9.9.109.1.1.1.1.12

SNMPv2-SMI::empresas.9.9.109.1.1.1.1.12.5 = 4318980

SNMPv2-SMI::empresas.9.9.109.1.1.1.1.12.6 = 3950332

Memória livre atual em bytes

cpmCPUMemoryFree

1.3.6.1.4.1.9.9.109.1.1.1.1.13

SNMPv2-SMI::empresas.9.9.109.1.1.1.1.12.5 = 4318739

SNMPv2-SMI::empresas.9.9.109.1.1.1.1.12.6 = 3950738

Menor quantidade de memória livre desde a última inicialização em bytes

cpmCPUMemoryLowest

1.3.6.1.4.1.9.9.109.1.1.1.1.15

SNMPv2-SMI::empresas.9.9.109.1.1.1.1.15.5 = 3763868

SNMPv2-SMI::empresas.9.9.109.1.1.1.1.15.6 = 4132588

Estado da WLC em standby (1=ativo, 0=inativo)

EventoHotStandbyPeerLHaPeer

1.3.6.1.4.1.9.9.843.1.3.4

SNMPv2-SMI::empresas.9.9.843.1.3.4.0 = 1