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