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!

fb & Co: Zeitverschwendung

Was macht Sinn in der Eigenvermarktung?

Bringt Facebook irgendwas? Viele Freiberufler versuchen sich selbst und ihre Arbeit werbewirksam darzustellen um so neue Aufträge generieren. Auch der Kontakt zu Kollegen scheint den Aufwand zu rechtfertigen.

Ob das so ist, ob Social-Media für mich speziell funktioniert, kann wirklich erst nach Jahren beurteilt werden.

Für mich persönlich, ist Facebook ohne jeden Wert.

Projekt trotz Corona erfolgreich absolviert

Mai bis Juli 2020 wieder erfolgreich ein RollOut für die absolviert.

Es war eine Herausforderung unter Beachtung der Corona Pandemie bedingten Auflagen in den vielen Ämtern zu arbeiten. Zumal die Empfehlungen von Land zu Land unterschiedlich waren.

Von einer Krise durch den Virus kann in der IT-Branche keine Rede sein. Nahtlos geht es weiter und die nächsten Projekte stehen im Fokus.

Ich bin für Sie, wie immer, erreichbar: 02202 989 12 17

Der FiButroniker

In der Digitalisierung besteht enormer Nachholbedarf bei Klein- und Handwerksbetrieben. Das treibt seltsame Blüten.

Die Erkenntnis war erfrischend: Wir IT Profis im Rechnungswesen leben vermutlich in einer rosa roten Blase. Ist es für uns doch seit mehr als 20 Jahren normal, Standard-Software für die tägliche Arbeit einzusetzen. Gewundert wurde sich, dass die Zusammenarbeit mit Steuerberatern traditionel schwierig ist – dort wurde das Potential der EDV lange nicht erkannt. Nicht erkannt, weil der digitale Horizont regelmäßig am harten Kartonrand eines ranzigen Leitz-Ordners endete. Mir ist jetzt klar, warum das so ist.

„Der FiButroniker“ weiterlesen

Neue Landingpage

Die Aussendarstellung und die Wirksamkeit von Onlinewerbung muss ständig geprüft werden. In dem Zusammenhang endet die Seite HALSYSTEM.de. Sie befasste sich mit der Entwicklung von High-End Systemen und brachte keinen Nutzen. Das Thema wird hier integriert.

Neu hinzu kommt die Page http://edv-schilling.de die lediglich werbende Funktion hat. Das Ergebnis der neuen Messungen diskutieren wir.

Buchhaltung in Quarantäne

Wir beschäftigen und jetzt vermehrt um die sichere Dezentralisierung der Arbeitsprozesse in Büro und Buchhaltung. Geheimhaltung, Daten- und Systemsicherheit müssen durch intelligente Lösungen auch bei Heimarbeit beachtet werden. Hier haben wir jahrelange Erfahrung die dieses Vorhaben – auch temporär – ohne großen Aufwand für sie realisieren lässt.

Im Fall eines Personalausfalls in ihrem Betrieb stehen mehrere Buchalter aus unserem Team zur Verfügung.

Wir sind für sie da: 02202 9891217

Arbeitsprozesse nach GoBD

Anpassung der Arbeitsprozesse im Büroalltag – Buchhaltung, Archiv und Backup

Wir greifen gerne Themen auf und bieten Service da an, wo er bei gewöhnlichen EDV Dienstleistern endet. Guter Computer Service für Unternehmen sollte die Einhaltung der GoBD und der DSGVO beinhalten.

Einen PC aufstellen und Software installieren kann jeder. Aber kennen Sie auch die Arbeitsprozesse in der Faktura, Buchhaltung und Belegarchiven?

Schon im März 2020 stehen nur noch wenige Termine zur Verfügung. Dank unseres hochwertigen Netzwerks von EDV-Spezialisten konnten wir noch einige Mitarbeiter gewinnen. Damit verfügen wir über genug Resourcen um uns auch um Ihre EDV Wünsche zu kümmern.

BSI: Standards für gute Systeme

Leitfaden für die absolute Grundsicherung von IT Systemen

Gute Systemadministration lehnt sich in Fragen zur Sicherheit an das BSI an (Link). Nicht nur in meiner persönlichen Arbeit, ist die Sicherheit von EDV Systemen wichtig – der BSI Leitfaden wird auch permanent mit den Kollegen von HALSYSTEM und dem Spezialistenteam der GfUD diskutiert.

Mehr noch: Der BSI Standard stellt für uns das Minimum an Sicherheitsmaßnahmen dar. Auch im Rahmen der bis zum Dezember 2019 laufenden Werbeaktion, lehnen wir uns bei Sicherheitsanalysen an den Standard an.

Die Werbeaktion beinhaltet die Analyse dieser Grundschutzempfehlungen an Ihrem laufenden System. Auch bei Fragen zum BSI Standard, die Ihnen beim durchstöbern der BSI Dokumenten aufkommen, sind wir für Sie da! Kostenlos und Unabhängig.

Einfach Termin vereinbaren: 02202/9891217

Trojaner: Erpressungstrojaner Ordinypt im Anhang

Für ein gut administriertes System ist auch der neue Erpressungsstrojaner kein grosses Problem. Laut Heise (Link) sind die Daten, inklusive der Schattenkopie unabhängig von der Lösegeldzahlung, verloren.

Geeignete Maßnahmen sind das Absichern des Mailservers und der Mailkonten durch klevere Konfiguration. Ausserdem ein umfassendes Backup und eine funktionierende und geprüfte Wiederherstellung.

Bis Dezember 2019 bieten wir eine kostenlose Überprüfung Ihres Systems an und stellen gemeinsam fest, ob Wiederherstellung möglich ist.

Jetzt Termin vereinbaren: 02202 9891217

KPI: pixi* API und Freeboard

pixi* API liefert SOAP Array’s. Freebord benötigt Daten im JSON Format.

Durch die Descartes pixi* API erhalten wir SOAP Array’s zur Weiterverarbeitung. Zur alternativen Darstellung von Kennzahlen – Descartes hat ein eigenes KPI Dashboard – habe ich mich für Freeboard entschieden. In einem Workshop habe ich die Vorzüge erläutert (Link).

Die Array’s aus der API speichere ich zwischen und extrahiere aus den mehrstufigen Array’s die Daten, die ich darstellen möchte. Interessant ist, das der Aufbau der Antworten stark unterschiedlich ist und deshalb kein einheitliches Vorgehen anzuraten ist.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
 
require __DIR__.'/vendor/autoload.php';
use Pixi\API\Soap\Options;
use Pixi\API\Soap\Client;
$username = 'user'; // Your pixi database
$password = 'passwort'; // Your API password
$endpoint = 'https://soap.pixi.eu/soap/test/'; // Enpoint of your API
$options = new Options($username, $password, $endpoint);
$client = new Client(null, $options->getOptions());
$client->setTransportObject('\Pixi\API\Soap\Transport\CurlTransport');
$client->setResultObject('\Pixi\API\Soap\Result\ArrayResult');
//################################################################
// Liste aller Shops
$rs = $client->pixiGetShops()->getResultset();
// Verbindungsaufbau und Auswahl der Datenbank
$dbconn = pg_connect("host=localhost dbname=pixi user=a password=b")
    or die('Verbindungsaufbau fehlgeschlagen: ' . pg_last_error());
// durchlaufen aller Shops
foreach ($rs as $key => $res) {
//################################################################
    $time1 = date("Y-m-d", strtotime("-6 months"));
    $time2 = date("Y-m-d");
    $pixiParams = array('ShopID' => $rs[$key]['ShopID'],'FromTime' => $time1,'UntilTime' => $time2);
    $res2 = $client->pixiReportReceivedOrders($pixiParams)->getResultset();
//################################################################
// Postgres Insert
    $query = "Insert into orders (zeit,label,x) values('".$time2."','".$rs[$key]['ShopID']."',".$res2[0]['ReceivedOrders'].");";
    $result = pg_query($query);
//#################################################################                            
 
}
                            // Speicher freigeben
                            pg_free_result($result);
 
                            // Verbindung schließen
                            pg_close($dbconn);
 
?>

Das Listing ist ein Beispiel für das Grundgerüst. In Zeile 15 holen wir uns alle konfigurierten Shops mit der Abfrage pixiGetShops. In einer foreach Schleife rufen wir in Zeile 25 für jeden Shop (‚ShopID‘ => $rs[$key][‚ShopID‘]) pixiReportReceivedOrders auf und speichern die Daten in einer Datenbank zwischen um eventuell später Durchnittswerte errechnen zu können.

Um die Daten – welche auch immer – in Freeboard sichtbar zu machen, müssen wir aus dem Array einen Datensatz im JSON Format generieren.

1
2
3
4
5
6
7
8
9
$time1 = date("Y-m-d H:i:s", strtotime("-24 hours"));
$time2 = date("Y-m-d H:i:s");
foreach($shops as $key => $su){
    $pixiParams = array('timePeriod' => 9999,'ShopID' =>  $su,'startDateTime' => $time1,'endDateTime' => $time2);
    $rs = $client->pixiReportScanInPerTimeQuant($pixiParams)->getResultset();
    $ergebnis[$key] = array($rs[0]['SUMScanIn'],$key);
}
$JSON = json_encode($ergebnis);
print('{ "data": '.str_replace('"','',$JSON).'}');

Ändern wir den Code einmal wie oben beschrieben ab und rufen die Werte der letzten 24 Stunden für pixiReportScanInPerTimeQuant auf. Entscheidend ist Zeile 9. Freebord kann in einer Linien- oder Balkengrafik nur „{ data: [5,0],[1,1],[5,2]}“ verarbeiten.

Wir werden hier noch genauer darauf eingehen. Freeboard hätte gerne für die verschiedenen grafischen Möglichkeiten, einen unterschiedlichen Datensatzaufbau. Es ist noch damit zu spielen, welche Zahl bzw. API Auswertung Sinn auf einem KPI macht und wie wir die Daten aufbereiten müssen.