SNMP

Funktion

Abfrage eines Geräts (in der Regel ein Netzwerkgerät) nach SNMP-Daten durch Anforderung einer OID. Ermöglicht das Durchsuchen nach OIDs.

Alarmierung

Übertragungszeit, benutzerdefinierte Werte, Differenzwerte und Zeichenfolgenwerte

Das Simple Network Management Protocol (SNMP) ist das mit Abstand dominierende Protokoll im Netzwerkmanagement. Ein wichtiger Grund für seine breite Akzeptanz ist neben seiner Stellung als wichtigster Internetstandard für das Netzwerkmanagement seine relative Einfachheit. Die Implementierung des SNMP-Managements in einem Netzwerkgerät ist weitaus unkomplizierter als die meisten anderen standardisierten oder nicht standardisierten Ansätze für das Netzwerkmanagement.

Der SNMP-Manager oder die Verwaltungsanwendung verwendet eine genau definierte Namenssyntax, um die Variablen für den SNMP-Agenten anzugeben. Objektnamen in dieser Syntax werden als Objektidentifikatoren (Object IDs oder OIDs) bezeichnet.

OIDs sind Zahlenfolgen, 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 in Äste. Jeder Punkt im OID-Baum wird als Knoten bezeichnet, und jeder Knoten hat einen oder mehrere Äste oder endet mit einem Blattknoten. Das Format einer OID ist eine Folge von Zahlen, die durch Punkte voneinander getrennt sind.

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

ASN_COUNTER

32-Bit-Ganzzahl, die nur positiv sein kann

ASN_GAUGE

32-Bit-Ganzzahl

ASN_INTEGER

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

ASN_INTEGER64

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

ASN_OPAQUE

Float und Double werden unterstützt

ASN_UNSIGNED64

64-Bit-Ganzzahl ohne Vorzeichen

ASN_COUNTER64

64 Bit ohne Vorzeichen

ASN_TIMETICKS

vorzeichenlos

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

Die Differenzwerte der oben genannten Typen werden automatisch durch die Zeit seit den letzten Messungen geteilt ((aktuellerWert - vorherigerWert) / (aktuelleSekunden - vorherigeSekunden)). Das bedeutet, dass wir für solche Differenzwerte immer einen Wert 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 für die OID-Auswahl

  • Unbegrenzte Anzahl von MIB-Dateien, Speicherort: /usr/share/snmp/mibs auf jedem SKOOR Engine Collector

  • Konfigurierbare Maßeinheit

  • Automatische Differenzwerte

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

  • Unterstützung für v3-Verschlüsselung

  • n-Layer-Alarmierung

  • MIB2-Schnittstellenauswahl nach Namen

  • Referenzierung von OID-Namen zu OID-Nummern

  • Einstellbare Wiederholungsversuche und Zeitüberschreitungen

  • Unterdrückbare Werte (reduziert die Datenbankgröße)

  • Zeichenfolgen (Verweis einer Nummer auf Text)

  • Aus Text OID Zahlen herauslesen (nur erster Wert)

SNMP-Details

SNMP-Parameter

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

Parameter

Beschreibung

UDP-Port

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

Wiederholungsversuche

Anzahl der Wiederholungsversuche, wenn die Anfrage fehlschlägt. Standardmäßig sind 2 Wiederholungsversuche eingestellt.

Zeitlimit

Wählen Sie das Zeitlimit für die Anfrage aus. Auf den meisten Geräten werden SNMP-Anfragen mit niedriger Priorität behandelt, verwenden Sie daher ein ausreichend hohes Zeitlimit. Der Standardwert ist 2 Sekunden.

Version

Wählen Sie die SNMP-Version aus, die vom Remote-SNMP-Daemon bereitgestellt wird. Folgende Optionen stehen zur Auswahl:

Version 1
Version 2c
Version 3

Sicherheitsstufe

Die Sicherheitsstufe legt fest, wie die SNMP-Anfrage gesendet wird. Diese Option 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

Benutzername

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

Authentifizierungs-Passphrase

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

Authentifizierungsprotokoll

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

Datenschutz-Passphrase

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

Datenschutzprotokoll

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

Community

Die meisten Netzwerkgeräte erlauben verschiedene Ebenen des SNMP-Zugriffs, zum Beispiel: READ ONLY (nur Lesen) oder READ/WRITE (Lesen/Schreiben). Jede dieser Zugriffsebenen hat in der Regel eine andere Community-Zeichenfolge. Um Daten zu lesen, muss nur die READ-Community bekannt sein, die in der Regel „public“ lautet.

OID anfordern

Fügen 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 Jobgerä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 an dieselbe Ausgabedatei angehängt.

Überlauf

Lassen Sie diese Einstellung auf „Auto“ stehen. Sie übernimmt die Berechnung des Diff-Werts, wenn der Zähler auf 0 zurückgesetzt wird. Dadurch werden negative Diff-Werte verhindert.

Übertragungszeit unterdrücken

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

Wert unterdrücken
Diff-Wert unterdrücken
Zeichenfolgenwert unterdrücken
Infomeldung unterdrücken

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

Wenn das Kontrollkästchen „Infomeldung unterdrücken“ aktiviert ist, wird die SNMP-Zeichenfolgenausgabe nicht an den Server gesendet. Der Rückgabewert wird nur dann auf „Ungültiger Wert“ gesetzt, wenn entweder ein Wert oder ein Diff-Wert 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

Zeichenfolge einem Wert zuordnen

Definieren Sie eine Zuordnung von SNMP-Zeichenfolgenobjekten zu numerischen Werten.

Ein Zeichenfolgenwert kann direkt als Zeichenfolgenwert extrahiert werden oder durch Definieren einer Zeichenfolgenzuordnung im Format 1=foo,2=bar,0=*, was bedeutet, dass die Zeichenfolge foo in den numerischen Wert 1, die Zeichenfolge bar in den numerischen Wert 2 und (optional) alles andere in den Wert 0 konvertiert wird. Leerzeichen sind in dieser Definition nicht zulässig.

Wenn keine Zeichenfolgenzuordnung definiert ist oder die Zuweisung fehlschlägt (kein StandardOperator definiert), wird die Zeichenfolge nach dem ersten Vorkommen numerischer Zeichen analysiert und das Ergebnis wie angefordert (Wert und/oder Differenzwert) an den Server übertragen.

Einheit definieren

Siehe Abschnitt „SNMP-Einheit/Divisor“ weiter unten.

Über die Dropdown-Liste „Tags“ können vordefinierte Variablen in die Felder oben eingegeben werden, z. B. $NAME$ für den Namen des Auftrags.

Online durchsuchen

Um eine bestimmte SNMP-OID auf dem Remote-SNMP-Agenten zu finden und 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 die richtige Community-Zeichenfolge 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 der Speicherort des gewünschten Objekts völlig unbekannt ist:

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

Der Scan kann je nach Anzahl der Objekte unterhalb der ausgewählten Root-OID einige Zeit dauern. Klicken Sie auf „Aktualisieren“, bis der Download-Status „Abgeschlossen“ lautet:

Der Download-Zähler zeigt die Anzahl der gefundenen OIDs an. Um sie anzuzeigen, wählen Sie „Show tree“ (Baum anzeigen) oder „Show flat“ (Flach 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 in der Form

1.3.6.1.4.1.13424.11.1.1.25

enthält, 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.

SNMP-Generic-Name-Auflösung

Einige SNMP-Server ordnen nicht immer derselben OID denselben Wert zu. Das Auslesen der Festplattennutzung aus einer Host-MIB funktioniert möglicherweise so lange, bis eine neue Festplatte zu diesem System hinzugefügt wird. Es ist möglich, dass sich der Index (im folgenden Beispiel .2) ändert.

Um dies zu vermeiden, kann SKOOR Engine eine benutzerdefinierte Resolve-OID für die Zuordnung von Namen zu Indizes verwenden. Dazu ersetzen wir den Index durch eine Zeichenfolge, die mit der Resolve-OID mit dem Muster zwischen zwei $-Zeichen übereinstimmt. Vor der Ausführung der Abfrage ersetzt SKOOR Engine die $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 Request-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

Ihr Wert lautet: C:\ Bezeichnung: Seriennummer dc133042

Ersetzen Sie nun die Zahl 2 durch den oben genannten 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 $-Zeichenfolge eingegeben wurde, erscheint unterhalb der Zeile „Request OID1” eine neue Zeile mit dem Namen „Resolve OID”. Geben Sie hier die oben genannte OID-Beschreibung 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), kann ein Standardindex definiert werden. Im obigen Beispiel würde man den Standardindex nach dem Request 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.

Windows Explorer gibt folgende Informationen zum Dateisystem auf Laufwerk C:\ aus:

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

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

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

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

Drücken Sie die Taste „Unit“, um den Namen des Werts, seine Einheit und seinen Divisor zu definieren:

Das Ergebnis im Wertebereich nach Ausführung des SNMP-Jobs lautet 7,01 GB.

Um stattdessen den Prozentsatz der Nutzung zu erhalten, verwenden Sie diese Formel: hrStorageUsed / hrStorageSize x 100, sodass der Divisor 21205,72 beträgt.

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 durch Klicken auf die Plus-Schaltfläche neben der Schaltfläche „Online durchsuchen“ aktiviert. Sobald zusätzliche OIDs hinzugefügt wurden, erscheinen zusätzliche Ergebnisfelder im Abschnitt „Ergebnisse“ unten:

Jede OID verfügt über einen separat konfigurierbaren Ausgabebereich und eine eigene Zuordnung von Zeichenfolge zu Wert sowie eine Schaltfläche „Einheit“. Die Übertragungszeit kann global unterdrückt werden.

Das Beispiel verwendet „OIDs auflösen“ für jede der 3 OIDs. Weitere Informationen finden Sie oben im Abschnitt „SNMP-Generikennamenauflösung“.

Die erste und zweite OID 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, interessant ist vielmehr die Veränderung im Zeitverlauf, sodass die Ergebnisfelder für diese beiden OIDs die Werte selbst und alle Zeichenfolgenwerte (die von dieser OID ohnehin nicht zurückgegeben werden) unterdrücken.

In der Einheitsdefinition für das erste OID-Ergebnis sind die Werte- und Zeichenfolgen-Einheiten entsprechend ausgegraut:

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

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 Zeichenfolge zurückgegeben wird (nicht als Zeichenfolgenobjekt an sich, sondern die Ausgabe lautet z. B.: up(1)). Dies kann man sehen, wenn man die Schaltfläche „Online durchsuchen” mit dem 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 Zeichenfolge mithilfe des Felds „Zeichenfolge in Wert umwandeln“ in einen numerischen Wert umzuwandeln:

Das bedeutet, dass das an den Server gesendete Ergebnis ein Wert und keine Zeichenfolge mehr ist, sodass man Zeichenfolgenwerte und Diff-Werte unterdrücken kann.

Die Einheitsdefinition 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 Auftrag 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 „Ergebnis Einheit“ der OIDs definiert wird.

Diff-Wert1-n

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

Zeichenfolgenwert1-n

Benutzerdefinierter Zeichenfolgenwert, der über die Schaltfläche „Ergebnis-Einheit“ der OIDs definiert wird.

Fehlercode

Generischer 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 möchten die OID

   .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets.<Schnittstellen-ID>

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

   

und finden folgende Beschreibung:

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$

Verwenden Sie als Resolve-OID

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

Bei der Suche nach einer übereinstimmenden 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.