SNMP


 

Der SNMP Treiber ermöglicht es Daten mit SNMP fähigen Geräten auszutauschen. Es werden die SNMP Versionen v1 und v2 unterstützt, der Versand und Empfang von Traps ist möglich.

Der Name des SNMP-Treibers lautet: snmp
Die Routing-Adresse des ersten SNMP-Treibers ist die: 910
Die Datenpunktdatei für den ersten SNMP-Treiber heißt: snmp1.txt
Die Konfigurationsdatei für globale Einstellungen des ersten SNMP-Treibers heißt: snmp1.cfg

Bei dem SNMP-Treiber sowie allen weiteren Gateway-Treibern gilt für die Definiton von Datenpunkten in der Datenpunktdatei:

TypBedeutung
MGanzzahliger Wert (Binäre Datenpunkte,Zählwerte) der vom Gateway nur gelesen werden kann/soll.
SGanzzahliger Wert der vom Gateway gelesen sowie geschrieben werden kann/soll.
XAnalogwert (mit Nachkommastellen) der vom Gateway nur gelesen werden kann/soll.
YAnalogwert (mit Nachkommastellen) der vom Gateway gelesen sowie geschrieben werden kann/soll.
AString, findet z.B. Verwendung bei BACnet Trends, ESPA4.4.4 Datenpunkten sowie SNMP Datenpunkte mit dem Format „STRING“

Die Adressen sind wie folgt aufgebaut:

<type> <agent> [<OID>]

Ausdruck:WertebereichBedeutung
<type>value
event
failure
value: Wert, event: Trap, failure: Kommunikationsfehler mit Agent
<agent>0-999Laufende Nummer des SNMP Agents (wird in der snmp1.cfg konfiguriert)
<OID>

ist absolut wenn sie mit einem Punkt beginnt. Der Treiber wandelt relative OIDs in absolute indem er sie vorne um den Prefix „ObjectRoot“ aus der snmp1.cfg ergänzt. |

Um dem Treiber mitzuteilen wie er die unter einer OID abgelegten Informationen auswerten kann muss für jeden Datenpunkt das Format übergeben werden. Dies erfolgt anhand der Formatdefinition:

format = <format> [P:<rate>] [L:<loc>] [T:<ver>] [E:<oid>] [V:<oid>]

Die Parameter E: und V: sind dabei nur für Events (Taps) relevant, und ermöglichen die explizite Angabe der Trap-OID sowie der im Trap übergebenen Variablen-OID

Der Paramter L:1 ist bei Datenpunkten relevant, die lokal vom Gatewy bereit gestellt werden und per GET oder GETNEXT abgefragt werden.

Dabei können die Parameter folgende Werte annehmen:

Parameter:WertebereichBeschreibung
<format>INTEGER
COUNTER
GAUGE
TIMETICKS
UNSIGNED
STRING
Variablentyp
<rate>0-65535Legt fest in welchem Zeitintervall der Datenpunkt gepollt wird (polling cycles)
<loc>0: von Fremdgerät empfangen (default)
1: lokal generiert
Legt die Quelle eines Datenpunktes fest
<oid>OIDzur Festlegung der OID für Event/Variable bei einem Trap
<ver>0: SNMP v1 Trap
1: SNMP v2c notification
Teilt dem Treiber mit welcher PDU-Typ für das senden eines 'event' Datenpunktes verwendet wird. Ist nur relevant für lokal erzeugte 'event' Datenpunkte. Per default ist der Wert NULL.

Typische Datenpunktdefinitionen können demnach sein:

[M failure 1]
name = Kommunikationsfehler mit Agent 1
query = pe

[M value 1 11.3.3.1.2.1]
name = Netz Frequenz L1 von Agent 1 relativ (OID = ObjectRoot aus snmp1.cfg + <OID> = .1.3.6.1.4.1.818.1.1.11.3.3.1.2.1)
query = pe
format = INTEGER

Um die ObjectRoot zu ignorieren wird der Pfad komplett mit führendem Punkt angegeben. Um den o.g. Datenpunkt „Netz Frequenz L1 von Agent 1“ absolut anzugeben sieht die Definition wie folgt aus.

[M value 1 .1.3.6.1.4.1.818.1.1.11.3.3.1.2.1]
name = Netz Frequenz L1 von Agent 1 absolut
query = pe
format = INTEGER

Um einen Trap zu empfangen sieht die Definiton z.B. wie folgt aus. Ggf. muss auf dem Gateway dafür gesorgt werden, dass der Trap zurückgesetzt wird, falls dies nicht vom sendenden Gerät erfolgt.

[S event 3 .1.3.6.1.4.1.3711.15.1.1]
name = Trap von Agent 3
query = pe
writecache = yes
format = INTEGER T:0

Hinweise

Wenn SNMP-Abfragen abgesetzt werden, kann es unter Umständen sein, dass ein SNMP_GET nicht beantwortet wird. Standardmäßig erfolgen Abfragen vom Gateway mit einem gesetzten Objekt im SNMP_GET. Wenn dies der Fall sein sollte, hilft es, in der snmp1.cfg im zugehörigen Agent die Option „ReadNullObject=1“ zu setzen.

Agent-Definitionen

Die abzufragenden agents werden in der snmp1.cfg definiert. Bei entfernten Agents ist darauf zu achten, dass der Eintrag „LocalPort“ für jeden Agent eindeutig sein muss, oder alternativ auf „0“ gesetzt wird, damit eine automatische Vergabe des lokalen Ports erfolgt.