Überwachung von Netzwerkgeräten über SNMPv3 in Zabbix

Dieser Artikel beschreibt die Funktionen zur Überwachung von Netzwerkgeräten mithilfe des SNMPv3-Protokolls. Wir werden über SNMPv3 sprechen, ich werde meine Erfahrungen beim Erstellen vollwertiger Vorlagen in Zabbix teilen und zeigen, was Sie erreichen können, wenn Sie verteilte Warnungen in einem großen Netzwerk organisieren. SNMP ist das Hauptprotokoll für die Überwachung von Netzwerkgeräten, und Zabbix eignet sich hervorragend für die Überwachung einer großen Anzahl von Objekten und die Zusammenfassung erheblicher Mengen eingehender Metriken.

Ein paar Worte zu SNMPv3


Beginnen wir mit der Ernennung von SNMPv3 und den Funktionen seiner Verwendung. SNMP-Aufgaben überwachen Netzwerkgeräte und die elementare Verwaltung, indem einfache Befehle an sie gesendet werden (z. B. Ein- und Ausschalten von Netzwerkschnittstellen oder Neustart des Geräts).

Der Hauptunterschied zwischen dem SNMPv3-Protokoll und seinen früheren Versionen besteht in den klassischen Sicherheitsfunktionen [1-3], nämlich:

  • Authentifizierung, die bestimmt, dass die Anforderung von einer vertrauenswürdigen Quelle empfangen wird;
  • Verschlüsselung, um die Offenlegung übertragener Daten zu verhindern, wenn diese von Dritten abgefangen werden;
  • Integrität, dh eine Garantie dafür, dass das Paket während der Übertragung nicht manipuliert wurde.

SNMPv3 impliziert die Verwendung eines Sicherheitsmodells, in dem eine Authentifizierungsstrategie für einen bestimmten Benutzer und die Gruppe, zu der er gehört, festgelegt wird (in früheren Versionen von SNMP wurde bei der Anforderung vom Server an das Überwachungsobjekt nur "Community" verglichen, eine Textzeichenfolge mit einem "Kennwort", das in klarer Form übertragen wurde (Klartext)).

SNMPv3 führt das Konzept der Sicherheitsstufen ein - akzeptable Sicherheitsstufen, die die Konfiguration der Geräte und das Verhalten des SNMP-Agenten des Überwachungsobjekts bestimmen. Die Kombination des Sicherheitsmodells und der Sicherheitsstufe bestimmt, welcher Sicherheitsmechanismus bei der Verarbeitung des SNMP-Pakets verwendet wird [4].

In der Tabelle werden Kombinationen von Modellen und SNMPv3-Sicherheitsstufen beschrieben (ich habe beschlossen, die ersten drei Spalten wie im Original zu belassen):



Dementsprechend werden wir SNMPv3 im Authentifizierungsmodus mit Verschlüsselung verwenden.

Konfigurieren Sie SNMPv3


Die Überwachung von Netzwerkgeräten umfasst die gleiche Konfiguration des SNMPv3-Protokolls sowohl auf dem Überwachungsserver als auch auf dem überwachten Objekt.

Beginnen wir mit der Konfiguration eines Cisco-Netzwerkgeräts. Die minimal erforderliche Konfiguration lautet wie folgt (für die Konfiguration verwenden wir CLI, ich habe Namen und Kennwörter vereinfacht, um Verwirrung zu vermeiden):

snmp-server group snmpv3group v3 priv read snmpv3name 
snmp-server user snmpv3user snmpv3group v3 auth md5 md5v3v3v3 priv des des56v3v3v3
snmp-server view snmpv3name iso included

Die erste Zeile der Gruppe snmp-server - definiert die Gruppe der SNMPv3-Benutzer (snmpv3group), den Lesemodus (read) und das Zugriffsrecht der Gruppe snmpv3group, um bestimmte Zweige des MIB-Baums des Überwachungsobjekts anzuzeigen (snmpv3name in der folgenden Konfiguration bestimmt, welche Zweige des MIB-Baums die Gruppe sind snmpv3group kann darauf zugreifen).

Die zweite Zeile ist snmp-server user - definiert den Benutzer snmpv3user, seine Mitgliedschaft in der Gruppe snmpv3group sowie die Verwendung der Authentifizierung md5 (das Kennwort für md5 lautet md5v3v3v3) und der Verschlüsselung des (das Kennwort für des ist des56v3v3v3). Anstelle von des ist es natürlich besser, aes zu verwenden, hier gebe ich es nur als Beispiel. Wenn Sie einen Benutzer definieren, können Sie auch eine Zugriffsliste (ACL) hinzufügen, die die IP-Adressen von Überwachungsservern regelt, die das Recht haben, dieses Gerät zu überwachen. Dies ist ebenfalls eine bewährte Methode, aber ich werde unser Beispiel nicht komplizieren.

Die dritte Zeile der snmp-Server-Ansicht definiert den Codenamen, der die MIB-Baumzweige von snmpv3name definiert, damit die Benutzergruppe snmpv3group sie anfordern kann. Anstatt einen einzelnen Zweig streng zu definieren, ermöglicht ISO einer Benutzergruppe von snmpv3group den Zugriff auf alle Objekte im MIB-Baum des Überwachungsobjekts.

Eine ähnliche Konfiguration von Huawei-Geräten (auch in der CLI) ist wie folgt:

snmp-agent mib-view included snmpv3name iso
snmp-agent group v3 snmpv3group privacy read-view snmpv3name
snmp-agent usm-user v3 snmpv3user group snmpv3group
snmp-agent usm-user v3 snmpv3user authentication-mode md5 
            md5v3v3v3
snmp-agent usm-user v3 snmpv3user privacy-mode des56
            des56v3v3v3

Nach dem Einrichten von Netzwerkgeräten müssen Sie den Zugriff vom Überwachungsserver über das SNMPv3-Protokoll überprüfen. Ich verwende snmpwalk:

snmpwalk -v 3 -u snmpv3user -l authPriv -A md5v3v3v3 -a md5 -x des -X des56v3v3v3 10.10.10.252



Ein visuelleres Tool zum Anfordern bestimmter OID-Objekte mithilfe von MIB-Dateien ist snmpget: Fahren Sie



nun mit dem Einrichten eines typischen Datenelements für SNMPv3 als Teil der Zabbix-Vorlage fort. Zur Vereinfachung und Unabhängigkeit von der MIB verwende ich digitale OIDs:



Ich verwende benutzerdefinierte Makros in Schlüsselfeldern, da diese für alle Datenelemente in der Vorlage gleich sind. Sie können sie als Teil der Vorlage festlegen, wenn alle Netzwerkgeräte in Ihrem Netzwerk dieselben SNMPv3-Parameter haben, oder innerhalb des Hosts, wenn die SNMPv3-Parameter für verschiedene Überwachungsobjekte unterschiedlich sind:



Beachten Sie, dass das Überwachungssystem nur einen Benutzernamen und Kennwörter für die Authentifizierung und Verschlüsselung hat . Die Benutzergruppe und der Bereich der MIB-Objekte, auf die zugegriffen werden darf, werden für das Überwachungsobjekt festgelegt.
Fahren wir nun mit dem Ausfüllen der Vorlage fort.

Zabbix Umfragevorlage


Eine einfache Regel beim Erstellen von Umfragevorlagen besteht darin, sie so detailliert wie möglich zu gestalten:



Ich achte sehr auf das Inventar, damit es bequemer ist, mit einem großen Netzwerk zu arbeiten. Darüber etwas später, aber vorerst - löst aus:



Zur einfacheren Visualisierung von Triggern enthalten ihre Namen Systemmakros {HOST.CONN}, sodass im Dashboard im Warnbereich nicht nur Gerätenamen, sondern auch IP-Adressen angezeigt werden. Dies ist jedoch eher eine Frage der Bequemlichkeit als der Notwendigkeit. Um die Nichtverfügbarkeit des Geräts zu bestimmen, verwende ich zusätzlich zur üblichen Echoanforderung die Nichtverfügbarkeitsprüfung des SNMP-Hosts, wenn auf das Objekt über ICMP zugegriffen werden kann, aber nicht auf SNMP-Anforderungen reagiert. Diese Situation ist beispielsweise möglich, wenn IP-Adressen auf verschiedenen Geräten dupliziert werden. aufgrund falsch konfigurierter Firewalls oder falscher SNMP-Einstellungen für Überwachungsobjekte. Wenn Sie die Hostzugriffskontrolle nur über ICMP verwenden, werden zum Zeitpunkt der Untersuchung von Vorfällen im Netzwerk möglicherweise keine Überwachungsdaten angezeigt, sodass deren Empfang kontrolliert werden muss.

Fahren wir mit der Ermittlung von Netzwerkschnittstellen fort. Für Netzwerkgeräte ist dies die wichtigste Überwachungsfunktion. Da ein Netzwerkgerät Hunderte von Schnittstellen enthalten kann, müssen unnötige herausgefiltert werden, um die Visualisierung und die Datenbank nicht zu überladen.

Ich verwende die Standarderkennungsfunktion für SNMP mit einer großen Anzahl erkennbarer Parameter für eine flexiblere Filterung:

discovery[{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7]



Mit dieser Erkennung können Sie Netzwerkschnittstellen nach Typ, Benutzerbeschreibung, Beschreibung und Verwaltungsstatus der Ports filtern. Filter und reguläre Ausdrücke zum Filtern sehen in meinem Fall wie folgt aus:





Bei der Erkennung werden die folgenden Schnittstellen ausgeschlossen:

  • manuell deaktiviert (adminstatus <> 1) dank IFADMINSTATUS;
  • dank IFALIAS keine Textbeschreibung haben;
  • mit * in der Textbeschreibung dank IFALIAS;
  • Dank IFDESCR offiziell oder technisch sein (in meinem Fall werden IFALIAS und IFDESCR in regulären Ausdrücken durch einen Alias-regulären Ausdruck überprüft).

Die SNMPv3-Datenerfassungsvorlage ist fast fertig. Wir werden uns nicht mit Prototypen von Datenelementen für Netzwerkschnittstellen befassen, sondern mit den Ergebnissen fortfahren.

Ergebnisse überwachen


Zunächst - eine Bestandsaufnahme eines kleinen Netzwerks:



Wenn Sie Vorlagen für jede Reihe von Netzwerkgeräten vorbereiten, können Sie ein bequemes Layout für die Analyse der Zusammenfassungsdaten der aktuellen Software, der Seriennummern und der Benachrichtigung über die Ankunft einer Reinigungsfrau auf dem Server (aufgrund der geringen Betriebszeit) erzielen. Ein Auszug aus meiner Liste der Vorlagen ist unten:



Und jetzt - das Haupt-Dashboard mit Triggern, die nach Schweregrad verteilt sind:



Dank des integrierten Ansatzes für die Vorlagen für jedes Gerätemodell im Netzwerk kann erreicht werden, dass im Rahmen eines Überwachungssystems ein Tool zur Vorhersage von Fehlfunktionen und Unfällen organisiert wird (sofern geeignete Sensoren und Metriken vorhanden sind). Zabbix eignet sich gut zur Überwachung von Netzwerk-, Server- und Dienstinfrastrukturen, und die Aufgabe, Netzwerkgeräte zu warten, zeigt deutlich seine Fähigkeiten.

Liste der verwendeten Quellen:
1. Hucaby D. CCNP Routing and Switching SWITCH 300-115 Official Cert Guide. Cisco Press, 2014. pp. 325-329.
2. RFC 3410. tools.ietf.org/html/rfc3410
3. RFC 3415. tools.ietf.org/html/rfc3415
4. SNMP Configuration Guide, Cisco IOS XE Release 3SE. Chapter: SNMP Version 3. www.cisco.com/c/en/us/td/docs/ios-xml/ios/snmp/configuration/xe-3se/3850/snmp-xe-3se-3850-book/nm-snmp-snmpv3.html

All Articles