iX 4/2018
S. 74
Report
Netzüberwachung
Aufmacherbild

Small Things Monitoring – kommerzielle und Open-Source-Werkzeuge

Netz der Dinge

IT-Monitoring-Werkzeuge gibt es viele, aber für das Internet der Dinge erst wenige. Unterstützung bieten einige kommerzielle Produkte sowie Open-Source-Werkzeuge, vor allem Systeme mit MQTT und mqttwarn.

Das „Internet der Dinge“ (IoT) ist ein weit gefasster Begriff. Gemeint ist die Vision, physische Objekte mit virtuellen Diensten via Internet zu verknüpfen. Diese Dinge halten sich im Hintergrund auf und erfüllen kleinere Aufgaben, von denen der Nutzer meist nichts mitbekommt. Ein Beispiel hierfür sind in Kleidung eingearbeitete Wearables.

Hardwarebausteine wie Sensoren und Aktoren erweitern das IoT um die Fähigkeit, Zustände zu registrieren und zu agieren. Generell erfassen die Bausteine Daten, die sie untereinander austauschen und externen Systemen bereitstellen. Aufgrund des enormen Datenflusses benötigen IoT-Netze in der Regel mehr Bandbreite und Quality of Service als andere Dienste.

In der Industrie kommen vermehrt IoT-Geräte zum Einsatz – manche schon seit vielen Jahren, als es den Begriff „IoT“ noch gar nicht gab. Klassisches Serverraum-Monitoring integriert etwa eine Unzahl an Sensoren. Webcams überwachen riesige Areale, und wenn ein Auto heutzutage einen Bremsvorgang einleitet, kommunizieren im Hintergrund zahlreiche Dinge, auch um dem Fahrer gegebenenfalls Entscheidungen abzunehmen.

Diese Objekte sind so weit unsichtbar, dass sie sich in ihren Netzen – bei entsprechender Bandbreite und QoS (Quality of Services) – uneingeschränkt miteinander unterhalten, ohne direkten Zugriff für Administratoren. Industrielle Anlagen nutzen eine zentrale Steuerung, die als Einsprungpunkt für Analyse und gesammelte Status-Updates dient. Dabei generieren sie sehr viele maschinenlesbare Logs und Events. Wenige davon sind „human readable“, allerdings ist das Auswerten im Fehlerfall sehr interessant.

Dinge sprechen MQTT

Für die Kommunikation zwischen den Dingen des IoT sowie mit außenstehenden Geräten existieren mehrere Protokolle. Als Standard hat sich MQTT (Message Queueing Telemetry Transport) entwickelt: Dabei tauschen sich die Objekte über eine Message-Queue mittels Pub/Sub-Verfahren aus. Sensoren schicken zum Beispiel ein Update über den Batteriestatus der Türklingel. Steuergeräte und verarbeitende Einheiten subskribieren sich für bestimmte Events, protokollieren den Batteriestatus und schicken einen Alarm, wenn er einen Schwellenwert unterschreitet. MQTT schont die Embedded Hardware durch einen geringen Stromverbrauch und kann die Kommunikation mit dem Verschlüsselungsprotokoll TLS (Transport Layer Security) absichern.

Als Alternative steht das Protokoll CoAP (Constrained Application Protocol) bereit, das dem Client-Server-Modell folgt. CoAP tauscht die Daten mit UDP-Datagram-Paketen und verzichtet auf den Overhead des TCP-Stacks auf Mikrocontrollern. Der Nachrichtenaustausch zwischen zwei Objekten erfolgt RESTful-like mit UDP. Ein Nachteil besteht in der One-to-one-Beziehung sowie in der Schwierigkeit, TLS zu verwenden. Alternativ eignet sich hier das Verschlüsselungsprotokoll DTLS (Datagram Transport Layer Security).

Nicht zuletzt kann man XMPP (Extensible Messaging and Presence Protocol) verwenden. Es benötigt allerdings mehr Ressourcen und LLN (Low Power and Lossy Network) funktioniert nicht. Als ein Vorteil sticht die Kommunikation in Echtzeit hervor.

Generell hat sich aber MQTT als De-facto-Standard für den Datenaustausch zwischen IoT-Objekten sowie mit außenstehenden Geräten etabliert. Und so funktioniert MQTT: Anwender verbinden alle Geräte mit einem Message-Bus, den ein zentraler MQTT-Server bereitstellt.

Sobald ein Objekt ein neues Event publizieren möchte, schickt es eine Meldung an den MQTT-Server. Andere Dinge sowie registrierte Broker können das Event empfangen und weiterverarbeiten. Der Sender wartet hier nicht auf eine Bestätigung der anderen Clients. Umgekehrt schickt eine Steuerungseinheit ein Kommando an den Bus, der ein bestimmtes Objekt als Target definiert. So lässt sich beispielsweise ein Neustart des Geräts steuern.

AWS (Amazon Web Services) stellt MQTT entweder direkt oder via HTTP-WebSockets zur Verfügung. Zum Publizieren von Events kann man hier ebenso eine HTTPS-API verwenden.