SNMP
Funktion | Fragen Sie ein Gerät (normalerweise eine Art Netzwerkgerät) nach SNMP-Daten ab, indem Sie eine OID anfordern. Ermöglicht das Durchsuchen nach OIDs. |
---|---|
Alarmierend | Übertragungszeit, benutzerdefinierte Werte, Diff-Werte und String-Werte |
Das Simple Network Management Protocol (SNMP) ist bei weitem das dominierende Protokoll im Netzwerkmanagement. Ein Hauptgrund für seine weitverbreitete Akzeptanz ist neben der Tatsache, dass es sich um den wichtigsten Internetstandard für die Netzwerkverwaltung handelt, seine relative Einfachheit. Die Implementierung der SNMP-Verwaltung in einem vernetzten Gerät ist weitaus einfacher als die meisten anderen standardmäßigen oder nicht standardmäßigen Ansätze zur Netzwerkverwaltung.
Der SNMP-Manager oder die Verwaltungsanwendung verwendet eine klar definierte Benennungssyntax, um die Variablen für den SNMP- Agent anzugeben. Objektnamen werden in dieser Syntax als Objektidentifikatoren (Objekt-IDs oder OIDs) bezeichnet.
OIDs sind Zahlenreihen, die ein Objekt gegenüber einem SNMP- Agent eindeutig identifizieren. OIDs sind in einer hierarchischen, umgekehrten Baumstruktur angeordnet. Der OID-Baum beginnt mit der Wurzel und erweitert sich in 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 von 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 (-2 32 bis 2 32 ) RFC 1442 |
ASN_INTEGER64 | 64-Bit-Ganzzahl (-2 64 bis 2 64 ) RFC 1442 |
ASN_OPAQUE | schwebend und doppelt unterstützt |
ASN_UNSIGNED64 | 64 Bit ohne Vorzeichen |
ASN_COUNTER64 | 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 den letzten Messungen 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 Zeichenfolgen und können beliebige druckbare Zeichen enthalten.
SNMP-Funktionen
Online-MIB-Browser zur OID-Auswahl
Unendlich viele MIB-Dateien, Speicherort: /usr/share/snmp/mibs auf jedem SKOOR Engine Kollektor
Konfigurierbare Maßeinheit
Automatische Differenzwerte
PDU-Unterstützung für Version 1, 2c und v3
Unterstützung der v3-Verschlüsselung
n Schicht alarmierend
Auswahl der MIB2-Schnittstelle nach Namen
Verweisen Sie OID-Namen auf OID-Nummern
Einstellbare Wiederholungsversuche und Zeitüberschreitungen
Unterdrückbare Werte (reduziert die DB-Größe)
Zeichenfolgen (eine Zahl auf einen Text verweisen)
Zahlen aus Text-OID analysieren (nur erster Wert)
SNMP-Details
SNMP-Parameter
Der Abschnitt „Authentifizierungseingabe“ wird nur angezeigt, wenn SNMP Version 3 ausgewählt ist.
Parameter | Beschreibung |
---|---|
Udp-hafen | Wählen Sie den UDP-Port (Standard ist 161) |
Wiederholungen | Anzahl der Wiederholungsversuche, wenn die Anfrage fehlschlägt. Der Standardwert ist 2 Wiederholungen. |
Auszeit | Wählen Sie den Timeout für die Anfrage aus. Auf den meisten Geräten werden SNMP-Anfragen mit niedriger Priorität bearbeitet. Verwenden Sie daher ein ausreichend hohes Timeout. Der Standardwert ist 2s. |
Ausführung | Wählen Sie die SNMP-Version aus, die vom Remote-SNMP-Daemon bereitgestellt wird. Folgende Auswahlmöglichkeiten stehen zur Verfügung: Version 1 |
Sicherheitsstufe | Die Sicherheitsstufe definiert, wie die SNMP-Anfrage gesendet wird. Diese Auswahl ist nur verfügbar, wenn SNMP v3 verwendet wird. Folgende Optionen stehen zur Verfügung: |
Nutzername | Zur Authentifizierung, nur sichtbar, wenn SNMP v3 verwendet wird. |
Authentisch. Passphrase | Passphrase für die Authentifizierung, nur sichtbar, wenn SNMP mit Authentifizierung verwendet wird. |
Authentisch. Protokoll | Protokoll zur Authentifizierung, nur sichtbar, wenn SNMP mit Authentifizierung verwendet wird. Derzeit verfügbare Optionen sind MD5 oder SHA. Der Standardwert ist MD5. |
Datenschutz-Passphrase | Für Verschlüsselung, nur sichtbar, wenn SNMP mit Authentifizierung und Verschlüsselung verwendet wird. |
Datenschutzprotokoll | Für Verschlüsselung, nur sichtbar, wenn SNMP mit Authentifizierung und Verschlüsselung verwendet wird. Derzeit verfügbare Optionen sind DES und AES. Der Standardwert ist DES. |
Gemeinschaft | Die meisten Netzwerkgeräte erlauben unterschiedliche Ebenen des SNMP-Zugriffs, zum Beispiel: NUR LESEN oder LESEN/SCHREIBEN. Jede dieser Zugriffsebenen verfügt normalerweise über eine andere Community-Zeichenfolge. Zum Lesen von Daten muss lediglich die READ-Community bekannt sein, die in der Regel öffentlich ist. |
OID anfordern | Geben 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 Auftragsgerä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 in dieselbe Ausgabedatei angehängt. |
Überlauf | Lassen Sie diese Einstellung auf Auto . Es ü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 Informationen irrelevant sind, aktivieren Sie dieses Kontrollkästchen, um Datenbankspeicherplatz 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 „Wert“ oder „Differenzwert“ 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 |
Ordnen Sie die Zeichenfolge einem Wert zu | Definieren Sie eine Zuordnung von SNMP-String-Objekten zu numerischen Werten. Ein String-Wert kann als String-Wert direkt oder durch Definieren einer String-Map im Format 1=foo,2=bar,0=* extrahiert werden, was bedeutet, dass der String foo in den numerischen Wert 1 konvertiert wird, der String bar in der numerische Wert 2 und (optional) alles andere auf den Wert 0. Leerzeichen sind in dieser Definition nicht erlaubt. Wenn keine Zeichenfolgenzuordnung definiert ist oder die Zuweisung fehlschlägt (kein Operator definiert), wird die Zeichenfolge auf das erste Vorkommen numerischer Zeichen analysiert und das Ergebnis wird wie angefordert an den Server übertragen (Wert und/oder Diff-Wert). |
Einheit definieren | Siehe Abschnitt SNMP-Einheit/Divisor unten. |
Die Dropdown-Liste „Tags“ ermöglicht die Eingabe vordefinierter Variablen in die Felder oben, z. B. $NAME$ für den Namen des Jobs.
Stöbern Sie online
Um eine bestimmte SNMP-OID auf dem Remote-SNMP- Agent zu finden und diese als SNMP-Anfrage zu verwenden, klicken Sie auf die Schaltfläche „Online durchsuchen“ . Es hilft, wenn man die ungefähre Position im Baum kennt, um die Suchzeit, den Netzwerkverkehr und die Ausgabegröße zu begrenzen. Geben Sie den richtigen Community-String für den SNMP- Agent ein und wählen Sie im Abschnitt Verbindung die SNMP-Version 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 Standort des benötigten Objekts völlig unbekannt ist:
Starten Sie den Vorgang mit der Schaltfläche „Scan starten“ :
Abhängig von der Anzahl der Objekte unterhalb der ausgewählten Root- OID kann es einige Zeit dauern, bis der Scan abgeschlossen ist. Klicken Sie auf „Aktualisieren“ , bis der Download-Status „Abgeschlossen“ anzeigt:
Der Download-Zähler zeigt die Anzahl der gefundenen OIDs an. Um sie anzuzeigen, wählen Sie Baum anzeigen oder Ebene 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 des Formulars anzeigt
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, durchsuchen Sie die Website des Geräteherstellers oder durchsuchen Sie die MIB-Depot- Homepage nach öffentlich verfügbaren MIBs.
Auflösung generischer SNMP-Namen
Einige SNMP-Server ordnen dieselbe OID nicht immer demselben Wert zu. Das Lesen der Festplattennutzung von einer Host-MIB funktioniert möglicherweise, bis diesem System eine neue Festplatte hinzugefügt wird. Es ist möglich, dass sich der Index (im Beispiel unten .2) ändert.
Um dies zu vermeiden, kann SKOOR Engine eine benutzerdefinierte Resolve OID für die Namens-Index-Zuordnung verwenden. Um dies zu erreichen, ersetzen wir den Index durch eine Zeichenfolge, die mit der Resolve-OID mit dem Muster zwischen zwei $-Zeichen übereinstimmt. Vor der Durchführung der Abfrage 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 Anforderungs-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:\ Bezeichnung: Seriennummer dc133042
Ersetzen Sie nun die Zahl 2 durch den obigen Wert, umgeben von zwei $-Zeichen:
iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$C:\ Label: Seriennummer dc133042$
Sobald die zweite $-Zeichenfolge eingegeben wird, erscheint eine neue Zeile namens „Resolve OID“ unter der Zeile „Request OID1“ . Geben Sie hier die obige 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
Wenn die OID-Namensauflösung fehlschlägt (siehe Abschnitt oben), besteht die Möglichkeit, einen Standardindex zu definieren. Im obigen Beispiel würde man den Standardindex nach der Anforderungs-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/Teiler
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 Angaben des Explorers übereinstimmt)
Um den SKOOR Engine Divisor festzulegen, kombinieren Sie 1024 x 1024 x 1024 / 4096 = 262144
Klicken Sie auf die Schaltfläche „Einheit“ , um den Namen des Werts, seine Einheit und seinen Teiler zu definieren:
Das Ergebnis im Wertebereich nach der Ausführung des SNMP-Jobs beträgt 7,01 GB .
Um stattdessen %used zu erhalten, verwenden Sie diese Formel: hrStorageUsed / hrStorageSize x 100, sodass der Divisor 21205,72 wäre.
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 aktiviert, indem Sie auf die Plus-Schaltfläche neben der Schaltfläche „Online durchsuchen“ klicken. Sobald zusätzliche OIDs hinzugefügt werden, werden im Abschnitt „Ergebnisse“ unten zusätzliche Ergebnisfelder angezeigt:
Jede OID verfügt über einen separat konfigurierbaren Ausgabeabschnitt und eine eigene Zuordnungszeichenfolge zur Wertdefinition und eine eigene Einheitenschaltfläche . Die Übertragungszeit kann global unterdrückt werden.
Das Beispiel verwendet Resolve-OIDs für jede der drei OIDs. Weitere Informationen finden Sie oben im Abschnitt „Generische SNMP-Namensauflösung“ .
Die ersten und zweiten OIDs 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, was interessant ist, ist die Änderung mit der Zeit, daher unterdrücken die Ergebnisfelder für diese beiden OIDs die Werte selbst und alle Zeichenfolgenwerte (die von dieser OID ohnehin nicht zurückgegeben werden).
In der Einheitendefinition für das erste OID-Ergebnis sind die Wert- und Zeichenfolgewerteinheiten entsprechend ausgegraut:
Zur Umrechnung der Ausgabe in kBit/s wird ein Divisor angegeben.
Byte/s → kBit/s
kbit = Byte / 1000 * 8
kbit = Byte / (1000 / 8)
kbit = Byte / 125
Die dritte OID fordert den ifOperStatus der Netzwerkschnittstelle an, der vom SNMP- Agent als String zurückgegeben wird (nicht als String-Objekt an sich, aber die Ausgabe lautet z. B.: up(1) ). Dies wird sichtbar, wenn Sie die Schaltfläche „Online durchsuchen“ mit der Schaltfläche verwenden . iso.org .dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifOperStatus OID als Root :
Da numerische Werte von der SKOOR Engine schneller verarbeitet werden, ist es normalerweise besser, die bekannte Zeichenfolge mithilfe des Felds „Zeichenfolge in Wert zuordnen“ in einen numerischen Wert umzuwandeln:
Dies bedeutet, dass das an den Server gesendete Ergebnis ein Wert und keine Zeichenfolge mehr ist, sodass Zeichenfolgenwerte und Differenzwerte unterdrückt werden können.
Die Einheitendefinition für das dritte OID-Ergebnis wird wie folgt angegeben:
Die Ergebnisse werden dann im Bereich 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 Alarmgrenzen
Wert/ Alarm Limit | Beschreibung |
---|---|
Wert1-n | Benutzerdefinierter numerischer Wert, der über die Schaltfläche „OIDs- Ergebniseinheit“ definiert wird. |
Differenzwert1-n | Benutzerdefinierter numerischer Diff-Wert, der über die Schaltfläche „OIDs- Ergebniseinheit“ definiert wird. |
String-Wert1-n | Benutzerdefinierter Zeichenfolgenwert, der durch die Schaltfläche „OIDs- Ergebniseinheit“ definiert wird. |
Fehlercode | Allgemeiner 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 anhand ihrer Beschreibung automatisch auszuwählen. Dies kann nützlich sein, wenn sich die Schnittstellenanzahl 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.
für die Anzahl der Oktette, die über die VLAN 10- Schnittstelle nach innen gelangt sind. Dazu suchen wir unten zunächst die Schnittstellenbeschreibung . iso.org .dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifDescr :
und stellen Sie 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$
Als Resolve OID verwenden Sie
.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. Wenn sich die Nummer geändert hat, werden die Beschreibungen erneut gescannt.