SNMP

Funktion

Fragen Sie ein Gerät (normalerweise eine Art Netzwerkgerät) nach SNMP-Daten ab, indem Sie eine OID anfordern. Ermöglicht das Durchsuchen nach OIDs.

Alarmierend

Übertragungszeit, benutzerdefinierte Werte, Diff-Werte und String-Werte

Das Simple Network Management Protocol (SNMP) ist bei weitem das dominierende Protokoll im Netzwerkmanagement. Ein Hauptgrund für seine weitverbreitete Akzeptanz ist neben der Tatsache, dass es sich um den wichtigsten Internetstandard für die Netzwerkverwaltung handelt, seine relative Einfachheit. Die Implementierung der SNMP-Verwaltung in einem vernetzten Gerät ist weitaus einfacher als die meisten anderen standardmäßigen oder nicht standardmäßigen Ansätze zur Netzwerkverwaltung.

Der SNMP-Manager oder die Verwaltungsanwendung verwendet eine klar definierte Benennungssyntax, um die Variablen für den SNMP- Agent anzugeben. Objektnamen werden in dieser Syntax als Objektidentifikatoren (Objekt-IDs oder OIDs) bezeichnet.

OIDs sind Zahlenreihen, die ein Objekt gegenüber einem SNMP- Agent eindeutig identifizieren. OIDs sind in einer hierarchischen, umgekehrten Baumstruktur angeordnet. Der OID-Baum beginnt mit der Wurzel und erweitert sich in Zweige. Jeder Punkt im OID-Baum wird als Knoten bezeichnet und jeder Knoten hat einen oder mehrere Zweige oder endet mit einem Blattknoten. Das Format von OID ist eine Folge von Zahlen mit Punkten dazwischen.

Die folgenden SNMP-Variablentypen werden für Werte unterstützt:

ASN_COUNTER

32-Bit-nicht-negative Ganzzahl, die nur steigen kann

ASN_GAUGE

32-Bit-Ganzzahl

ASN_INTEGER

32-Bit-Ganzzahl (-2 32 bis 2 32 ) RFC 1442

ASN_INTEGER64

64-Bit-Ganzzahl (-2 64 bis 2 64 ) RFC 1442

ASN_OPAQUE

schwebend und doppelt unterstützt

ASN_UNSIGNED64

64 Bit ohne Vorzeichen

ASN_COUNTER64

64 Bit ohne Vorzeichen

ASN_TIMETICKS

ohne Vorzeichen

Alle diese Werte und die Differenz zur letzten Messung werden in Float umgewandelt und dann an den Server übertragen.

Diff-Werte der oben genannten Typen werden automatisch durch die Zeit seit den letzten Messungen dividiert ((currentValue – previousValue) / (currentTimeSeconds – previousTimeSeconds)). Das bedeutet, dass wir für solche Diff-Werte immer eine Rate pro Sekunde erhalten.

ASN_BIT_STR

ASN_OCTET_STR

Diese Werte sind Zeichenfolgen und können beliebige druckbare Zeichen enthalten.

SNMP-Funktionen

  • Online-MIB-Browser zur OID-Auswahl

  • Unendlich viele MIB-Dateien, Speicherort: /usr/share/snmp/mibs auf jedem SKOOR Engine Kollektor

  • Konfigurierbare Maßeinheit

  • Automatische Differenzwerte

  • PDU-Unterstützung für Version 1, 2c und v3

  • Unterstützung der v3-Verschlüsselung

  • n Schicht alarmierend

  • Auswahl der MIB2-Schnittstelle nach Namen

  • Verweisen Sie OID-Namen auf OID-Nummern

  • Einstellbare Wiederholungsversuche und Zeitüberschreitungen

  • Unterdrückbare Werte (reduziert die DB-Größe)

  • Zeichenfolgen (eine Zahl auf einen Text verweisen)

  • Zahlen aus Text-OID analysieren (nur erster Wert)

SNMP-Details

SNMP-Parameter

Der Abschnitt „Authentifizierungseingabe“ wird nur angezeigt, wenn SNMP Version 3 ausgewählt ist.

Parameter

Beschreibung

Udp-hafen

Wählen Sie den UDP-Port (Standard ist 161)

Wiederholungen

Anzahl der Wiederholungsversuche, wenn die Anfrage fehlschlägt. Der Standardwert ist 2 Wiederholungen.

Auszeit

Wählen Sie den Timeout für die Anfrage aus. Auf den meisten Geräten werden SNMP-Anfragen mit niedriger Priorität bearbeitet. Verwenden Sie daher ein ausreichend hohes Timeout. Der Standardwert ist 2s.

Ausführung

Wählen Sie die SNMP-Version aus, die vom Remote-SNMP-Daemon bereitgestellt wird. Folgende Auswahlmöglichkeiten stehen zur Verfügung:

Version 1
Version 2c
Version 3

Sicherheitsstufe

Die Sicherheitsstufe definiert, wie die SNMP-Anfrage gesendet wird. Diese Auswahl ist nur verfügbar, wenn SNMP v3 verwendet wird. Folgende Optionen stehen zur Verfügung:
Keine Authentifizierung, keine Verschlüsselung
Authentifizierung, keine Verschlüsselung
Authentifizierung, Verschlüsselung

Nutzername

Zur Authentifizierung, nur sichtbar, wenn SNMP v3 verwendet wird.

Authentisch. Passphrase

Passphrase für die Authentifizierung, nur sichtbar, wenn SNMP mit Authentifizierung verwendet wird.

Authentisch. Protokoll

Protokoll zur Authentifizierung, nur sichtbar, wenn SNMP mit Authentifizierung verwendet wird. Derzeit verfügbare Optionen sind MD5 oder SHA. Der Standardwert ist MD5.

Datenschutz-Passphrase

Für Verschlüsselung, nur sichtbar, wenn SNMP mit Authentifizierung und Verschlüsselung verwendet wird.

Datenschutzprotokoll

Für Verschlüsselung, nur sichtbar, wenn SNMP mit Authentifizierung und Verschlüsselung verwendet wird. Derzeit verfügbare Optionen sind DES und AES. Der Standardwert ist DES.

Gemeinschaft

Die meisten Netzwerkgeräte erlauben unterschiedliche Ebenen des SNMP-Zugriffs, zum Beispiel: NUR LESEN oder LESEN/SCHREIBEN. Jede dieser Zugriffsebenen verfügt normalerweise über eine andere Community-Zeichenfolge. Zum Lesen von Daten muss lediglich die READ-Community bekannt sein, die in der Regel öffentlich ist.

OID anfordern

Geben Sie die Management Information Base (MIB)-OID für die Anfrage ein. Wenn die OID unbekannt ist, kann sie mit dem Online-Browser auf dem Auftragsgerät durchsucht werden. Zusätzliche OIDs können von einem einzelnen SNMP-Job angefordert werden, indem Sie auf die Schaltfläche „+“ neben der Schaltfläche „Durchsuchen “ klicken. Wenn mehr als eine OID eingegeben wird, wird die Ausgabe aller OIDs nacheinander in dieselbe Ausgabedatei angehängt.

Überlauf

Lassen Sie diese Einstellung auf Auto . Es übernimmt die Berechnung des Diff-Wertes, wenn der Zähler auf 0 zurückgesetzt wird. Dies verhindert negative Diff-Werte.

Übertragungszeit unterdrücken

Standardmäßig wird die Zeit, die für die Übertragung der SNMP-Daten benötigt wird, in der Datenbank aufgezeichnet. Wenn diese Informationen irrelevant sind, aktivieren Sie dieses Kontrollkästchen, um Datenbankspeicherplatz zu sparen.

Wert unterdrücken
Diff-Wert unterdrücken
Stringwert unterdrücken
Infomeldung unterdrücken

Markieren Sie die SNMP-Ausgabetypen, die nicht berücksichtigt werden sollen.

Wenn das Kontrollkästchen Infomeldung unterdrücken aktiviert ist, wird die SNMP-String-Ausgabe nicht an den Server gesendet. Der Rückgabewert wird nur dann auf „Ungültiger Wert“ gesetzt, wenn entweder „Wert“ oder „Differenzwert“ gewünscht ist und es nicht möglich ist, einen Wert aus der Zeichenfolge zu extrahieren.

Die Kontrollkästchen Wert unterdrücken , Differenzwert unterdrücken und

Ordnen Sie die Zeichenfolge einem Wert zu

Definieren Sie eine Zuordnung von SNMP-String-Objekten zu numerischen Werten.

Ein String-Wert kann als String-Wert direkt oder durch Definieren einer String-Map im Format 1=foo,2=bar,0=* extrahiert werden, was bedeutet, dass der String foo in den numerischen Wert 1 konvertiert wird, der String bar in der numerische Wert 2 und (optional) alles andere auf den Wert 0. Leerzeichen sind in dieser Definition nicht erlaubt.

Wenn keine Zeichenfolgenzuordnung definiert ist oder die Zuweisung fehlschlägt (kein Operator definiert), wird die Zeichenfolge auf das erste Vorkommen numerischer Zeichen analysiert und das Ergebnis wird wie angefordert an den Server übertragen (Wert und/oder Diff-Wert).

Einheit definieren

Siehe Abschnitt SNMP-Einheit/Divisor unten.

Die Dropdown-Liste „Tags“ ermöglicht die Eingabe vordefinierter Variablen in die Felder oben, z. B. $NAME$ für den Namen des Jobs.

Stöbern Sie online

Um eine bestimmte SNMP-OID auf dem Remote-SNMP- Agent zu finden und diese als SNMP-Anfrage zu verwenden, klicken Sie auf die Schaltfläche „Online durchsuchen“ . Es hilft, wenn man die ungefähre Position im Baum kennt, um die Suchzeit, den Netzwerkverkehr und die Ausgabegröße zu begrenzen. Geben Sie den richtigen Community-String für den SNMP- Agent ein und wählen Sie im Abschnitt Verbindung die SNMP-Version aus. Die am häufigsten verwendeten MIBs können aus dem Dropdown-Menü ausgewählt werden, beginnend mit Root , das nur ausgewählt werden sollte, wenn der Standort des benötigten Objekts völlig unbekannt ist:

Starten Sie den Vorgang mit der Schaltfläche „Scan starten“ :

Abhängig von der Anzahl der Objekte unterhalb der ausgewählten Root- OID kann es einige Zeit dauern, bis der Scan abgeschlossen ist. Klicken Sie auf „Aktualisieren“ , bis der Download-Status „Abgeschlossen“ anzeigt:

Der Download-Zähler zeigt die Anzahl der gefundenen OIDs an. Um sie anzuzeigen, wählen Sie Baum anzeigen oder Ebene anzeigen . Um eine OID auszuwählen, klicken Sie einfach auf den OID-Link.

Beispiel 1 – Baumansicht mit Typ und Wert

Beispiel 2 – Flache Ansicht mit Wert

Wenn die Ausgabe des gescannten Baums keine Textinformationen, sondern nur OIDs des Formulars anzeigt

1.3.6.1.4.1.13424.11.1.1.25

dann ist die MIB für das gescannte Gerät wahrscheinlich nicht installiert. Um nach SNMP-MIBs zu suchen, durchsuchen Sie die Website des Geräteherstellers oder durchsuchen Sie die MIB-Depot- Homepage nach öffentlich verfügbaren MIBs.

Auflösung generischer SNMP-Namen

Einige SNMP-Server ordnen dieselbe OID nicht immer demselben Wert zu. Das Lesen der Festplattennutzung von einer Host-MIB funktioniert möglicherweise, bis diesem System eine neue Festplatte hinzugefügt wird. Es ist möglich, dass sich der Index (im Beispiel unten .2) ändert.

Um dies zu vermeiden, kann SKOOR Engine eine benutzerdefinierte Resolve OID für die Namens-Index-Zuordnung verwenden. Um dies zu erreichen, ersetzen wir den Index durch eine Zeichenfolge, die mit der Resolve-OID mit dem Muster zwischen zwei $-Zeichen übereinstimmt. Vor der Durchführung der Abfrage ersetzt SKOOR Engine den $string$ durch den gefundenen entsprechenden Index. Hier ist ein Beispiel für eine OID, aus der man einen Wert lesen möchte:

.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.2

Anstatt diese Zeichenfolge als Anforderungs-OID einzugeben, suchen Sie zunächst nach der SNMP-Beschreibungszeichenfolge der Festplatte, die unter der folgenden OID gespeichert ist:

.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr

Sein Wert ist: C:\ Bezeichnung: Seriennummer dc133042

Ersetzen Sie nun die Zahl 2 durch den obigen Wert, umgeben von zwei $-Zeichen:

iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$C:\ Label: Seriennummer dc133042$

Sobald die zweite $-Zeichenfolge eingegeben wird, erscheint eine neue Zeile namens „Resolve OID“ unter der Zeile „Request OID1“ . Geben Sie hier die obige Beschreibungs-OID ein:

. iso.org .dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageDescr

$C:\ Label: Seriennummer dc133042$ wird durch 2 ersetzt.

SNMP-Standardwert

Wenn die OID-Namensauflösung fehlschlägt (siehe Abschnitt oben), besteht die Möglichkeit, einen Standardindex zu definieren. Im obigen Beispiel würde man den Standardindex nach der Anforderungs-OID schreiben, getrennt durch ein Leerzeichen:

iso.org .dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$C:\ Label: Seriennummer dc133042$ 2

SNMP-Einheit/Teiler

Die SNMP-Ausgabe im Beispiel im obigen Abschnitt lautet:

hrStorageDescr.2              C:\ Label: Serial Number dc133042
hrStorageAllocationUnits.2    4096 Bytes
hrStorageSize.2               2120572
hrStorageUsed.2               1839613

Um stattdessen das Ergebnis der genutzten Speicherkapazität in GB zu erhalten, muss der richtige Divisor eingestellt werden.

Der Windows Explorer sagt uns Folgendes über das Dateisystem auf Laufwerk C:\:

Volume: 8283MB, 8.08GB Total Size, Freespace 1.07GB

Daher muss man hrStorageUsed.2 mit 4096 multiplizieren, um den Wert in Bytes zu erhalten, und dann dreimal durch 1024 dividieren, um den Wert in GB zu erhalten.

1839613 x 4096 / 1024 / 1024 / 1024 = 7,01 GB verwendet (was mit den Angaben des Explorers übereinstimmt)

Um den SKOOR Engine Divisor festzulegen, kombinieren Sie 1024 x 1024 x 1024 / 4096 = 262144

Klicken Sie auf die Schaltfläche „Einheit“ , um den Namen des Werts, seine Einheit und seinen Teiler zu definieren:

Das Ergebnis im Wertebereich nach der Ausführung des SNMP-Jobs beträgt 7,01 GB .

Um stattdessen %used zu erhalten, verwenden Sie diese Formel: hrStorageUsed / hrStorageSize x 100, sodass der Divisor 21205,72 wäre.

SNMP-Jobs mit mehreren OIDs

Es ist möglich, mehrere OIDs innerhalb desselben SNMP-Jobs auszuwerten. Alle SNMP-Abfragen müssen für das Gerät gültig sein, an das der SNMP-Job angehängt ist (es ist nicht möglich, Abfragen für verschiedene Geräte in einem SNMP-Job zu definieren). Zusätzliche OIDs werden aktiviert, indem Sie auf die Plus-Schaltfläche neben der Schaltfläche „Online durchsuchen“ klicken. Sobald zusätzliche OIDs hinzugefügt werden, werden im Abschnitt „Ergebnisse“ unten zusätzliche Ergebnisfelder angezeigt:

Jede OID verfügt über einen separat konfigurierbaren Ausgabeabschnitt und eine eigene Zuordnungszeichenfolge zur Wertdefinition und eine eigene Einheitenschaltfläche . Die Übertragungszeit kann global unterdrückt werden.

Das Beispiel verwendet Resolve-OIDs für jede der drei OIDs. Weitere Informationen finden Sie oben im Abschnitt „Generische SNMP-Namensauflösung“ .

Die ersten und zweiten OIDs fordern die Zähler ifInOctets und ifOutOctets von einer Schnittstelle eines Netzwerkgeräts an. Für diese Zähler ist der absolute Wert nicht relevant, was interessant ist, ist die Änderung mit der Zeit, daher unterdrücken die Ergebnisfelder für diese beiden OIDs die Werte selbst und alle Zeichenfolgenwerte (die von dieser OID ohnehin nicht zurückgegeben werden).

In der Einheitendefinition für das erste OID-Ergebnis sind die Wert- und Zeichenfolgewerteinheiten entsprechend ausgegraut:

Zur Umrechnung der Ausgabe in kBit/s wird ein Divisor angegeben.

Byte/s → kBit/s
kbit = Byte / 1000 * 8
kbit = Byte / (1000 / 8)
kbit = Byte / 125

Die dritte OID fordert den ifOperStatus der Netzwerkschnittstelle an, der vom SNMP- Agent als String zurückgegeben wird (nicht als String-Objekt an sich, aber die Ausgabe lautet z. B.: up(1) ). Dies wird sichtbar, wenn Sie die Schaltfläche „Online durchsuchen“ mit der Schaltfläche verwenden . iso.org .dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifOperStatus OID als Root :

Da numerische Werte von der SKOOR Engine schneller verarbeitet werden, ist es normalerweise besser, die bekannte Zeichenfolge mithilfe des Felds „Zeichenfolge in Wert zuordnen“ in einen numerischen Wert umzuwandeln:

Dies bedeutet, dass das an den Server gesendete Ergebnis ein Wert und keine Zeichenfolge mehr ist, sodass Zeichenfolgenwerte und Differenzwerte unterdrückt werden können.

Die Einheitendefinition für das dritte OID-Ergebnis wird wie folgt angegeben:

Die Ergebnisse werden dann im Bereich Werte angezeigt:

Wenn eine der definierten OIDs einen Fehler erzeugt, wird die Fehlermeldung dieser OID angezeigt und der gesamte Job schlägt fehl. Alle nachfolgenden OIDs werden nicht verarbeitet, wenn eine OID fehlschlägt:

SNMP-Werte und Alarmgrenzen

Wert/ Alarm Limit

Beschreibung

Wert1-n

Benutzerdefinierter numerischer Wert, der über die Schaltfläche „OIDs- Ergebniseinheit“ definiert wird.

Differenzwert1-n

Benutzerdefinierter numerischer Diff-Wert, der über die Schaltfläche „OIDs- Ergebniseinheit“ definiert wird.

String-Wert1-n

Benutzerdefinierter Zeichenfolgenwert, der durch die Schaltfläche „OIDs- Ergebniseinheit“ definiert wird.

Fehlercode

Allgemeiner Job-Fehlercode (siehe Abschnitt Job-Fehlercodes )

SNMP-Beispiele

Beispiel 1 – Auswahl der SNMP mib-2-Schnittstelle anhand der Beschreibung

Es ist möglich, die Schnittstellennummer anhand ihrer Beschreibung automatisch auszuwählen. Dies kann nützlich sein, wenn sich die Schnittstellenanzahl eines Routers ändern kann. Dann muss es möglich sein, die Schnittstelle anhand ihrer Beschreibung auszuwählen.

Wir wollen die OID nachschlagen

.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets.

für die Anzahl der Oktette, die über die VLAN 10- Schnittstelle nach innen gelangt sind. Dazu suchen wir unten zunächst die Schnittstellenbeschreibung . iso.org .dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr :

und stellen Sie fest, dass die Beschreibung lautet:

em0_vlan10

Ersetzen Sie nun den numerischen Index nach ifInOctets durch die Zeichenfolge $em0_vlan10$ und verwenden Sie diese als Request-OID:

.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets.$em0_vlan10$

Als Resolve OID verwenden Sie

.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr

Bei der Suche nach einer passenden Beschreibungszeichenfolge wird die Groß-/Kleinschreibung beachtet. Der Job merkt sich den letzten Index. Wenn sich die Nummer geändert hat, werden die Beschreibungen erneut gescannt.