SNMP

Funktion

Abfrage von SNMP-Daten von einem Gerät (in der Regel ein Netzwerkgerät) 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 wesentlicher Grund für seine breite Akzeptanz ist – abgesehen davon, dass es der wichtigste Internetstandard für das Netzwerkmanagement ist – seine relative Einfachheit. Die Implementierung der SNMP-Verwaltung in einem vernetzten Gerät ist weitaus unkomplizierter als bei den meisten anderen standardisierten oder nicht standardisierten Ansätzen zum Netzwerkmanagement.

Der SNMP-Manager oder die Verwaltungsanwendung verwendet eine genau definierte Namenssyntax, um dem SNMP-Agenten die Variablen 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 weitere 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 einer OID besteht aus einer Zahlenfolge, die durch Punkte voneinander getrennt ist.

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

ASN_COUNTER

32-Bit-Ganzzahl nicht negativ, die nur ansteigen kann

ASN_GAUGE

32-Bit-Ganzzahl

ASN_INTEGER

32-Bit-Ganzzahl (-2³² bis 2³²) 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, vorzeichenlos

ASN_TIMETICKS

vorzeichenlos

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

Differenzwerte der oben genannten Typen werden automatisch durch die Zeit seit der letzten Messung dividiert ((aktuellerWert – vorherigerWert) / (aktuelleZeitSekunden – vorherigeZeitSekunden)). Das bedeutet, dass wir für solche Differenzwerte 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

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

  • Konfigurierbare Maßeinheit

  • Automatische Differenzwerte

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

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

  • Alarmierung auf n Ebenen

  • Auswahl der MIB2-Schnittstelle nach Name

  • Zuordnung von OID-Namen zu OID-Nummern

  • Einstellbare Wiederholungsversuche und Zeitüberschreitungen

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

  • Zeichenketten (Verknüpfung einer Nummer mit Text)

  • Zahlen aus Text-OIDs extrahieren (nur erster Wert)

SNMP-Details

SNMP-Parameter

Der Eingabebereich „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)

Wiederholversuche

Anzahl der Wiederholungsversuche, falls die Anfrage fehlschlägt. Standardmäßig sind 2 Wiederholungsversuche vorgesehen.

Zeitlimit

Wählen Sie das Timeout für die Anfrage aus. Auf den meisten Geräten werden SNMP-Anfragen mit niedriger Priorität behandelt; wählen Sie daher ein ausreichend langes Timeout. Standardwert ist 2 s.

Version

Wählen Sie die vom Remote-SNMP-Daemon unterstützte SNMP-Version aus. Folgende Optionen stehen zur Verfügung:

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 Auswahl:
Keine Authentifizierung, keine Verschlüsselung
; Authentifizierung, keine Verschlüsselung
; Authentifizierung, Verschlüsselung

Benutzername

Für die Authentifizierung, nur sichtbar bei Verwendung von SNMP v3.

Authentifizierungs-Passphrase

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

Authentifizierungsprotokoll

Protokoll für die Authentifizierung, nur sichtbar bei Verwendung von SNMP mit Authentifizierung. Derzeit verfügbare Optionen sind MD5 oder SHA. Standard ist MD5.

Passphrase für den Datenschutz

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. Standard ist DES.

Community

Die meisten Netzwerkgeräte erlauben verschiedene Ebenen des SNMP-Zugriffs, zum Beispiel: READ ONLY oder READ/WRITE. Jede dieser Zugriffsebenen verfügt in der Regel über eine eigene Community-Zeichenkette. Zum Lesen von Daten muss lediglich die READ-Community bekannt sein, die in der Regel „public“ lautet.

Anfrage-OID

Geben Sie die MIB-OID (Management Information Base) für die Anfrage ein. Ist die OID unbekannt, kann sie auf dem Jobs-Gerät mit dem Online-Browser gesucht werden. Weitere OIDs können in 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, werden die Ausgaben aller OIDs nacheinander an dieselbe Ausgabedatei angehängt.

Überlauf

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

Übertragungszeit unterdrücken

Standardmäßig wird die für die Übertragung der SNMP-Daten benötigte Zeit in der Datenbank protokolliert. 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 Info-Meldung unterdrücken

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

Wenn das Kontrollkästchen „Info-Meldung 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

„Zeichenkette auf Wert abbilden“

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

Ein Zeichenfolgenwert kann direkt als Zeichenfolgenwert extrahiert werden oder durch Definition 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 umgewandelt wird. Leerzeichen sind in dieser Definition nicht zulässig.

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

Einheit definieren

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

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

Online suchen

Um eine bestimmte SNMP-OID auf dem entfernten 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 korrekte Community-Zeichenkette 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 einige Zeit in Anspruch nehmen, je nach Anzahl der Objekte unterhalb der ausgewählten Root-OID. Klicken Sie auf „Aktualisieren“, bis der Download-Status „Abgeschlossen“ anzeigt:

Der Download-Zähler zeigt die Anzahl der gefundenen OIDs an. Um diese anzuzeigen, wählen Sie „Baum anzeigen“ oder „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

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

Auflösung generischer SNMP-Namen

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

Um dies zu vermeiden, kann die SKOOR Engine eine benutzerdefinierte „Resolve OID“ für die Zuordnung von Namen zu Indizes verwenden. Dazu ersetzen wir den Index durch eine Zeichenkette, die mit der „Resolve OID“ abgeglichen wird, wobei das Muster zwischen zwei $-Zeichen steht. Vor der Ausführung der Abfrage ersetzt die SKOOR Engine den $string$ durch den gefundenen entsprechenden Index. Hier ist ein Beispiel für eine OID, von der man einen Wert auslesen 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 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

Falls die Auflösung des OID-Namens fehlschlägt (siehe Abschnitt oben), kann ein Standardindex definiert werden. Im obigen Beispiel würde man den Standardindex nach der Anforderungs-OID eingeben, 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 des obigen Abschnitts lautet:

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

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

Der Windows Explorer liefert folgende Informationen zum 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 Byte zu erhalten, und diesen anschließend dreimal durch 1024 dividieren, um den Wert in GB zu erhalten.

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

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

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

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

Um stattdessen den Prozentsatz der belegten Speicherkapazität zu erhalten, verwenden Sie diese Formel: „hrStorageUsed“ / „hrStorageSize“ × 100; der Divisor wäre somit 21.205,72.

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, dem der SNMP-Job zugeordnet 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 im Abschnitt „Ergebnisse“ unten weitere Ergebnisfelder:

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

Im Beispiel werden für jede der drei OIDs „OIDs auflösen“ verwendet. Weitere Informationen finden Sie im Abschnitt „Auflösung generischer SNMP-Namen“ weiter oben.

Die erste und zweite OID fordern 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 vielmehr die zeitliche Veränderung. Daher werden in den Ergebnisfeldern für diese beiden OIDs die Werte selbst sowie alle Zeichenfolgenwerte (die von dieser OID ohnehin nicht zurückgegeben werden) unterdrückt.

In der Einheiten-Definition für das Ergebnis der ersten OID sind die Einheiten „Wert“ und „Zeichenkette“ 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 Zeichenkette zurückgegeben wird (nicht als Zeichenkettenobjekt an sich, sondern die Ausgabe lautet z. B.: up(1)). Dies wird sichtbar, 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 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 Zeichenkette mehr ist, sodass man Zeichenkettenwerte unterdrücken und Werte vergleichen kann.

Die Einheiten-Definition für das dritte OID-Ergebnis wird wie folgt festgelegt:

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 „Ergebniseinheit der OIDs festgelegt wird.

Differenzwert 1–n

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

Zeichenfolgenwert1-n

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

Fehlercode

Generischer 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 automatisch anhand ihrer Beschreibung auszuwählen. Dies kann nützlich sein, wenn sich die Anzahl der Schnittstellen eines Routers ändern kann. In diesem Fall 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 abfragen, die über die Schnittstelle von VLAN 10 eingehend übertragen wurden. Dazu suchen wir zunächst unter .iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr nach der Schnittstellenbeschreibung:

   

und stellen 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$

Verwenden Sie als „Resolve OID“

   .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. Sollte sich die Nummer geändert haben, werden die Beschreibungen erneut durchsucht.