Questo documento descrive come configurare Simple Network Management Protocol (SNMP) per monitorare Cisco 9800 Wireless LAN Controller (WLC).
Tutti i test sono stati eseguiti su MacOS 10.14 e su un WLC 9800-CL con immagine versione 17.5.1. Alcuni degli OID menzionati in questo articolo non esistono nelle versioni precedenti delle immagini.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
I precedenti WLC di AireOS si basano sul protocollo SNMP come protocollo principale da monitorare. La maggior parte delle informazioni importanti, come il numero di client, il numero di access point uniti, l'utilizzo di processore e memoria, possono essere ottenute tramite query SNMP dallo strumento di monitoraggio del WLC.
Con il 9800 WLC, l'attenzione è stata posta sulla telemetria. La telemetria funziona in un modello "push" in cui il WLC invia informazioni pertinenti al server senza la necessità di essere interrogati. Catalyst 9800 offre ancora il protocollo SNMP per scopi legacy. Alcune informazioni possono essere esclusive per la telemetria e alcuni OID precedentemente disponibili su AireOS non sono ancora disponibili su 9800.
A partire da Cisco IOS XE® Bengaluru 17.6.1, la porta servizio Ethernet (interfaccia di gestione VRF/Gigabit Ethernet 0) è supportata nei controller wireless Cisco Catalyst serie 9800.
Prima di questa release, il WLC di Catalyst 9800 può essere monitorato solo con il protocollo SNMP tramite l'interfaccia di gestione wireless o tramite l'interfaccia di gestione della ridondanza (nel caso di un WLC in standby in un cluster HA della versione 17.5.1 e successive).
SNMPv2c è una versione basata sulla community del protocollo SNMP e tutte le comunicazioni tra i dispositivi sono in formato testo non crittografato. SNMPv3 è la versione più sicura in grado di offrire il controllo dell'integrità dei messaggi, l'autenticazione e la crittografia dei pacchetti. Il protocollo SNMPv1 è obsoleto, ma esiste ancora per garantire la compatibilità con il software precedente. Non è menzionato in questo articolo.
1. Accedere all'interfaccia Web del WLC 9800. In Amministrazione > Gestione > SNMP verificare che SNMP sia abilitato a livello globale. In Stringhe della community vengono visualizzate tutte le community configurate e il relativo livello di autorizzazione:

2. Prima di creare un utente SNMP V3, è necessario definire un gruppo SNMP V3. Per creare un gruppo di utenti con l'autorizzazione di lettura e scrittura, impostare Visualizzazione lettura e Visualizzazione scrittura su v1 predefinito. Lasciare vuota la casella del campo Visualizzazione scrittura del gruppo di sola lettura:

3. Nella scheda SNMP v3 Users, è possibile visualizzare tutti gli utenti configurati e i relativi privilegi e protocolli utilizzati per l'autenticazione e la crittografia. Il pulsante Nuovo consente di creare un nuovo utente.
Sono disponibili 3 modalità di protezione:
4. Selezionare SHA come protocollo di autenticazione e almeno AES-128 come protocollo di privacy.

Il protocollo SNMP può essere configurato anche tramite l'interfaccia della riga di comando (CLI). CLI offre parametri di configurazione aggiuntivi, come la possibilità di assegnare un elenco degli accessi a una community v2 o a un utente v3. Configurazione di esempio di una community di lettura e scrittura v2, di un gruppo di lettura e scrittura v3 e di un utente v3 appartenente a questo gruppo:
snmp-server manager
snmp-server community <community-name> RW <access-list-number>
snmp-server community <community-name> RO <access-list-number>
snmp-server group <v3-group-name> v3 auth write v1default
snmp-server user <v3-user-name> <v3-group-name> v3 auth sha <auth-password> priv aes 128 <encryption-password> access <access-list-number>
Questo è un esempio di elenco degli accessi che permette al dispositivo solo di: 192.168.10.10. Per eseguire una query sulla community WLC v2 denominata "ReadWriteCommunity":
ip access-list standard 50
10 permit 192.168.10.10
20 deny any
snmp-server manager
snmp-server community ReadWriteCommunity RW 50
Gli ID oggetto, o OID brevi, sono identificatori univoci che rappresentano una determinata variabile o oggetto. Ad esempio, l'utilizzo corrente del processore è considerato variabile e i valori possono essere recuperati con la chiamata al relativo ID oggetto. Ogni OID è univoco e non può essere uguale a due. È simile a un indirizzo MAC.
Questi identificatori vengono allineati a una gerarchia ad albero e ogni OID può essere tracciato fino alla relativa radice. Ogni fornitore ha una propria filiale con una radice comune. Un'analogia può essere rappresentata dall'indirizzo dell'abitazione, dove la radice è il paese o lo stato, con la città, il codice di avviamento postale, la via e infine il numero dell'abitazione.
I numeri seguiti da un punto rappresentano ogni passaggio necessario per raggiungere un determinato punto nell'albero o nel ramo.

Tutti questi valori vengono memorizzati in un Management Information Base (MIB), ovvero in breve in ciascun dispositivo di rete. Ogni identificatore ha un nome e una definizione (intervallo di valori possibili, tipo e così via).
Non è necessario caricare un MIB sullo strumento di monitoraggio SNMP per utilizzare il protocollo SNMP per interrogare un dispositivo. Se è noto un OID valido, il dispositivo risponde con il valore archiviato nella variabile rappresentata dall'OID. Tuttavia, se caricate il MIB sullo strumento di query, questo offre il vantaggio di tradurre i nomi degli oggetti nei relativi ID e ne spiega la descrizione.
In questo esempio, lo strumento SNMP esegue una query sull'agente SNMP di un dispositivo per ottenere la descrizione del sistema con l'utilizzo di OID 1.3.6.1.2.1.1.1.0.

Cisco offre MIB per 9800 WLC. Non è facilmente leggibile, tuttavia MIB contiene tutti i nomi di oggetto disponibili e le relative descrizioni.
Tutti i modelli 9800 (9800-80, 9800-40, 9800-L, 9800-CL, EWC) utilizzano lo stesso MIB che può essere scaricato in Cisco Feature Navigator. Il più aggiornato è quello con la data più recente, non quello con il nome di versione del codice più alto.
I file di archivio scaricati contengono più file di testo .my che possono essere importati in qualsiasi server SNMP di terze parti o semplicemente aperti con un editor di testo. Per trovare l'OID di un nome di oggetto specifico, è necessario individuare prima il file che lo contiene.
Ad esempio, tutti gli oggetti correlati al monitoraggio dello stato fisico dei dispositivi (come CPU e memoria) si trovano all'interno di un MIB chiamato CISCO-PROCESS-MIB.my.
"cpmCPUMemoryUsed" è il nome dell'oggetto utilizzato per fornire la quantità di memoria utilizzata dal WLC in byte. I file MIB sono tutti allineati con una sintassi simile. Le informazioni sull'oggetto di memoria utilizzato hanno il seguente aspetto:
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 maggior parte del software di terze parti da monitorare si basa sugli OID e non sui nomi degli oggetti. La conversione tra il nome e l'ID dell'oggetto può essere eseguita con lo strumento Cisco SNMP Object Navigator.
Per utilizzare questo strumento, immettere il nome dell'oggetto nella barra di ricerca e l'output fornisce l'OID e una breve descrizione. Inoltre, lo stesso strumento può essere utilizzato per trovare il nome dell'OID fornito.

Dopo l'acquisizione, ovvero l'OID dell'oggetto che deve essere monitorato, è possibile eseguire la prima query SNMP. Negli esempi di questo capitolo viene illustrato come acquisire una memoria WLC libera (OID = 1.3.6.1.4.1.9.9.48.1.1.1.5) per la community SNMPv2 privata e l'utente SNMPv3 snmpadmin con password di autenticazione SHA: Cisco123# e password di privacy AES: Cisco123#. L'interfaccia di gestione del controller si trova su: 10.48.39.133 .
Snmpwalk è un'applicazione SNMP che utilizza le richieste GETNEXT di SNMP per eseguire query su un'entità di rete per ottenere una struttura di informazioni. È presente per impostazione predefinita su MacOS e nella maggior parte delle distribuzioni Linux. Per SNMPv2c, il comando è conforme alla seguente sintassi:
snmpwalk -v2c -c <community_name> <WLC_management_interface_ip> <OID>
Questo è un altro esempio:
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 si usa SNMPv3, il comando rispetta la sintassi:
snmpwalk -v3 -l authPriv -u <username> -a [MD5|SHA] -A <auth_password> -x [AES|DES] -X <priv_password> <WLC_management_interface_ip> <OID>
Selezionare MD5/SHA e AES/DES in base alla modalità di creazione dell'utente SNMPv3 sul controller. Questo è un altro esempio:
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
I frammenti di codice vengono scritti per Python 3.9 e utilizzano il modulo pysnmp (pip install pysnmp) per eseguire query SNMP per l'utilizzo della memoria di Catalyst 9800-CL WLC. In questi esempi viene utilizzata la stessa community SNMPv2 e lo stesso utente SNMPv3 creati nei capitoli precedenti. È sufficiente sostituire i valori delle variabili e integrare il codice negli script personalizzati.
Esempio di 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]))
Uscita delle stampe:
SNMPv2-SMI::enterprises.9.9.109.1.1.1.1.12.2 = 3783236
Esempio di 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]))
Cisco Prime Infrastructure consente di monitorare e configurare facilmente più dispositivi di rete, inclusi i controller wireless. Prime Infrastructure viene fornito con tutti gli OID e le integrazioni con WLC e consiste nell'aggiunta delle credenziali WLC a Prime. Con 9800 WLC, Prime si basa principalmente sulla telemetria per raccogliere la maggior parte dei dettagli dal WLC, mentre la piccola parte delle informazioni è ottenuta tramite SNMP.
D'altra parte, Cisco WLC può anche essere integrato con più soluzioni di terze parti per il monitoraggio, se gli OID sono noti. Programmi come Grafana+Prometheus, PRTG Network Monitor e i server SolarWinds consentono l'importazione dei MIB o degli OID e la visualizzazione dei valori in un grafico di facile utilizzo.
Questa integrazione può richiedere alcune modifiche sul lato server SNMP. In questo esempio, il server di monitoraggio PRTG viene fornito con l'OID di utilizzo della CPU per core, che restituisce la stringa "0%/1%, 1%/1%, 0%/1%, 0%/1%". PRTG prevede un valore intero e genera un errore.

Cisco Unified Communications Manager (CUCM) dispone di una funzionalità di rilevamento degli endpoint wireless che consente di tenere traccia in modo approssimativo della posizione del client in base all'access point a cui è connesso. Affinché questa funzione funzioni, il CUCM deve estrarre le informazioni dal WLC tramite query SNMP.
La tabella include alcuni dei nomi di oggetto più comuni e i relativi OID, con la considerazione che i MIB presentano i dati in una sintassi non descrittiva:
| Descrizione |
Nome oggetto |
OID |
Risposta prevista |
| Utilizzo complessivo della CPU in % ultimi 5 sec (equivalente a "show process cpu platform") |
cpmCPUTotal5sec |
1.3.6.1.4.1.9.9.109.1.1.1.1.3 |
INTERO: 5 |
| Utilizzo CPU complessivo in % ultimi 1 minuto |
cpmCPUTotal1min |
1.3.6.1.4.1.9.9.109.1.1.1.1.4 |
INTERO: 5 |
| Utilizzo CPU complessivo in % ultimi 5 minuti |
cpmCPUTotal5min |
1.3.6.1.4.1.9.9.109.1.1.1.1.5 |
INTERO: 5 |
| Utilizzo CPU in % ultimi 5 minuti, per core |
cpmCore5min |
.1.3.6.1.4.1.9.9.109.1.1.2.1.5.5 (da 0,0 a X a seconda del numero di nuclei) |
INTERO: 5 |
| Memoria attualmente utilizzata in byte |
cpmCPUMemoriaUtilizzata |
1.3.6.1.4.1.9.9.109.1.1.1.1.12 |
INTERO: 3783236 |
| Memoria disponibile corrente in byte |
cpmCPUMemoryFree |
1.3.6.1.4.1.9.9.109.1.1.1.1.13 |
INTERO: 4263578 |
| Quantità di memoria disponibile inferiore dall'ultimo avvio in byte |
cpmCPUMemoriaMinima |
1.3.6.1.4.1.9.9.109.1.1.1.1.15 |
INTERO: 4251212 |
| Motivo ultimo ricaricamento |
perchéRicarica |
1.3.6.1.4.1.9.2.1.2 |
STRINGA: "ricarica" |
| Immagine software di tutti i punti di accesso aggiunti |
VersioneSoftwareBSN |
1.3.6.1.4.1.14179.2.2.1.1.8 |
STRINGA: "17.5.1.12 " |
| Numero di modello di tutti gli access point uniti |
bsnModelloAPM |
1.3.6.1.4.1.14179.2.2.1.1.16 |
STRINGA: "AIR-AP1840I-E-K9" |
| Numero di client |
ConteggioAttivoCALp |
1.1.3.6.1.4.1.9.9.513.1.1.1.1.72 |
Numero intero |
| Numero di access point uniti |
cLApGlobalAPConnectCount |
1.3.6.1.4.1.9.9.513.1.3.35 |
Sagoma32: 1 |
| Stato unità di alimentazione |
TabellaStatoFornituraMonciscoEnv |
.1.3.6.1.4.1.9.9.13.1.5(aggiunto tramite CSCwb73163) |
tabella |
| Stato ventola |
TabellaStatoVentagliInvCisco |
.1.3.6.1.4.1.9.9.13.1.4 (aggiunto tramite CSCwb73163) |
tabella |
Al momento, sono presenti richieste di miglioramenti aperte per supportare gli OID. Numero totale di client e numero di punti di accesso uniti in Cisco ID bug: CSCvu26309 - SNMP OID per il numero di client non presente su 9800.
Al momento di questo articolo, lo stato dell'alimentatore (PSU) e della ventola non sono supportati. È stata aperta una richiesta di miglioramento in
ID bug Cisco: CSCwa23598 - Miglioramento/supporto WLC 9800 per OID SNMP PSU e Fan State (1.3.6.1.4.1.9.9.13).
È possibile monitorare un WLC in standby in un cluster ad alta disponibilità dalla versione 17.5.1. Il WLC in standby può essere monitorato direttamente tramite RMI o eseguendo una query sul WLC attivo.
I WLC in standby possono essere monitorati direttamente solo per i WLC eseguiti in modalità RMI + RP HA. Questa operazione viene eseguita tramite l'indirizzo IP RMI (Redundancy Management Interface) in standby del WLC di standby.
In questo scenario, sono supportati solo gli OID di IF-MIB, il che rende possibile monitorare lo stato di tutte le interfacce sul WLC di standby. Un esempio di output del WLC 9800-CL:
| Descrizione |
Nome oggetto |
OID |
Risposta prevista |
| Nome interfaccia |
ifDescr |
1.3.6.1.2.1.2.2.1.2 |
SNMPv2-SMI::mib-2.2.2.1.2.1 = Gigabit Ethernet1 |
| Stato operativo interfaccia (1=attivo, 2=inattivo) |
ifStatoOper |
1.3.6.1.2.1.2.2.1.8 |
SNMPv2-SMI::mib-2.2.2.1.8.1 = 2 |
Lo stato WLC in standby può essere monitorato anche con la query sul WLC attivo. Sono ufficialmente supportati solo i MIB CISCO-LWAPP-HA-MIB e CISCO-PROCESS-MIB. Quando si esegue una query su un WLC attivo in HA, la prima risposta rappresenta il valore del WLC attivo, mentre la seconda risposta rappresenta il valore del WLC in standby.
| Descrizione |
Nome oggetto |
OID |
Risposta prevista |
| Utilizzo complessivo CPU in % ultimi 5 sec |
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 |
| Utilizzo CPU complessivo in % ultimi 1 minuto |
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 |
| Utilizzo CPU complessivo in % ultimi 5 minuti |
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 |
| Memoria attualmente utilizzata in byte |
cpmCPUMemoriaUtilizzata |
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 |
| Memoria disponibile corrente in byte |
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 |
| Quantità di memoria disponibile inferiore dall'ultimo avvio in byte |
cpmCPUMemoriaMinima |
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 |
| Stato del WLC di standby (1=su, 0=giù) |
cLHaPeerHotStandbyEvent |
1.3.6.1.4.1.9.9.843.1.3.4 |
SNMPv2-SMI::enterprise.9.9.843.1.3.4.0 = 1 |
| Revisione | Data di pubblicazione | Commenti |
|---|---|---|
8.0 |
27-Oct-2026
|
Controllo ortografico, grammaticale, spaziatura e righe orizzontali inserite aggiornate per separare le sezioni in modo da garantirne la leggibilità, gli avvisi CCW fissi e il testo alternativo. |
7.0 |
01-Jul-2025
|
Aggiunta di OID di ventole, alimentatori e conteggio client |
6.0 |
31-Mar-2025
|
URL MIB fisso |
5.0 |
15-Nov-2023
|
OID aggiunto per ogni core CPU |
4.0 |
01-Apr-2022
|
OID aggiuntivi citati |
2.0 |
01-Oct-2021
|
Release iniziale |
1.0 |
12-Oct-2021
|
Versione iniziale |