SNMP-Interpretation¶
Seit v1.9.448
Ein Block Interpretation im Konfigurationstab von snmp, snmp_oid und snmp_string — an einer Stelle, was vorher über mehrere Felder verstreut war.
Kurz: Ein SNMP-Check liefert einen Rohwert zurück — eine Zahl oder einen Text. Der Block Interpretation in der Check-Konfiguration entscheidet in einem Zug: Ist das ein Zustand (ein Code mit fester Bedeutung), ein Messwert (eine Zahl, die umgerechnet wird) oder ein Text? Und was bedeutet der konkrete Wert?
Wozu das gut ist¶
SNMP-Geräte antworten in ihrer eigenen Sprache: Eine 2 heißt bei einem Netzwerk-Interface „down", bei einer USV „läuft auf Batterie", bei einem Drucker „wärmt auf" — je nach MIB etwas völlig anderes. Ohne Deutung zeigt der Check nur die nackte Zahl, und ob sie gut oder schlecht ist, weiß nur, wer die MIB auswendig kennt.
Der Interpretations-Block macht daraus eine feste Zuordnung: Für jeden Rückgabewert legt er fest, welche Bezeichnung er trägt und welchen Status er auslöst. Betroffen sind drei Check-Typen, jeder mit den für ihn sinnvollen Wertarten:
| Check-Typ | Bezeichnung in der Oberfläche | Mögliche Wertarten |
|---|---|---|
snmp |
SNMP-Abfrage | Messwert |
snmp_oid |
SNMP-OID (generisch) | Zustand, Messwert |
snmp_string |
SNMP-Text | Zustand, Messwert, Text |
Bei snmp_oid und snmp_string steht oben im Block ein Umschalter für die Wertart; snmp liefert immer eine Zahl.
Schritt für Schritt: einen SNMP-Wert anpassen¶
Der Block sitzt am einzelnen Check, nicht am Profil — was du hier einstellst, gilt für dieses Gerät. (Für alle Geräte eines Typs gehört dieselbe Einstellung ins Geräteprofil; ein Profil-Check hat denselben Block.)
- Gerät öffnen → Reiter Checks → den SNMP-Check anklicken. Das Panel rechts öffnet sich.
- Auf Konfiguration wechseln (im Vollbild des Checks: der Reiter „Konfiguration").
- Der Block Interpretation steht dort unter den Grundfeldern (OID, Community). Ganz oben zeigt er den Rückgabewert — den rohen Wert aus dem letzten Ergebnis, mit dem Vermerk „letztes Ergebnis". Liegt noch keiner vor („noch kein Rohwert gespeichert") oder hängt am Check kein Gerät, erscheint stattdessen das Feld Beispielwert für die Vorschau.
- Wertart wählen — Zustand · Messwert · Text (bei
snmpentfällt die Wahl: dort ist es immer ein Messwert). - Je nach Wertart ausfüllen: die Zuordnung (Tabelle Wert / Bezeichnung / Status), die Umrechnung (Faktor, Versatz, Einheit, Darstellung) oder die Bewertung des Texts.
- Unten steht Ergebnis: was aus dem Rückgabewert wird — Meldung, Status, Messwert. Passt es, speichern.
Die Änderung wirkt ab dem nächsten Ergebnis des Checks; wer nicht warten will, stößt den Check an („Jetzt prüfen" beim Active-Checker, „Jetzt erheben" am Gerät).
Erst nachsehen, was das Gerät wirklich liefert
Wer die OID noch sucht: der Geräte-Scan am Host listet, was das Gerät herausgibt, und legt daraus fertige Checks an. Der Interpretations-Block ist der zweite Schritt — er gibt dem Wert seine Bedeutung.
Zustand: Wert → Bezeichnung → Status¶
Bei einem Zustandswert bildet der Block eine Tabelle Wert → Bezeichnung → Status. Ein gutes Beispiel ist der Betriebsstatus eines Netzwerk-Interfaces, ifOperStatus aus der IF-MIB, OID 1.3.6.1.2.1.2.2.1.8.<Portnummer>:
| Wert | Bezeichnung | Status |
|---|---|---|
| 1 | up | OK |
| 2 | down | CRITICAL |
| 3 | testing | WARNING |
Kommt vom Gerät eine 2, meldet der Check CRITICAL mit der Meldung down (2). Die Bezeichnung ist optional — ohne sie zeigt die Meldung nur den nackten Rohwert.
Unter der Tabelle steht eine eigene Zeile sonstige Werte: der Status für jeden Wert, der in der Tabelle nicht vorkommt. Was das bedeutet, steht weiter unten unter „Zustandswert ohne Zuordnung".
Technisch landet die Tabelle je nach Check-Typ in unterschiedlichen Feldern — bei snmp_oid in den Feldern OK-Werte / WARNING-Werte / CRITICAL-Werte, bei snmp_string in Status je Wert — der Block schreibt beim Bearbeiten automatisch die passenden. Für die Bedienung macht das keinen Unterschied.
Messwert: Faktor, Versatz, Einheit, Darstellung¶
Liefert die OID eine Zahl, gilt die Reihenfolge: Faktor (Skalierung), dann Versatz, dann die Einheit, zuletzt die Darstellung für die Meldung — Wert × Faktor + Versatz.
Typische Beispiele für Faktor und Versatz:
| Ziel | Faktor | Versatz |
|---|---|---|
| bit/s → Mbit/s | 0.000001 | — |
| Zehntelgrad → Grad | 0.1 | — |
| Kelvin → °C | 1 | −273.15 |
Nicht jeder Zahlwert nimmt eine Umrechnung an
Rechnet der Check schon selbst — Prozent (Wert ÷ Bezugs-OID × 100) oder Anzahl der Zeilen einer Tabelle —, wirken Faktor, Versatz und Darstellung nicht; der Block blendet sie aus und sagt warum. Bei der Verdichtung Summe bleibt zusätzlich der Versatz ohne Wirkung (er würde je Zeile mitaddiert). Bei max/min/Mittel über einen Walk gilt die Umrechnung auf die maßgebliche Zeile.
Die Darstellung formt den bereits skalierten Wert für die Meldung lesbar. Bei Bytes und SI-Vorsatz bleibt der Messwert selbst unverändert — nur bei Timeticks wechselt er auf Sekunden, weil Schwellwerte gegen eine rohe Hundertstelsekunde sonst keinen Sinn ergeben:
| Darstellung | Typisch für | Meldung | Messwert für Schwellwerte |
|---|---|---|---|
| Zeitdauer aus Timeticks (1/100 s) | sysUpTime |
2d 1h 58m |
wechselt auf Sekunden |
| Zeitdauer aus Sekunden | bereits Sekunden | 2d 1h 58m |
bleibt Sekunden |
| Bytes lesbar (KB / MB / GB) | Speicher, Traffic-Zähler | 12.3 GB |
bleibt Bytes |
| SI-Vorsatz vor der Einheit (k / M / G) | Bitraten | 1.0 Gbit/s |
bleibt in der Grundeinheit |
Beispiel: sysUpTime (OID 1.3.6.1.2.1.1.3.0) liefert Timeticks, also 17993930. Mit der Darstellung „Zeitdauer aus Timeticks" zeigt die Meldung 2d 1h 58m, und der Messwert für einen Schwellwert steht in Sekunden (179939.3) — ein Schwellwert „Warnung ab 300" bedeutet dann fünf Minuten Laufzeit, nicht 300 Timeticks.
Sonderfall Bitmaske¶
Manche OIDs liefern eine Bitmaske, in der jedes gesetzte Bit für eine eigene Meldung steht — typisch hrPrinterDetectedErrorState („wenig Toner" und „Papierstau" gleichzeitig). Solche Checks urteilen je gesetztem Bit über die Felder Bitmaske: Bit → Klartext / Schwere unter „Erweitert"; Zuordnung, Umrechnung und Text-Bewertung wirken dort nicht, und der Block sagt das an Ort und Stelle. Der Messwert ist die Zahl der gesetzten Bits.
Text: Bewertung des Texts¶
Nur bei snmp_string: ein erwarteter Text, wahlweise als exakte Übereinstimmung oder als Regex-Muster, plus die Umkehr-Option „CRITICAL, wenn er zutrifft" (Treffer = Fehler statt Treffer = OK). Ohne erwarteten Text ist der Check immer OK und zeigt nur den gelesenen Text an.
Beispiel: Erwarteter Text running, Treffer = OK. Meldet der Dienst stopped, wird der Check CRITICAL mit einem Hinweis auf den erwarteten Wert.
Vorschau vor dem Speichern¶
Am Fuß des Blocks steht Ergebnis: Meldung, Status und — falls vorhanden — Messwert samt Einheit. Gerechnet wird am Server, mit derselben Funktion, die auch Worker und Collector für die echte Auswertung verwenden — was hier steht, ist keine Annäherung, sondern das tatsächliche Ergebnis für den eingetragenen Rohwert.
Der Rückgabewert für die Vorschau kommt automatisch vom letzten Ergebnis des Checks, sofern schon eines vorliegt. Ohne Ergebnis oder ohne Gerät im Hintergrund gibt es stattdessen ein Feld Beispielwert für die Vorschau, um trotzdem zu sehen, wie ein Wert ausfallen würde.
Für das Interface-Beispiel von oben: Trägt man 2 als Rückgabewert ein, zeigt das Ergebnis sofort down (2) · CRITICAL.
OID-Katalog: Aus Katalog übernehmen¶
Bekannte OIDs muss man nicht von Hand eintragen. Kennt Vesana die OID, erscheint bei der Zustands-Zuordnung neben „Wert hinzufügen" der Knopf Aus Katalog übernehmen — ein Klick füllt die ganze Tabelle mit Bezeichnung und vorgeschlagenem Status.
Der Katalog speist sich aus zwei Quellen:
- Standard-MIBs, von Hand gepflegt (IF-MIB, HOST-RESOURCES-MIB, ENTITY-SENSOR-MIB, UPS-MIB, POWER-ETHERNET-MIB, BRIDGE-MIB).
- Kuratierte Geräteprofile des Community Hub — was ein Profil für eine OID an Bezeichnung und Status trägt, fließt automatisch in den Katalog ein.
Zusammen sind das aktuell 89 bekannte OID-Einträge (Stand v1.9.448) — die Zahl wächst mit jedem neuen oder aktualisierten Hub-Profil. Für ifOperStatus aus dem Beispiel oben liefert der Katalog übrigens alle sieben Standard-Zustände (up / down / testing / unknown / dormant / notPresent / lowerLayerDown), nicht nur die zwei aus der Kurzfassung weiter oben.
Die vorgeschlagenen Status sind ein Vorschlag nach Betriebssinn (up = OK, down = CRITICAL, testing = WARNING) — nichts hindert daran, sie nach dem Übernehmen anzupassen. Eine OID ohne Eintrag liefert nichts: Der Katalog rät nie, er kennt nur, was er kennt.
Zustandswert ohne Zuordnung ist nie still OK¶
Verhaltensänderung seit v1.9.448
Vorher blieb ein Zustandswert ohne Zuordnung schlicht OK — eine unbekannte Zahl wurde stillschweigend als unauffällig behandelt. Jetzt meldet er WARNING: Ein Wert, den niemand eingetragen hat, ist keine Zusicherung, dass alles in Ordnung ist — er ist ein blinder Fleck, den jemand ansehen sollte.
Kommt vom Gerät ein Wert, der in der Zuordnungs-Tabelle nicht vorkommt, gilt der Status aus der Zeile sonstige Werte — Vorgabe WARNING, einstellbar auf CRITICAL, UNKNOWN oder OK. Die Meldung lautet dabei Unbekannter Wert <wert> — Zuordnung fehlt.
Im Status-Reiter des Checks bietet ein Knopf Zuordnung ergänzen direkt an, den fehlenden Wert als neue Zeile im Interpretations-Block anzulegen — mit dem konkreten Rohwert schon vorausgefüllt. Ein Klick, kurz Bezeichnung und Status setzen, speichern.
OK für sonstige Werte macht den Check stumm
Stellt man „sonstige Werte" auf OK, kann der Check aus einem unbekannten Wert nie mehr WARNING oder CRITICAL machen. Der Block zeigt dafür direkt eine Warnung unter der Tabelle.
Interpretation und Schwellwerte¶
Beides urteilt über denselben Check, aber an verschiedenen Stellen — das ist die häufigste Verwechslung:
| Interpretation | Schwellwerte | |
|---|---|---|
| Wofür | einem Zustand oder Text eine Bedeutung geben; eine Zahl lesbar machen | eine Zahl gegen eine Grenze halten |
| Ergebnis | Status aus der Zuordnung, Meldung im Klartext | WARNING / CRITICAL ab dem Grenzwert |
| Wo | Block „Interpretation" in der Konfiguration | Schwellwert-Felder, direkt unter dem Gemessenen |
Zusammenspiel in einem Satz: die Umrechnung entscheidet, gegen WELCHE Zahl der Schwellwert misst.
- Faktor und Versatz gelten für den Messwert. Rechnest du Zehntelgrad auf Grad (Faktor 0.1), gilt ein Schwellwert „Warnung ab 60" danach in Grad — nicht in Zehntelgrad.
- Die Darstellung ändert die Zahl NICHT — außer bei Timeticks: dort wird der Messwert auf Sekunden umgestellt (Schwellwerte gegen Hundertstelsekunden wären sinnlos). Bytes bleiben Bytes, ein SI-Vorsatz ist reine Anzeige.
- Ein Zustandswert braucht keine Schwellwerte — und bekommt auch keine: Bei einem SNMP-Zustands-Check sind die Schwellwert-Felder gesperrt, mit dem Grund im Status-Reiter und im Editor („der Status kommt aus der Zuordnung; der Messwert ist nur der Code des Zustands"). Sonst hätte eine
2für „down" als Zahl gegen einen Grenzwert gezählt. - Ist der Wert ein Text ohne Zahl, gibt es weder Messwert noch Schwellwert — nur die Bewertung des Texts.
Wo gerechnet wird — und ab wann eine Änderung wirkt¶
Die Interpretation steckt in der Check-Konfiguration, nicht im Collector-Programm. Deshalb gibt es zwei Orte, an denen sie greifen kann:
- Am Collector, wenn er die Rechenregel schon kennt (aktuelle Version) — das Ergebnis kommt fertig interpretiert an.
- Am Server beim Empfang, wenn der Collector nur den Rohwert schickt. Das Ergebnis ist dasselbe: Beide Seiten rechnen mit derselben Regel.
Für dich heißt das: Eine geänderte Zuordnung wirkt ab dem nächsten Ergebnis, auch wenn ein Collector noch nicht aktualisiert ist. Was sie nicht rückwirkend tut: bereits gespeicherte Ergebnisse im Verlauf bleiben, wie sie gemessen wurden.
Hub-Geräteprofile bringen die Zuordnung fertig mit¶
Geräteprofile aus dem Community Hub tragen die Interpretation meist schon vollständig: jeder Zustandswert seine Bedeutung, jede Zahl ihre Einheit und Darstellung. Ein Klick auf Profil aktualisieren übernimmt eine neue Profil-Version einschließlich überarbeiteter Zuordnung, ohne dass man an den einzelnen Checks nachbessern müsste.
Häufige Fragen und Fehlerbilder¶
Der Check zeigt nur eine nackte Zahl, z. B. 2.
Es ist keine Zuordnung hinterlegt. Wertart auf Zustand stellen und die Tabelle füllen — oder, wenn Vesana die OID kennt, Aus Katalog übernehmen.
Der Check steht auf WARNING mit „Unbekannter Wert 5 — Zuordnung fehlt". Das Gerät hat einen Zustand gemeldet, der in deiner Tabelle nicht vorkommt. Im Status-Reiter des Checks steht dafür Zuordnung ergänzen — der Knopf legt die Zeile mit dem konkreten Wert an. Danach Bezeichnung und Status setzen, speichern, fertig.
Der Check war früher OK und ist seit dem Update WARNING. Genau dieser Fall: Vorher galt ein unbekannter Zustandswert stillschweigend als OK. Sieh nach, welchen Wert das Gerät liefert — entweder gehört er in die Zuordnung, oder die Zeile sonstige Werte ist bewusst auf OK zu stellen.
Die Laufzeit steht als riesige Zahl in der Meldung (17993930).
Das sind Timeticks. Darstellung auf Zeitdauer aus Timeticks setzen; die Meldung zeigt dann 2d 1h 58m, und der Messwert steht in Sekunden.
Der Schwellwert greift nicht, obwohl die Zahl darüber liegt. Prüfe, gegen welche Zahl er misst: Faktor und Versatz wirken vor dem Schwellwert, die Darstellung (außer Timeticks) ändert den Messwert nicht. Was der Check wirklich als Messwert führt, steht im Ergebnis der Vorschau.
Der Check kann nie rot werden. Steht „sonstige Werte" auf OK und deckt die Zuordnung nur unkritische Werte ab, gibt es keinen Weg zu WARNING oder CRITICAL. Der Block warnt an dieser Stelle selbst.
Ich habe gespeichert, es ändert sich nichts. Die Interpretation wirkt ab dem nächsten Ergebnis — bei einem Check mit langem Intervall kann das dauern. „Jetzt prüfen" (Active-Checker) bzw. „Jetzt erheben" am Gerät holt es sofort.
Der Wert kommt als Text, obwohl es eine Zahl ist.
snmp_string liest den Wert als Text; enthält er eine Zahl, wird sie zusätzlich als Messwert geführt, sobald Einheit oder Darstellung gesetzt sind. Für reine Zahlen ist snmp_oid (oder snmp) der passendere Typ.
Wo trage ich das für ALLE Geräte ein? Im Geräteprofil: derselbe Block am Profil-Check. Geräte erben ihn; was du am einzelnen Gerät änderst, gilt nur dort und bleibt bei einem Profil-Update erhalten.
Anschluss¶
- Check-Typen-Referenz — alle Felder von
snmp,snmp_oidundsnmp_string - SNMP-Sensor-Picker — OIDs am Gerät finden, bevor man sie interpretiert
- MIB-Snippets — Vendor-OIDs, die der Katalog noch nicht kennt
- Community Hub — Geräteprofile mit fertiger Interpretation importieren