Einleitung
In diesem Dokument wird beschrieben, wie Sie SNMP auf dem Cisco Wireless LAN Controller (WLC) konfigurieren und überwachen.
Voraussetzungen
Anforderungen
Cisco empfiehlt, dass Sie ein Standard-SNMP-Tool (Simple Network Management Protocol) auf Ihrem Betriebssystem verwenden, oder dass Sie wissen, dass Sie eines installieren müssen.
Verwendete Komponenten
Dieses Dokument ist nicht auf bestimmte Software- und Hardware-Versionen beschränkt. Alle Tests wurden auf einem 3504 WLC mit Image Version 8.9 und MacOS 10.14 durchgeführt. OIDs in diesem Artikel gelten auch für frühere AireOS-Versionen und andere AireOS-basierte Wireless Controller (8540/5508/5520/2504).
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
SNMP-Einstellungen auf WLC konfigurieren
SNMPv2c ist eine auf der Community basierende Version von SNMP, und die gesamte Kommunikation zwischen den Geräten erfolgt in Klartext. SNMPv3 ist die sicherste Version, die Integritätsprüfungen, Authentifizierung und Verschlüsselung von Paketen ermöglicht. SNMPv1 ist extrem veraltet, existiert aber noch, um die Kompatibilität mit älterer Software zu gewährleisten.
Hinweis: SNMPv2c ist standardmäßig aktiviert, wobei community private über Lese- und Schreibberechtigungen und community public über schreibgeschützte Berechtigungen verfügt. Es wird empfohlen, diese zu entfernen und eine neue Community mit einem anderen Namen zu erstellen.
In diesem Artikel werden nur SNMPv2c und SNMPv3 verwendet. Melden Sie sich bei der Webschnittstelle des Controllers an. Unter Management > SNMP > General stellen Sie sicher, dass die gewünschte Protokollversion aktiviert ist.
Im Menü Communitys werden alle aktuell erstellten Communitys angezeigt.
Es hat sich bewährt, vorkonfigurierte Communitys zu entfernen und eine neue zu erstellen. IP-Adresse und Netzmaske verhalten sich wie eine Zugriffsliste. Standardmäßig sind beide auf 0.0.0.0 gesetzt, d. h., dass alle IP-Adressen SNMP-Abfragen für diese Community ausführen dürfen. Das Feld für den Zugriffsmodus bleibt schreibgeschützt, da diese Community nur für die Überwachung und nicht für die Konfiguration des WLC verwendet werden soll.
Hinweis: Alle Versionen vor 8.7.1.135 sind von einer Cisco Bug-ID CSCvg61933 betroffen, bei der die Netzmaske nicht auf 255.255.255.255 gesetzt werden kann. Aktualisieren Sie den Controller entweder auf die neueste empfohlene Version nach Version 8.7.1.135, oder verwenden Sie diesen Befehl in der CLI, um eine neue Community zu erstellen config snmp community ipaddr <ip_address> <netmask> <community_name>.
Im Menü "SNMP V3 Users" (SNMP V3-Benutzer) werden alle konfigurierten Benutzer, ihre Berechtigungen und die für die Authentifizierung und Verschlüsselung verwendeten Protokolle angezeigt. Mit der Schaltfläche Neu können Sie einen neuen Benutzer erstellen. Es wird empfohlen, HMAC-SHA als Authentifizierungsprotokoll und CFB-AES-128 als Datenschutzprotokoll auszuwählen. Erstellen Sie einen Benutzer mit dem Namen admin, wobei das Authentifizierungs- und Datenschutzkennwort auf Cisco123Cisco123 festgelegt ist.
Objektnamen und Objekt-IDs (OIDs)
Was sind Objektnamen und OIDs
OIDs sind eindeutige Bezeichner, die eine bestimmte Variable oder ein Objekt darstellen. Die aktuelle CPU-Auslastung wird beispielsweise als Variable betrachtet, deren Werte abgerufen werden können, wenn Sie ihre Objekt-ID aufrufen. Jede OID ist eindeutig, und es dürfen weltweit keine zwei OIDs identisch sein, was einer MAC-Adresse sehr ähnlich ist. Diese Bezeichner befinden sich in einer Baumhierarchie, und jede OID kann bis zu ihrem Ursprung zurückverfolgt werden. Jeder Anbieter hat nach einer gemeinsamen Wurzel eine eigene Zweigstelle.
Eine Analogie kann eine Privatadresse sein, deren Ursprung das Land oder der Staat ist, dann eine Postleitzahl der Stadt, die Straße und schließlich die Hausnummer.
Die Zahlen, gefolgt von einem Punkt, stellen jeden Schritt dar, der erforderlich ist, um zu einem bestimmten Punkt in diesem Baum oder Zweig zu gelangen.
Alle diese Werte werden in einer Management Information Base (MIB) in jedem Netzwerkgerät gespeichert. Jeder Bezeichner hat einen Namen und eine Definition (Bereich möglicher Werte, Typen usw.).
Sie müssen keine MIBs auf Ihr SNMP-Tool laden, um SNMP zu verwenden und ein Gerät abzufragen, solange eine gültige OID bekannt ist. Das Gerät antwortet mit dem Wert, der in der Variablen gespeichert ist, die die OID darstellt. In der Abbildung unten fragt der SNMP-Manager beispielsweise den SNMP-Agenten eines Geräts unter Verwendung der OID 1.3.6.1.2.1.1.1.0 nach seiner Systembeschreibung ab.
Wenn Sie MIB in Ihr Abfragetool laden, können Sie es verwenden, um OID-Nummern in Namen zu übersetzen und deren Definitionen zu ermitteln.
MIBs und Liste aller Objektnamen und -IDs auf Cisco WLCs
Ab Mai 2019 existiert keine einfache, benutzerfreundliche Tabelle mehr, die jeden einzelnen verfügbaren Objektnamen und die jeweiligen OIDs für Wireless LAN Controller enthält. Alternativ bietet Cisco eine Management Information Base (MIB) an, die nicht leicht lesbar ist, aber alle verfügbaren Objektnamen und deren Beschreibung enthält. Cisco 3504 WLC MIB kann hier heruntergeladen werden.
Die heruntergeladene Archivdatei enthält mehrere .my-Textdateien, die entweder in einen SNMP-Überwachungsserver eines Drittanbieters importiert oder einfach mit einem regulären Texteditor geöffnet werden können. Um die OID eines bestimmten Objektnamens zu finden, müssen Sie zunächst die genaue Datei suchen, die ihn enthält.
Beispielsweise befinden sich alle Objekte, die mit der Überwachung des physischen Status des Geräts zusammenhängen (wie Temperatur und Lüftergeschwindigkeit) innerhalb einer MIB namens CISCO-ENVMON-MIB.my. Hier ciscoEnvMonFanState ist der Objektname, der verwendet wird, um den Zustand des WLC-Lüfters anzugeben. MIB-Dateien haben die dargestellte Syntax. Die Informationen über das Lüfterzustandsobjekt sehen wie folgt aus:
ciscoEnvMonFanState OBJECT-TYPE SYNTAX CiscoEnvMonState MAX-ACCESS read-only STATUS current DESCRIPTION "The current state of the fan being instrumented." ::= { ciscoEnvMonFanStatusEntry 3 }
Die meisten Überwachungssoftware-Lösungen anderer Anbieter basieren auf OIDs und nicht auf Objektnamen. Die Umwandlung zwischen Objektname und Objekt-ID kann mithilfe des Cisco SNMP Object Navigator-Tools erfolgen. Geben Sie den Objektnamen in die Suchleiste ein. Die Ausgabe enthält die OID und eine kurze Beschreibung. Darüber hinaus kann mit dem gleichen Tool nach dem entsprechenden Objektnamen der OID gesucht werden.
Verwendung von OIDs zur Überwachung des Status von WLC
Nachdem Sie die OID des zu überwachenden Objekts abgerufen haben, kann die erste SNMP-Abfrage ausgeführt werden. In diesen Beispielen wird veranschaulicht, wie eine WLC-CPU-Auslastung pro Kern (OID = 1.3.6.1.4.1.9.9.618.1.4.1) für die SNMPv2-Community snmp_test und den SNMPv3-Benutzer admin mit einem SHA-Auth-Kennwort Cisco123Cisco123 und einem AES-Datenschutzkennwort abgerufen wird, das auf Cisco123Cisco123 festgelegt ist. Die Schnittstelle für das Controller-Management befindet sich unter 10.48.39.164.
Überwachung über SNMPwalk
SNMPwalk ist eine SNMP-Anwendung, die SNMP GETNEXT-Anforderungen verwendet, um eine Netzwerkeinheit nach einem Informationsbaum abzufragen. Es ist standardmäßig auf MacOS und den meisten Linux-Distributionen vorhanden. Für SNMPv2c hat der Befehl die folgende Syntax:
snmpwalk -v2c -c <community_name> <WLC_management_interface_ip> <OID>
Beispiele:
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%"
Wenn SNMPv3 verwendet wird, hat der Befehl die folgende Syntax:
snmpwalk -v3 -l authPriv -u <username> -a [MD5|SHA] -A <auth_password> -x [AES|DES] -X <priv_password> <WLC_management_interface_ip> <OID>
Wählen Sie je nach Erstellung des SNMPv3-Benutzers auf dem Controller MD5/SHA und AES/DES aus.
Beispiele:
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%"
Überwachung über Python 3 und pysmnp Library
Diese Codeausschnitte werden in Python 3.7 geschrieben und verwenden das pysnmp Modul (pip install pysnmp ), um SNMP-Abfragen für die CPU-Nutzung des Cisco 3504 WLC durchzuführen. In diesen Beispielen wird die gleiche SNMPv2-Community und der gleiche SNMPv3-Benutzer verwendet, die in einem der vorherigen Kapitel erstellt wurden. Ersetzen Sie einfach die Variablenwerte und integrieren Sie den Code mit Ihren eigenen Skripten.
SNMPv2c-Beispiel:
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]))
Ausgabe:
SNMPv2-SMI::enterprises.14179.2.3.1.13.0 = 73
SNMPv3-Beispiel:
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]))
Integration mit Drittanbietersoftware (Grafana/PRTG Network Monitor/SolarWinds)
Die Cisco Prime-Infrastruktur ermöglicht die einfache Überwachung und Konfiguration mehrerer Netzwerkgeräte, darunter Wireless Controller. In der Prime-Infrastruktur sind alle OIDs vorinstalliert. Die Integration mit dem WLC erfolgt einfach durch Hinzufügen der WLC-Anmeldedaten zu Prime. Nach der Synchronisierung ist es möglich, Alarme festzulegen und Konfigurationsvorlagen für mehrere Wireless-Controller gleichzeitig per Push bereitzustellen.
Andererseits kann der Cisco WLC auch in mehrere Überwachungslösungen von Drittanbietern integriert werden, sofern die OIDs bekannt sind. Programme wie Grafana, PRTG Network Monitor und SolarWinds Server ermöglichen den Import von MIBs oder OIDs und die Anzeige der Werte in einem benutzerfreundlichen Diagramm.
Überwachungsserver müssen ggf. angepasst werden, um diese Integration zu ermöglichen. In dem im Bild gezeigten Beispiel wird der PRTG-Überwachungsserver mit der Pro-Core-CPU-Nutzungs-OID versehen, die die Zeichenfolge zurückgibt 0%/1%, 1%/1%, 0%/1%, 0%/1%. PRTG erwartet einen Integerwert und löst einen Fehler aus.
Tabelle der am häufigsten überwachten OIDs
Wenn Sie der Ansicht sind, dass MIBs die Daten in einer nicht benutzerfreundlichen Syntax darstellen, enthält diese Tabelle einige der gebräuchlichsten Objektnamen und deren OIDs, die von Cisco Kunden verwendet werden.
Beschreibung |
Objektname |
OID |
Erwartete Antwort |
Gesamte CPU-Auslastung in % |
AgentAktuellerVerbrauch |
1.3.6.1.4.1.14179.1.1.5.1.0 |
GANZZAHL: 0 |
CPU-Auslastung pro Kern |
clsGesamteCPUutzung |
1.3.6.1.4.1.9.9.618.1.4.1.0 |
ZEICHENFOLGE: 0 %/1 %, 0 %/1 %, 0 %/1 %, 0 %/1 % |
RAM-Nutzung in % |
clsSysCurrentMemoryUsage |
1.3.6.1.4.1.9.9.618.1.8.6.0 |
Anzeige 32: 33 |
CPU-Temperatur in °C |
bsnSensorTemperatur |
1.3.6.1.4.1.14179.2.3.1.13.0 |
GANZZAHL: 76 |
Anzahl der verbundenen APs |
clsSysAppConnectCount |
1.3.6.1.4.1.9.9.618.1.8.4.0 |
Anzeige 32: 2 |
Anzahl der Clients |
clsMaxClientsCount |
1.3.6.1.4.1.9.9.618.1.8.12.0 |
Anzeige32: 0 |
Anzahl der Clients pro WLAN |
bsnDot11EssAnzahlvonMobilstationen |
1.3.6.1.4.1.14179.2.1.1.1.38.0 |
Leistungsindikator32: 3 Leistungsindikator32: 2 |