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 |
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: |
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 | 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.



















