Zephyrnet-Logo

Ein praktischer Leitfaden zur Überwachung und Beobachtbarkeit von IoT-Geräten

Datum:

Ein praktischer Leitfaden zur Überwachung und Beobachtbarkeit von IoT-Geräten

Netzwerk Performance und Beobachtbarkeit sind für die Aufrechterhaltung der Zuverlässigkeit, Effizienz und Sicherheit von IoT-Geräten von entscheidender Bedeutung. Bei richtiger Umsetzung bieten sie einen Echtzeitüberblick über Ihre IoT-Systeme, gewährleisten aber auch den Zugriff auf Daten, die für die Fehlerbehebung historischer Probleme erforderlich sind. Doch angesichts der Tausenden verschiedener IoT-Geräte bringt das Erreichen dieser Ziele viele Herausforderungen mit sich.

Soll ich überwachen oder beobachten?

Lassen Sie uns zunächst die Terminologie für IoT-Überwachung und -Beobachtbarkeit überarbeiten, da die Wörter „Überwachung“ und „Beobachtbarkeit“ trotz ihrer Unterschiede oft synonym verwendet werden.

Beginnen wir mit der Überwachung, einem Begriff mit einer etablierteren Geschichte. Im Kern zielt die Überwachung darauf ab, Erkenntnisse über den Zustand und die Leistung eines Systems zu gewinnen.

Dies beginnt mit der Erfassung und Analyse relevanter Kennzahlen. Die Analyse wird typischerweise über Dashboards dargestellt. Ein vernünftiger Überwachungsstapel sollte jedoch über die visuelle Darstellung hinausgehen, die Metriken in Echtzeit auswerten und Benutzer auf etwaige Anomalien oder Probleme aufmerksam machen.

Der traditionelle Überwachungsansatz hat jedoch einen Haken: Er erfordert, dass Sie wissen, worauf Sie achten müssen. Diese Methode kann bei neuartigen Problemen unzureichend sein.

Hier kommt die Beobachtbarkeit ins Spiel, da sie Ihnen beim Umgang mit den sogenannten unbekannten Unbekannten helfen kann. Einfach ausgedrückt ist ein System beobachtbar, wenn Fragen zu seinem Innenleben ausschließlich anhand seiner Ergebnisse beantwortet werden können. Zu den üblichen Ausgaben der Software gehören Protokolle, Metriken und Traces.

Ein System mit guter Beobachtbarkeit ist nicht nur einfacher zu beheben, sondern ermöglicht Ihnen auch die Erkennung eines viel breiteren Spektrums von Problemen. Dies liegt daran, dass Sie viel bessere Einblicke in das System haben und so einfacher Antworten auf Ihre Fragen zum tatsächlichen Geschehen erhalten.

Besonders wichtig ist die Beobachtbarkeit im Kontext des IoT, wo die Systeme zahlreiche Geräte und Module umfassen. Der Versuch, jede mögliche Kombination von Zuständen zu antizipieren, die zu Problemen führen könnten, ist in diesem Ausmaß unpraktisch, wenn nicht sogar unmöglich.

Wesentliche Metriken und Überwachungsansätze

Lassen Sie uns untersuchen, welche Daten es wert sind, verfolgt zu werden, und welche spezifischen Instrumente entwickelt wurden, um uns bei dieser Aufgabe zu unterstützen.

Erhalten wir die Daten?

Es ist kein Geheimnis, dass es beim Internet der Dinge oft mehr um Daten als um Dinge geht. Deshalb ist es wichtig, die Datenübertragung Ihrer Geräte im Auge zu behalten. Eine solide IoT-Plattform sollte Kennzahlen wie Nachrichtenhäufigkeit und übertragene Datenmenge genau im Auge behalten.

Dennoch ist es offensichtlich keine kluge Sache, den Datenverkehr von Tausenden von Geräten manuell zu überwachen. Die Notwendigkeit einer automatischen Alarmierung steht in diesem Fall außer Frage. Das Mindeste, worüber Sie gewarnt werden sollten, ist, wenn das Gerät keine Daten sendet, Sie dies aber erwarten.

Bedenken Sie jedoch, dass IoT-Geräte häufig in unvorhersehbaren Umgebungen betrieben werden, beispielsweise in Bereichen mit unzuverlässigen Internetverbindungen. Eine kurze Lücke in der Datenübertragung weist also nicht immer auf ein Problem mit dem Gerät hin.

Außerdem ist es üblich, die Nachrichten entweder auf Ihrem Gerät oder einem Edge-Gateway zu puffern, damit keine wichtigen Daten verloren gehen. Der Punkt ist, dass Sie sehr darauf achten müssen, Ihre Schwellenwerte nicht zu empfindlich einzustellen. Andernfalls werden Sie bei jedem Schluckauf im Netzwerk gewarnt, was unweigerlich zu Alarmmüdigkeit führt und die Alarmierung ihr Potenzial verliert.

Allgemeine Informationen zum Gerätezustand

Die Überwachung des Gerätezustands umfasst die Verfolgung verschiedener Schlüsselmetriken. Sie können an CPU, Speicherverbrauch und Netzwerkverkehr denken. Der Zugriff auf diese Metriken kann dabei helfen, Leistungsprobleme zu erkennen, Softwarefehler zu erkennen oder sogar Angriffe von außen aufdecken.

Es gibt viele Möglichkeiten, diese Kennzahlen offenzulegen. Allerdings ist die Ingenieursgemeinschaft derzeit von den Fähigkeiten von fasziniert OpenTelemetry.

Eines ihrer Hauptverkaufsargumente ist ihr herstellerunabhängiger Ansatz. Das heißt, Sie können wählen eine große Anzahl von Observability-Backends für die Speicherung und die anschließende Analyse. Dies hat dazu geführt, dass alle möglichen Werkzeuge entwickelt wurden, um damit zu arbeiten.

Ganz gleich, welche Sprache oder welches System Sie verwenden, Sie sind abgesichert. Das ist super praktisch, besonders in der wilden Welt des IoT, wo auf jedem Gerät möglicherweise eine eigene Software ausgeführt wird.

OpenTelemetry unterstützt drei Haupttypen von Signalen: Metriken, Protokolle und Traces. In den meisten in diesem Abschnitt beschriebenen Fällen müssen Geräte lediglich mehrere relevante Metriken offenlegen, beispielsweise ihren aktuellen Speicherverbrauch.

Anschließend müssen diese Metriken in die Cloud übertragen werden, wo Sie sie visualisieren, Benachrichtigungen einrichten usw. können. Dieser Weg ist für IoT-Anwendungsfälle bereits mit Projekten wie OpenTelemetry Collector oder Telegraf geebnet, die Ihnen beim Sammeln von Metriken von Ihren IoT-Geräten helfen können.

Andere domänenspezifische Signale

Abgesehen von den allgemeinen Merkmalen des Sendens von Daten und der Ressourcennutzung müssen Sie möglicherweise einige domänenspezifische Werte verfolgen. Dies kann das Senden von Protokollen, Ablaufverfolgungen oder einfachen Nachrichten mit anwendungsspezifischen Inhalten umfassen.

Sowohl bei den Protokollen als auch bei den Traces können Sie sich erneut auf das OpenTelemetry-Ökosystem verlassen. Dadurch können Sie Protokolle und Traces ohne zusätzlichen Aufwand mit Ihren bevorzugten Backends wie Grafana Loki/Tempo oder dem Elastic Observability Stack analysieren! Messaging ist hingegen die Kernfunktionalität jeder vernünftigen IoT-Plattform. Mit anderen Worten: Diese Ansätze sollten in den meisten Szenarien problemlos umzusetzen sein.

Die Einfachheit von Protokollen

Stellen Sie sich zum Beispiel eine autonome Erntemaschine vor. Möglicherweise möchten Sie seine Aktivitäten verfolgen. Eine einfache Möglichkeit hierfür besteht darin, ein Protokoll mit einigen zusätzlichen Metadaten zu senden, wenn die Aktivität gestartet wurde.

Dasselbe können Sie tun, wenn die Aktivität beendet ist und bei anderen relevanten Ereignissen. Im Wesentlichen ist jeder Protokolldatensatz nur ein strukturiertes Ereignis mit mehreren erforderlichen Eigenschaften. Nachfolgend finden Sie ein Beispiel für ein Protokoll, das gesendet wird, wenn der Harvester mit der Andocksequenz beginnt:

Neben den primären Feldern wie Zeitstempel und Nachrichtentext kann die Nachricht zusätzliche Attribute enthalten, die das Ereignis detaillierter beschreiben. Diese zusätzlichen Bits können nützlich sein, wenn Sie nach Fehlern suchen. Stellen Sie daher sicher, dass Sie alle wichtigen Informationen angeben.

Die tiefen kontextuellen Einblicke mit Spuren

Wenn Sie etwas detailliertere Einblicke wünschen, können Sie auch das Tracing nutzen. Ein Trace entspricht einer logischen Operation eines Systems und wird implizit durch seine Spannen definiert. Eine Spanne stellt eine einzelne Arbeitseinheit dieses Vorgangs dar. Es wird durch seine Start- und Endzeiten, Attribute und optional eine übergeordnete Spanne definiert.

Dank der übergeordneten Referenzen bildet der Trace einen gerichteten Graphen, der die jeweilige Operation und ihre Unterprogramme beschreibt. Darüber hinaus können Spans mehrere Span-Ereignisse enthalten, die ein Ereignis beschreiben, das zu einem bestimmten Zeitpunkt aufgetreten ist.

Während Traces typischerweise mit der Überwachung verteilter Systeme verbunden sind, ist es auch möglich, Tracing in IoT-Geräten zu verwenden, um Ihnen zu helfen, das Gesamtbild der Vorgänge vor Ort zu verstehen. Nehmen wir an, Sie möchten wissen, wie die autonome Erntemaschine zu ihrer Dockingstation zurückkehrt.

Sehen Sie sich die Abbildung unten an, in der das Andocken dem Root-Span der obersten Ebene entspricht. Zuerst muss der Harvester die Dockingstation lokalisieren und ruft dazu eine API auf. Dieser Vorgang entspricht einem untergeordneten Bereich. Ein Beispiel für ein Span-Ereignis kann der Zeitpunkt sein, an dem die Erntemaschine das Feld verlassen hat. Wenn Sie alle Peilinstrumente zusammen verwenden, können Sie das Gesamtbild der Funktionsweise des Geräts sehen.

Zurück zu den Grundlagen mit einfachen Nachrichten

In bestimmten Szenarien kann das Senden einfacher strukturierter Nachrichten praktischer sein als die Verwendung der OpenTelemetry-Signale. Um auf das Beispiel der autonomen Erntemaschine zurückzukommen: Sie möchten wahrscheinlich seinen Standort verfolgen.

Wenn Sie den Standort in Echtzeit visualisieren möchten, unterstützt OpenTelemetry derzeit kein Signal, das semantisch zu diesem Szenario passen würde. Die beste Übereinstimmung wäre wahrscheinlich ihre Event-API, die sich noch in einer experimentellen Phase befindet (zum Zeitpunkt der Erstellung dieses Artikels im ersten Quartal 1). Erwägen Sie stattdessen, die folgende JSON-Nachricht zu senden:

Im Idealfall sollte die von Ihnen verwendete IoT-Plattform in der Lage sein, solche Nachrichten zu analysieren und in die geeignete Datenbank Ihrer Wahl aufzunehmen. Von dort aus können Sie die Daten entsprechend Ihren Anforderungen analysieren und visualisieren.

Wir haben dieses Beispiel mit der Spotflow IoT-Plattform nachgebildet, um die Einfachheit zu demonstrieren. Wir richten ein Gerät ein, das regelmäßig Nachrichten mit seinem Standort und seiner Geschwindigkeit an die Plattform sendet. Anschließend haben wir den Datenstrom in unsere integrierte Grafana-Egress-Senke weitergeleitet. Und das ist es! Die Plattform erfasst nun alle Nachrichten und legt sie in einer Zeitreihendatenbank ab, die in Grafana abgefragt werden kann.

Dies ist auch ein großartiger Anwendungsfall für die Grafana Geomap-Visualisierung. Damit können Sie ganz einfach die Standorte Ihrer Geräte lokalisieren. Sehen Sie sich das Bild unten an, in dem wir Grafana verwendet haben, um die vom Gerät empfangenen Daten zu visualisieren.

Key Take Away

Und das ist es! Jetzt können Sie Ihren Observability-Stack einrichten und mit der Überwachung Ihrer IoT-Geräte beginnen. Wir möchten, dass dieser Artikel als Ausgangspunkt in die Welt der IoT-Beobachtbarkeit dient. Denken Sie an die folgenden Schlüsselideen:

  • Überwachen Sie die Datenübertragung: Behalten Sie die Datenübertragung Ihrer Geräte im Auge und seien Sie mit Warnmeldungen darauf vorbereitet, eventuelle Störungen umgehend zu erkennen.
  • Verfolgen Sie Kennzahlen zum Gerätezustand: Zeigen Sie relevante Kennzahlen zum Zustand Ihres Geräts an, um einen reibungslosen Betrieb zu gewährleisten.
  • Senden Sie anwendungsspezifische Daten über Protokolle, Ablaufverfolgungen und strukturierte Nachrichten: Denken Sie über Ihre Domäne und den Betrieb des Geräts nach und senden Sie alle Daten, die für zukünftiges Debugging und Echtzeitüberwachung benötigt werden könnten.
  • Entdecken Sie das OpenTelemetry-Ökosystem: Erwägen Sie die Verwendung des OpenTelemetry-Ökosystems im IoT, da es zu einem Observability-Standard wird, der Ihnen viele Optionen für Observability-Backends und die Bereitstellung verschiedener Gerätelaufzeiten bietet.
spot_img

Neueste Intelligenz

spot_img