SNMP: Datenerhebung

Für die Erstellung einer KPI für Überwachungskameras von MOBOTIX mussten Daten beschafft werden.

Interessante Daten für Überwachung sind neben den elementaren Hardwaredaten wie Seriennummer, Hostname, VPN User und Temperatur, die Daten über Anzahl und Zeitpunkt von Alarmen. SNMP, die etablierte Allzweckwaffe, bietet sich an. Vom Schreibtisch aus läßt sich die Konfiguration auch einer im Betrieb befindlichen MOBOTIX Kamera um die nötigen Einträge für den SNMP Dienst einstellen.

curl -q -m 10 -u ‚user:passwort‘ –data-binary @befehl.txt „http://meineKamera/admin/remoteconfig“

Die Befehlszeile übergibt die Befehlssequenz aus der Textdatei befehl.txt an die Kamera:

helo
write params
snmp/SNMPD=1
snmp/V2C_RO_COM=“community“
update section snmp
store
reboot
quit

Mit der Befehlsfolge konfigurieren wir SNMP Version 2c mit dem Read-Only Community Namen „community“. Nach dem Neustart steht der Dienst zu Verfügung. Wie findet man nun die passende OID mit der ich die gefragten Werte auslesen kann? Nun – fragt man den Hersteller, ist man verloren. MOBOTIX verweist an den Händler, als sei die Antwort abhängig vom Umsatz. Auf erneute Nachfrage bekomme ich einen Link, der wenig befriedigend ist. Werte, die abgefragt werden können, belaufen sich je nach Firmwarestand auf cirka 1200 an der Zahl! Welche Werte tatsächlich mit welcher OID abgerufen werden kann, erfährt man mit der Abfrage

snmpwalk -v 2c -c community -m +MOBOTIX-MIB meineKamera .iso

Am Ende .(Punkt) iso. Der Punkt bedeutet, am Rootpunkt der hierarchisch aufgebauten OID Liste zu beginnen. Entgegen der OID Liste aus dem Link der Firma MOBOTIX wird beispielweise der Wert cameraModel nicht mit der OID cameraModel abgerufen. Gezielt lässt sich der Wert ohne Beschreibung, also in leicht weiter verwertbarer Form, mit dem Befehl ermitteln:

snmpget -v 2c -c community -Ovq -m +MOBOTIX-MIB meineKAMERA cameraModel.0

Dabei ist das Einbinden der OID Beschreibung MOBOTIX-MIB wichtig. Andernfalls muss über die ISO OID abgefragt werden. In dem Fall wäre das iso.3.6.1.2.1.1.5.0

In den über 1200 möglichen Abfragen befinden sich trotzdem nicht alle Daten. Daten wie, zum Beispiel, der VPN Benutzername oder die Anzahl der registrierten Alarmmeldungen sind unerreichbar. Mir zeigt das eine gewisse unorganisiertheit der Entwickler. Beim Abruf des letzten Alarmbildes lässt sich per URL Parameter ?output=m1img der Zeitpunkt des letzten Alarms und die Anzahl der Alarmmeldungen in Textform abfragen. Abenteuerlich, nicht wahr?!

curl -q -m 10 -u ‚user:pw‘ „http://IP/control/event.jpg?output=m1img“

Nicht empfehlenswert, da das Verhalten der Kamera je nach Firmwarestand sehr unterschiedlich und damit nicht berechenbar sind. Die Anzahl stelle ich über eine Datenbank fest, die einzelne Werte periodisch speichert und zählt. Fehlt noch der VPN User! Nach meiner Kenntnis muss er aus der Konfiguration ausgelesen werden. Der Befehl für die Konfiguration der Kamera, kann auch zum Auslesen der Selben genutzt werden (siehe erster Absatz). Die Befehlssequenz sieht dann so aus:

helo
view section ethernet vpn imageimprover
exit

Entscheident ist „view section vpn“. Hier werden die Konfigurationsdaten wie User, Passwort usw. ausgegeben. Die section imageprovider nutze ich um die konfigurierten Bildeinblendungen auszulesen. Einfach mal ausprobieren!