Förderjahr 2022 / Projekt Call #17 / ProjektID: 6406 / Projekt: DEC4IoT
Das Internet der Dinge (IoT) hat unsere Art zu leben und zu arbeiten revolutioniert, und mit DEC4IoT wollen wir einen Beitrag für den sicheren Umgang mit Sensordaten leisten und effiziente Alarmierungsmethoden bereitstellen. Eine der großen Herausforderungen in diesem Ökosystem ist das Monitoring, und hier beschreiben wir das Konzept und die effektive Implementierung des System Monitorings in DEC4IoT.
Beginnen wir mit dem groben Datenfluss: Sensordaten durchlaufen einen Prozess von ihrer Erfassung bis zur Überwachung im System. Die Daten werden vom Sensor erfasst, transformiert und schließlich zur Analyse an das Überwachungssystem übermittelt. Dabei unterscheiden wir zwei Hauptarten der Überwachung: aktiv und passiv.
- Aktive Überwachung: Hier werden Sensordaten aktiv abgefragt und analysiert. Dies geschieht entweder sofort nach dem Eingang der Daten oder durch einen periodischen Task, der alle noch nicht verarbeiteten Daten abarbeitet.
- Passive Überwachung: Bei dieser Art von Überwachung senden Sensoren regelmäßig einen "Heartbeat" bzw. Prozesse melden den erfolgreichen Abschluss, um ihre Funktion zu bestätigen. Falls der Heartbeat ausbleibt oder ein Task nicht wie erwartet abgeschlossen wird, wird ein Alarm ausgelöst.
Sensoren und Überwachungsmethoden Sensoren senden ihre Rohdaten an einen Mikrocontroller (ESP32) der die Daten dann als kompakte SenML Datensätze weiterleitet. Ein Hearbeat stellt die Verfügbarkeit des Sensors sicher (passive Überwachung) und aktiv werden Werte wie Batterieladung geprüft.
Transformation und Analyse Sobald die SenML Datensätze empfangen werden (zB auf einen Raspberry Pi), werden sie unmittelbar in Zeitreihen für die spätere Analyse umgewandelt. Ein periodischer Task (jede Minute) kümmert sich darum, dass Datensätze die möglicherweise nicht sofort umgewandelt wurden, noch nachbearbeitet werden und meldet eventuelle Fehler (aktive Überwachung). Bei Nicht-Fertigstellung des periodischen Tasks innerhalb einer gewissen Zeit (aktuell 1 Minute) wird ebenfalls ein Alarm ausgelöst (passive Überwachung).
Die Zeitreihen werden dann mit konfigurierbaren Monitoring-Schwellenwerten überwacht. Wie bei der Transformation der Sensordaten gibt es hier auch wieder einen periodischen Task, der alle nicht überprüften Zeitreihen die nicht sofort analysiert wurden durchgeht. Da wir mit beschränkten Ressourcen auf einem Raspberry Pi arbeiten, kann es immer wieder sein, dass bei einer großen Anzahl von Requests einzelne Prozesse nicht zu Ende geführt werden. Daher stellen periodische Tasks sicher, dass solche Datensätze die durch den Rost fallen, ebenfalls bearbeitet werden ohne beim ersten Abbruch sofort einen Fehler im System zu melden.
Ereignisse bei Schwellenwert-Überschreitung Sobald ein Monitoring-Schwellenwert überschritten wird, wird ein Ereignis (Event) erstellt. Dieses Ereignis kann zB eine Nachricht auf Slack, ein Email oder auch ein Alarm im DEC112 ESInet sein. Ein solches Event wird unmittelbar nach seiner Erstellung ausgeführt, aber wie schon bei der Transformation und der Analyse gibt es wieder einen periodischen Task der sich um ggf. nicht sofort verarbeitete Datensätze kümmert.
In der Abfolge von Transformation, Analyse, Eventbearbeitung wird gleichzeitig eine durchgehende Verlinkung und Dokumentation aller Schritte durchgeführt, sodass für jeden ausgelösten Alarm eine lückenlose Nachvollziehbarkeit der Verarbeitungsschritte gewährleistet wird.
Zusammenfassung Die Stärke unseres Systems liegt in seiner Fähigkeit, alle Komponenten unabhängig voneinander laufen zu lassen. Selbst wenn Services neu gestartet werden müssen, können abgebrochene Abläufe sofort wieder aufgenommen werden. Dies garantiert eine robuste und resiliente Überwachungslösung für DEC4IoT, die sicherstellt, dass IoT-Geräte stets optimal funktionieren.