SNMP

Funktion

Fragt ein Gerät (in der Regel eine Art Netzwerkgerät) nach SNMP-Daten ab, indem es eine OID anfordert. Ermöglicht das Durchsuchen nach OIDs.

Alarmierung

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

Das Simple Network Management Protocol (SNMP) ist das bei weitem vorherrschende Protokoll für die Netzwerkverwaltung. Ein Hauptgrund für seine weite Verbreitung ist neben der Tatsache, dass es der wichtigste Internet-Standard für die Netzwerkverwaltung ist, seine relative Einfachheit. Die Implementierung der SNMP-Verwaltung in einem vernetzten Gerät ist weitaus unkomplizierter als die meisten anderen standardisierten oder nicht standardisierten Ansätze zur Netzwerkverwaltung.

Der SNMP-Manager oder die Management-Anwendung verwendet eine genau definierte Namenssyntax, um die Variablen für den SNMP-Agenten zu spezifizieren. Die Objektnamen in dieser Syntax werden als Object Identifiers (Object IDs oder OIDs) bezeichnet.

OIDs sind eine Reihe von Zahlen, die ein Objekt für einen SNMP-Agenten eindeutig identifizieren. OIDs sind in einer hierarchischen, umgekehrten Baumstruktur angeordnet. Der OID-Baum beginnt mit der Wurzel und verzweigt sich dann. Jeder Punkt im OID-Baum wird als Knoten bezeichnet, und jeder Knoten hat einen oder mehrere Zweige oder endet mit einem Blattknoten. Das Format der 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 (-232 bis232) rfc 1442

ASN_INTEGER64

64-Bit-Ganzzahl (-264 bis264) rfc 1442

ASN_OPAQUE

Float und Double unterstützt

ASN_UNSIGNED64

64 Bit ohne Vorzeichen

ASN_ZÄHLER64

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 der letzten Messung 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 Zeichenketten und können beliebige druckbare Zeichen enthalten.

SNMP-Funktionen

  • Online-MIB-Browser für die OID-Auswahl

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

  • Konfigurierbare Messeinheit

  • Automatische Differenzwerte

  • Unterstützung von PDUs der Versionen 1, 2c und v3

  • v3-Verschlüsselungsunterstützung

  • Alarmierung auf n-Ebene

  • MIB2-Schnittstellenauswahl nach Namen

  • Verweis von OID-Namen auf OID-Nummern

  • Einstellbare Wiederholungsversuche und Timeouts

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

  • Strings (Verweis einer Zahl auf Text)

  • Parsen von Zahlen aus Text OID (nur erster Wert)

SNMP-Details

SNMP-Parameter

Der Eingabeabschnitt Authentifizierung wird nur angezeigt, wenn SNMP Version 3 ausgewählt ist.

Parameter

Beschreibung

UDP-Anschluss

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

Wiederholungen

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

Zeitüberschreitung

Wählen Sie die Zeitüberschreitung für die Anfrage. Auf den meisten Geräten werden SNMP-Anfragen mit niedriger Priorität behandelt, daher sollte die Zeitüberschreitung hoch genug gewählt werden. Die Voreinstellung ist 2s.

Version

Wählen Sie die SNMP-Version, die vom entfernten snmp-Daemon bedient wird. Die folgenden Optionen stehen zur Auswahl:

Version 1
Version 2c
Version 3

Sicherheitsstufe

Die Sicherheitsstufe legt fest, wie die SNMP-Anfrage gesendet wird. Diese Auswahl ist nur verfügbar, wenn SNMP v3 verwendet wird. Die folgenden Optionen sind verfügbar:
Keine Authentifizierung, keine Verschlüsselung
Authentifizierung, keine Verschlüsselung
Authentifizierung, Verschlüsselung

Benutzername

Für die Authentifizierung, nur sichtbar, wenn SNMP v3 verwendet wird.

Authent. Passphrase

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

Authent. Protokoll

Protokoll für die Authentifizierung, nur sichtbar, wenn SNMP mit Authentifizierung verwendet wird. Derzeit verfügbare Optionen sind MD5 oder SHA. Voreinstellung ist MD5.

Datenschutz-Passphrase

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

Datenschutz-Protokoll

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

Gemeinschaft

Die meisten Netzwerkgeräte erlauben verschiedene Ebenen des SNMP-Zugriffs, zum Beispiel: READ ONLY oder READ/WRITE. Jede dieser Zugriffsebenen hat in der Regel einen anderen Community-String. Um Daten zu lesen, muss nur die READ-Community bekannt sein, die normalerweise lautet: public.

OID anfordern

Geben Sie die OID der Management-Informationsbasis (MIB) für die Anfrage ein. Wenn die OID nicht bekannt ist, kann sie auf dem Job-Gerät mit dem Online-Browser 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 1 OID eingegeben wird, wird die Ausgabe aller OIDs nacheinander in dieselbe Ausgabedatei angehängt.

Überlauf

Lassen Sie diese Einstellung auf Auto stehen. Sie ü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 Information irrelevant ist, markieren Sie dieses Feld, um Platz in der Datenbank zu sparen.

Wert unterdrücken
Diff-Wert unterdrücken
String-Wert unterdrücken
Info-Meldung 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 value oder diff value gewünscht ist und es nicht möglich ist, einen Wert aus dem String zu extrahieren.

Die Kontrollkästchen Wert unterdrücken, Diff-Wert unterdrücken und

String auf Wert abbilden

definieren ein Mapping von SNMP-String-Objekten auf numerische Werte.

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

Wenn keine String-Map definiert ist oder die Zuweisung fehlschlägt (kein Standardoperator definiert), wird die Zeichenkette auf das erste Vorkommen numerischer Zeichen hin geparst und das Ergebnis wie gewünscht an den Server übertragen (Wert und/oder Diff-Wert).

Einheit definieren

Siehe Abschnitt SNMP Unit/Divisor unten.

Die Dropdown-Liste Tags ermöglicht die Eingabe von vordefinierten Variablen in die obigen Felder, z. B. $NAME$ für den Namen des Auftrags.

Online durchsuchen

Um eine bestimmte SNMP-OID auf dem entfernten SNMP-Agenten zu finden und sie als SNMP-Anfrage zu verwenden, klicken Sie auf die Schaltfläche Online durchsuchen. Es ist hilfreich, wenn Sie die ungefähre Position in der Baumstruktur kennen, um die Suchzeit, den Netzwerkverkehr und die Ausgabegröße zu begrenzen. Geben Sie den richtigen Community-String für den SNMP-Agenten ein und wählen Sie die SNMP-Version im Abschnitt Verbindung 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 die Position des gewünschten Objekts völlig unbekannt ist:

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

Der Scan kann einige Zeit in Anspruch nehmen, abhängig von der Anzahl der Objekte unterhalb der ausgewählten Root-OID. Klicken Sie auf Aktualisieren, bis der Download-Status Complete lautet:

Der Download-Zähler zeigt die Anzahl der gefundenen OIDs an. Um sie anzuzeigen, wählen Sie Baum anzeigen oder Wohnung 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 zeigt, sondern nur OIDs der Form

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, suchen Sie auf der Website des Geräteherstellers oder auf der MIB Depot-Homepage nach öffentlich verfügbaren MIBs.

Auflösung des generischen SNMP-Namens

Bei einigen SNMP-Servern wird nicht immer dieselbe OID mit demselben Wert verknüpft. Das Auslesen der Festplattennutzung aus einer Host-MIB kann funktionieren, bis eine neue Festplatte zu diesem System hinzugefügt wird. Es ist möglich, dass sich der Index (der im Beispiel unten .2 ist) ändert.

Um dies zu vermeiden, kann SKOOR Engine eine benutzerdefinierte Resolve OID für die Zuordnung von Name zu Index verwenden. Um dies zu erreichen, ersetzen wir den Index durch eine Zeichenkette, die mit der Resolve OID mit dem Muster zwischen zwei $-Zeichen übereinstimmt. Bevor die Abfrage durchgeführt wird, 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 Anfrage-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:\ Label: Seriennummer dc133042

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

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

Sobald die zweite $-Zeichenkette eingegeben wird, erscheint eine neue Zeile mit dem Namen Resolve OID unter der Zeile Request OID1. Geben Sie hier die oben beschriebene 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 Auflösung des OID-Namens fehlschlägt (siehe obigen Abschnitt), ist es möglich, einen Standardindex zu definieren. Im obigen Beispiel würde man den Standardindex hinter die Anfrage-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/Divisor

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 Zahlen des Explorers übereinstimmt)

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

Drücken Sie die Schaltfläche Einheit, um den Namen des Wertes, seine Einheit und seinen Divisor zu definieren:

Das Ergebnis im Abschnitt Werte nach Ausführung des SNMP-Jobs ist 7,01 GB.

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

SNMP-Aufträge 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 angeschlossen ist (es ist nicht möglich, Abfragen für verschiedene Geräte in einem SNMP-Job zu definieren). Zusätzliche OIDs werden durch Klicken auf die Plus-Schaltfläche neben der Schaltfläche Online durchsuchen aktiviert. Sobald zusätzliche OIDs hinzugefügt werden, erscheinen zusätzliche Ergebnisfelder im Abschnitt Ergebnisse unten:

Jede OID verfügt über einen separat konfigurierbaren Ausgabebereich und eine eigene Schaltfläche "Map string to value definition" und " Unit". Die Übertragungszeit kann global unterdrückt werden.

Das Beispiel verwendet Resolve OIDs für jede der 3 OIDs. Einzelheiten finden Sie im Abschnitt SNMP generic name resolution oben.

Die erste und zweite OID fragen die Zähler ifInOctets und ifOutOctets von einer Schnittstelle eines Netzwerkgeräts ab. Bei diesen Zählern ist der absolute Wert nicht relevant, interessant ist die Veränderung mit der Zeit, daher unterdrücken die Ergebnisfelder für diese beiden OIDs die Werte selbst und alle String-Werte (die von dieser OID ohnehin nicht zurückgegeben werden).

Bei der Definition der Einheit für das erste OID-Ergebnis sind die Einheiten für den Wert und den String-Wert entsprechend ausgegraut:

Es wird ein Divisor angegeben, um die Ausgabe in kBit/s umzurechnen.

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

Die dritte OID fragt den ifOperStatus der Netzwerkschnittstelle ab, der vom SNMP-Agenten als String zurückgegeben wird (nicht als String-Objekt an sich, sondern die Ausgabe lautet z. B.: up(1)). Dies kann man sehen, wenn man die Schaltfläche Browse online mit der OID .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifOperStatus als Root verwendet:

Da numerische Werte von der SKOOR Engine schneller verarbeitet werden, ist es in der Regel besser, die bekannte Zeichenkette mit dem Feld Map string to value in einen numerischen Wert umzuwandeln:

Das bedeutet, dass das an den Server gesendete Ergebnis ein Wert und nicht mehr ein String ist, so dass man String-Werte und Diff-Werte unterdrücken kann.

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

Die Ergebnisse werden dann im Abschnitt 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 Alarm Limits

Wert / Alarm Limit

Beschreibung

Wert1-n

Benutzerdefinierter numerischer Wert, der über die Schaltfläche OIDs Ergebnis Einheit definiert wird.

Diff Wert1-n

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

Zeichenfolge Wert1-n

Benutzerdefinierter String-Wert, der über die Schaltfläche OIDs Result Unit definiert wird.

Fehlercode

Allgemeiner Job-Fehlercode (siehe Abschnitt Job-Fehlercodes)

SNMP-Beispiele

Beispiel 1 - SNMP mib-2 Schnittstellenauswahl nach Beschreibung

Es ist möglich, die Schnittstellennummer automatisch anhand ihrer Beschreibung auszuwählen. Dies kann nützlich sein, wenn sich die Anzahl der Schnittstellen 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.<Schnittstellen-ID>

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

und finden, dass die Beschreibung lautet:

em0_vlan10

Ersetzen Sie nun den numerischen Index nach ifInOctets durch die Zeichenkette $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 einem passenden Beschreibungsstring wird zwischen Groß- und Kleinschreibung unterschieden. Der Job merkt sich den letzten Index. Wenn sich die Nummer geändert hat, werden die Beschreibungen erneut durchsucht.