Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

SNMP-instellingen op WLC configureren

Objectnamen en object-ID’s (OID’s)

Wat zijn objectnamen en OID’s

MIB’s en lijst van alle objectnamen en ID’s op Cisco WLC’s

Gebruik van OID’s om de status van WLC te bewaken

Monitor via SNMPwalk

Monitoring via Python 3 en PysmnpLibrary

Integratie met software van derden (Grafana/PRTG Network Monitor/SolarWinds)

Tabel van meest frequent gecontroleerde OID’s

Inleiding

Dit document beschrijft hoe u SNMP kunt configureren en bewaken op Cisco draadloze LAN-controller (WLC).

Voorwaarden

Vereisten

Cisco raadt u aan een standaard Simple Network Management Protocol (SNMP)-tool op uw besturingssysteem te hebben of over de kennis te beschikken om een SNMP-tool te installeren.

Gebruikte componenten

Dit document is niet beperkt tot specifieke software- en hardware-versies. Alle testen werden uitgevoerd op een 3504 WLC running image versie 8.9 en MacOS 10.14. OID's in dit artikel zijn ook geldig op eerdere AireOS-releases en andere AireOS-gebaseerde draadloze controllers (8540/5508/5520/2504).

De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.

SNMP-instellingen op WLC configureren

SNMPv2c is een community-gebaseerde versie van SNMP en alle communicatie tussen de apparaten is in duidelijke tekst. SNMPv3 is de best beveiligde versie die berichtintegriteitscontroles, verificatie en codering van de pakketten biedt. SNMPv1 is extreem verouderd maar bestaat nog steeds om compatibiliteit met oudere software te bieden.

Opmerking: SNMPv2c is standaard ingeschakeld met private community die lees- en schrijfrechten heeft en community public die alleen-lezen rechten heeft. We raden aan om deze te verwijderen en een nieuwe gemeenschap te creëren met een andere naam.

In dit artikel worden alleen SNMPv2c en SNMPv3 gebruikt. Log in op de webinterface van de controller. Onder Management > SNMP > General zorg ervoor dat de gewenste versie van het protocol ingeschakeld is.

Onder het menu communities worden alle op dit moment gecreëerde communities weergegeven.

Het is best practice om standaard vooraf ingestelde gemeenschappen te verwijderen en een nieuwe te maken. IP-adres en netmasker gedragen zich als een toegangslijst. Standaard zijn beide ingesteld op 0.0.0.0, wat betekent dat alle IP-adressen SNMP-vragen mogen maken voor deze community. Het veld toegangsmodus wordt alleen gelaten als Lezen omdat deze community alleen moet worden gebruikt om te monitoren en niet voor de configuratie van de WLC.

Opmerking: Alle versies eerder dan 8.7.1.135 zijn beïnvloed door een Cisco bug ID CSCvg61933, waarbij het netmasker niet kan worden ingesteld op 255.255.255.255. Of upgrade de controller naar de meest recente aanbevolen release later dan 8.7.1.135 of gebruik deze opdracht in de CLI om een nieuwe community te maken config snmp community ipaddr <ip_address> <netmask> <community_name>.

Onder het menu SNMP V3-gebruikers kunt u alle geconfigureerde gebruikers, hun rechten en protocollen zien die worden gebruikt voor verificatie en codering. Met de knop Nieuw kunt u een nieuwe gebruiker maken. Het wordt aanbevolen om HMAC-SHA als een verificatieprotocol en CFB-AES-128 als een privacyprotocol te kiezen. Maak een gebruiker met de naam admin met verificatie en een privacywachtwoord ingesteld op Cisco123Cisco123.

Objectnamen en object-ID’s (OID’s)

Wat zijn objectnamen en OID’s

OID’s zijn unieke identificatoren die een bepaalde variabele of object vertegenwoordigen. Het huidige CPU-gebruik wordt bijvoorbeeld beschouwd als een variabele waarvan de waarden kunnen worden opgehaald wanneer u hun object-ID aanroept. Elke OID is uniek en geen twee moet hetzelfde zijn over de hele wereld, vrij vergelijkbaar met een MAC-adres. Deze identificatiecodes zijn in een boomhiërarchie, en elk OID kan terug naar zijn wortel worden gevonden. Elke verkoper heeft zijn eigen tak na een gemeenschappelijke wortel.

Een analogie kan een huisadres zijn, waar de wortel het land of de staat is, dan een stad postcode, de straat, en tenslotte het huisnummer.

De cijfers gevolgd door een punt vertegenwoordigen elke stap die nodig is om een bepaald punt in die boom of tak te bereiken.

Al deze waarden worden opgeslagen in een Management Information Base (MIB) in elk netwerkapparaat. Elk identificatiecode heeft een naam en definitie (bereik van mogelijke waarden, typen, enzovoort).

U hoeft geen MIB's op uw SNMP-tool te laden om SNMP te gebruiken en een apparaat te bevragen, zolang er een geldige OID bekend is. Het apparaat antwoordt met de waarde die in de variabele wordt opgeslagen die OID vertegenwoordigt. In de getoonde afbeelding vraagt de SNMP-beheerder bijvoorbeeld naar de SNMP-agent van een apparaat voor de systeembeschrijving met behulp van de OID 1.3.6.1.2.1.1.0.

Als u de MIB in uw query tool laadt, kunt u deze gebruiken om OID-nummers in namen te vertalen en hun definities te ontdekken.

MIB’s en lijst van alle objectnamen en ID’s op Cisco WLC’s

Sinds mei 2019 bestaat er geen eenvoudige, gebruiksvriendelijke tabel met alle beschikbare objectnamen en hun respectieve OID’s voor draadloze LAN-controllers. Als alternatief biedt Cisco Management Information Base (MIB) aan, die niet eenvoudig leesbaar is, maar alle beschikbare objectnamen en hun beschrijving bevat. Cisco 3504 WLC MIB kan hier worden gedownload.

Het gedownloade archiefbestand bevat meerdere .my tekstbestanden die kunnen worden geïmporteerd in een SNMP-bewakingsserver van derden of gewoon kunnen worden geopend met een reguliere teksteditor. Om de OID van een specifieke objectnaam te vinden, moet u eerst het exacte bestand vinden dat het bevat.

Alle objecten die betrekking hebben op de bewaking van de fysieke toestand van het apparaat (zoals temperatuur en ventilatorsnelheid) bevinden zich bijvoorbeeld in een MIB genaamd CISCO-ENVMON-MIB.my. Hier ciscoEnvMonFanState  is de objectnaam die wordt gebruikt om de status van de WLC-ventilator te geven. De syntaxis van MIB-bestanden wordt weergegeven. Informatie over het object van de ventilatorstaat ziet er als volgt uit:

ciscoEnvMonFanState OBJECT-TYPE SYNTAX CiscoEnvMonState MAX-ACCESS read-only STATUS current DESCRIPTION "The current state of the fan being instrumented." ::= { ciscoEnvMonFanStatusEntry 3 }

De meeste software van de derdetoezicht baseert zich op OIDs, en niet objecten namen. De omzetting tussen de objectnaam en de object-ID kan met behulp van het Cisco SNMP Object Navigator Tool worden uitgevoerd. Voer de objectnaam in de zoekbalk in. De output verstrekt OID en een korte beschrijving. Bovendien, kan het zelfde hulpmiddel worden gebruikt om de overeenkomstige objecten naam van OID te vinden.

Gebruik van OID’s om de status van WLC te bewaken

Nadat u de OID van het object hebt aangeschaft dat moet worden bewaakt, kan de eerste SNMP-query worden uitgevoerd. Deze voorbeelden laten zien hoe u een WLC CPU-gebruik per kern kunt verwerven (OID = 1.3.6.1.4.1.9.9.618.1.4.1) voor de SNMPv2-gemeenschap snmp_test   en SNMPv3-gebruiker admin   met SHA Auth-wachtwoord Cisco123Cisco123   en AES Privacy-wachtwoord ingesteld op Cisco123Cisco123 . De beheerinterface van de controller bevindt zich op 10.48.39.164.

Monitor via SNMPwalk

SNMPwalk is een SNMP-toepassing die SNMP-verzoeken om een netwerk-entiteit te doorzoeken voor een informatieboom gebruikt. Het is standaard aanwezig op MacOS en de meeste Linux distributies. Voor SNMPv2c heeft de opdracht de syntaxis:

snmpwalk -v2c -c <community_name> <WLC_management_interface_ip> <OID>

Voorbeeld:

VAPEROVI-M-H1YM:~ vaperovi$ snmpwalk -v2c -c snmp_test 10.48.39.164 1.3.6.1.4.1.9.9.618.1.4.1 SNMPv2-SMI::enterprises.9.9.618.1.4.1.0 = STRING: "0%/1%, 0%/1%, 0%/1%, 0%/1%"

Als SNMPv3 wordt gebruikt, heeft de opdracht de syntaxis:

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

Kies MD5/SHA en AES/DES op basis van hoe u de SNMPv3-gebruiker op de controller hebt gemaakt.

Voorbeeld:

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.1 SNMPv2-SMI::enterprises.9.9.618.1.4.1.0 = STRING: "0%/1%, 0%/1%, 0%/0%, 0%/1%"

Monitoring via Python 3 en Pysmnp Library

Deze code snippets zijn geschreven in Python 3.7 en maken gebruik van de pysnmp  module (pip install pysnmp ) om SNMP-vragen te stellen voor CPU-gebruik van Cisco 3504 WLC. Deze voorbeelden maken gebruik van dezelfde SNMPv2-community en SNMPv3-gebruiker die in een van de vorige hoofdstukken is gemaakt. Vervang de variabele waarden eenvoudig en integreer de code met uw eigen aangepaste scripts.

SNMPv2c-voorbeeld:

from pysnmp.hlapi import *

communityName = 'snmp_test'

ipAddress = '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(communityName), UdpTransportTarget((ipAddress, 161)), ContextData(), ObjectType(ObjectIdentity(OID))) ) 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]))

Uitvoer:

SNMPv2-SMI::enterprises.14179.2.3.1.13.0 = 73

SNMPv3 voorbeeld:

from pysnmp.hlapi import * username = 'admin' 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(username, authKey, privKey, authProtocol=usmHMACSHAAuthProtocol, privProtocol=usmAesCfb128Protocol), UdpTransportTarget((ipAddress, 161)), ContextData(), ObjectType(ObjectIdentity(OID))) ) 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]))

Integratie met software van derden (Grafana/PRTG Network Monitor/SolarWinds)

Cisco Prime Infrastructure biedt de mogelijkheid om eenvoudig meerdere netwerkapparaten, waaronder draadloze controllers, te bewaken en te configureren. Prime Infrastructure wordt vooraf geladen met alle OID’s en de integratie met WLC bestaat gewoon uit de toevoeging van de WLC-referenties aan Prime. Na de synchronisatie is het mogelijk om alarmen in te stellen en configuratiesjablonen te drukken voor meerdere draadloze controllers tegelijk.

Anderzijds kan Cisco WLC ook worden geïntegreerd met meerdere monitoringoplossingen van derden, zolang de OID’s bekend zijn. Programma's zoals Grafana, PRTG Network Monitor en SolarWinds server maken het mogelijk dat MIB's of OID's worden geïmporteerd en waarden worden weergegeven in een gebruiksvriendelijke grafiek.

Monitorservers moeten mogelijk worden aangepast aan deze integratie. In het voorbeeld in de afbeelding wordt de PRTG-monitoringserver voorzien van de per-core CPU-benutting OID die de string 0%/1%, 1%/1%, 0%/1%, 0%/1%teruggeeft. PRTG verwacht een integerwaarde en heft een fout op.

Tabel van meest frequent gecontroleerde OID’s

Als u van mening bent dat MIBs de gegevens in niet-gebruikersvriendelijke syntaxis voorstellen, omvat deze tabel enkele van de meest gebruikelijke objectnamen en hun OID’s die de klanten van Cisco gebruiken.

Beschrijving

Objectnaam

OID

Verwachte respons

Totaal CPU-gebruik in %

agentCurrentCPU-gebruik

1.3.6.1.4.1.14179.1.1.5.1.0

INTEGER: 0

CPU-gebruik per kern

CLSall CPU gebruik

1.3.6.1.4.1.9.9.618.1.4.1.0

STRING: 0%/1%, 0%/1%, 0%/1%, 0%/1%, 0%/1%

RAM-gebruik in %

CLSysCurrentMemory-gebruik

1.3.6.1.4.1.9.9.618.1.8.6.0

Voertuig 32: 33

CPU-temperatuur in °C

bsnSensorTemperatuur

1.3.6.1.4.1.14179.2.3.1.13.0

INTEGER: 76

Aantal aangesloten AP

CLSysApConnect-aantal

1.3.6.1.4.1.9.9.618.1.8.4.0

Voertuig32: 2

Aantal klanten

aantal clsMax-clients

1.3.6.1.4.1.9.9.618.1.8.12.0

Gauge32: 0

Aantal clients per WLAN

BSNDOT11ESaantalmobiele stations

1.3.6.1.4.1.14179.2.1.1.1.38.0

Teller32: 3

Teller32: 2