Zephyrnet-logo

Een praktische gids voor monitoring en waarneembaarheid van IoT-apparaten

Datum:

Een praktische gids voor monitoring en waarneembaarheid van IoT-apparaten

Monitoren en waarneembaarheid zijn van cruciaal belang voor het behoud van de betrouwbaarheid, efficiëntie en veiligheid van IoT-apparaten. Als ze goed worden uitgevoerd, bieden ze een realtime overzicht van uw IoT-systemen, maar zorgen ze ook voor toegang tot gegevens die nodig zijn voor het oplossen van historische problemen. Maar wanneer we worden geconfronteerd met de duizenden verschillende IoT-apparaten, brengt het bereiken van deze doelstellingen veel uitdagingen met zich mee.

Moet ik monitoren of moet ik observeren?

Laten we eerst de terminologie op het gebied van IoT-monitoring en waarneembaarheid herzien, aangezien de woorden 'monitoring' en 'observeerbaarheid' ondanks hun verschillen vaak door elkaar worden gebruikt.

Laten we beginnen met monitoring, een term met een meer gevestigde geschiedenis. In de kern is monitoring bedoeld om inzicht te bieden in de gezondheid en prestaties van een systeem.

Dit begint met het verzamelen en analyseren van relevante statistieken. De analyse wordt doorgaans gepresenteerd via dashboards. Een redelijke monitoringstack moet echter verder gaan dan visuele weergave, de statistieken in realtime evalueren en gebruikers waarschuwen voor eventuele afwijkingen of problemen.

Maar er zit een addertje onder het gras bij de traditionele aanpak van monitoring: het vereist dat je weet waar je op moet letten. Deze methode kan tekortschieten als er nieuwe problemen optreden.

Dit is waar waarneembaarheid een rol speelt, omdat het je kan helpen om te gaan met de zogenaamde onbekende onbekenden. Simpel gezegd: een systeem is waarneembaar als je vragen over de interne werking ervan uitsluitend op basis van de output kunt beantwoorden. De gebruikelijke uitvoer van de software omvat logboeken, statistieken en sporen.

Een systeem met goede waarneembaarheid is niet alleen gemakkelijker op te lossen, maar stelt u ook in staat een veel breder scala aan problemen te detecteren. Dit komt doordat je veel beter inzicht hebt in het systeem, waardoor je makkelijker antwoord krijgt op je vragen over wat er daadwerkelijk gebeurt.

Waarneembaarheid is vooral belangrijk in de context van IoT, waar de systemen talrijke apparaten en modules omvatten. Proberen te anticiperen op elke mogelijke combinatie van toestanden die tot problemen zouden kunnen leiden, is op deze schaal onpraktisch, zo niet onmogelijk.

Essentiële statistieken en monitoringbenaderingen

Laten we eens kijken naar de gegevens die de moeite waard zijn om te volgen en naar de specifieke instrumenten die zijn ontworpen om ons bij deze taak te helpen.

Krijgen we de gegevens?

Het is geen geheim dat het Internet of Things vaak meer om de data gaat dan om de dingen. Daarom is het van cruciaal belang dat u de gegevensoverdracht van uw apparaten in de gaten houdt. Een solide IoT-platform moet statistieken zoals berichtfrequentie en verzonden datavolume nauwlettend in de gaten houden.

Toch is het uiteraard niet verstandig om het verkeer van duizenden apparaten handmatig in de gaten te houden. De noodzaak van automatische waarschuwingen staat in dit geval buiten kijf. Het minimum waarvoor u gewaarschuwd moet worden, is wanneer het apparaat geen gegevens verzendt, maar u wel verwacht dat dit wel gebeurt.

Houd er echter rekening mee dat IoT-apparaten vaak in onvoorspelbare omgevingen werken, zoals gebieden met onbetrouwbare internetverbindingen. Een korte onderbreking in de gegevensoverdracht duidt dus niet altijd op een probleem met het apparaat.

Het is ook gebruikelijk om de berichten op uw apparaat of op een edge-gateway te bufferen, zodat u geen belangrijke gegevens verliest. Het punt is dat u heel voorzichtig moet zijn om uw drempels niet te gevoelig te maken. Anders wordt u gewaarschuwd voor elke hapering in het netwerk, wat onvermijdelijk leidt tot waarschuwingsmoeheid, en verliest de waarschuwing zijn potentieel.

Algemene informatie over de apparaatstatus

Het monitoren van de apparaatstatus omvat het volgen van verschillende belangrijke statistieken. Hierbij kun je denken aan CPU, geheugengebruik en netwerkverkeer. Het hebben van toegang tot deze statistieken kan helpen bij het identificeren van prestatieproblemen, het opsporen van softwarefouten of zelfs externe aanvallen onthullen.

Er zijn veel manieren om deze statistieken zichtbaar te maken. De technische gemeenschap is momenteel echter gefascineerd door de mogelijkheden van OpenTelemetrie.

Een van hun belangrijkste verkoopargumenten is hun leveranciersonafhankelijke aanpak. Dat wil zeggen, u kunt kiezen uit een groot aantal waarneembare backends voor de opslag en de daaropvolgende analyse. Dit heeft ertoe geleid dat er allerlei tools zijn gemaakt om ermee te werken.

Dus welke taal of welk systeem u ook gebruikt, u bent verzekerd. Dit is superhandig, vooral in de wilde wereld van IoT, waar elk apparaat zijn unieke software draait.

OpenTelemetry ondersteunt drie hoofdtypen signalen: metrische gegevens, logboeken en traceringen. In de meeste gevallen die in deze sectie worden beschreven, hoeven apparaten eenvoudigweg een aantal relevante gegevens weer te geven, zoals hun huidige geheugengebruik.

Vervolgens moeten deze statistieken naar de cloud worden getransporteerd, waar u ze kunt visualiseren, waarschuwingen kunt instellen, enzovoort. Dit pad is al geplaveid voor de IoT-gebruiksscenario's met projecten als OpenTelemetry Collector of Telegraf die u kunnen helpen bij het verzamelen van statistieken van uw IoT-apparaten.

Andere domeinspecifieke signalen

Afgezien van de algemene kenmerken van het verzenden van gegevens en het gebruik van bronnen, moet u mogelijk enkele domeinspecifieke waarden bijhouden. Hierbij kan het gaan om het verzenden van logbestanden, traceringen of eenvoudige berichten met applicatiespecifieke inhoud.

Voor zowel de logs als de traceringen kunt u opnieuw vertrouwen op het OpenTelemetry-ecosysteem. Hierdoor kunt u logs en traces analyseren met behulp van uw favoriete backends, zoals Grafana Loki/Tempo of de Elastic Observability stack, zonder extra moeite! Messaging is daarentegen de kernfunctionaliteit van elk redelijk IoT-platform. Met andere woorden: deze benaderingen zouden in de meeste scenario's triviaal moeten zijn om te implementeren.

De eenvoud van logboeken

Denk bijvoorbeeld aan een autonome oogstmachine. Misschien wilt u de activiteiten ervan volgen. Een eenvoudige manier om dit te doen is door een logboek te sturen wanneer de activiteit is gestart, met wat aanvullende metagegevens.

Hetzelfde kunt u doen als de activiteit is afgelopen en voor andere relevante evenementen. In wezen is elk logrecord slechts een gestructureerde gebeurtenis met verschillende vereiste eigenschappen. Hieronder ziet u een voorbeeld van een logboek dat wordt verzonden wanneer de oogstmachine begint met aankoppelen:

Naast de primaire velden, zoals tijdstempel en hoofdtekst, kan het bericht aanvullende attributen bevatten die de gebeurtenis gedetailleerder beschrijven. Deze extra stukjes kunnen handig zijn als je op zoek bent naar bugs. Zorg er dus voor dat u alle belangrijke informatie vermeldt.

De diepe contextuele inzichten met sporen

Wilt u wat gedetailleerder inzicht, dan kunt u ook gebruik maken van tracing. Een trace komt overeen met één logische bewerking van een systeem, en wordt impliciet gedefinieerd door de spanwijdten ervan. Een bereik vertegenwoordigt één werkeenheid van die bewerking. Het wordt gedefinieerd door de begin- en eindtijden, attributen en optioneel een bovenliggende reeks.

Dankzij de ouderreferenties vormt de trace een gerichte grafiek die de specifieke bewerking en de subroutines beschrijft. Bovendien kunnen overspanningen meerdere overspanningsgebeurtenissen bevatten die een gebeurtenis beschrijven die op een specifiek tijdstip heeft plaatsgevonden.

Hoewel tracering doorgaans wordt geassocieerd met het monitoren van gedistribueerde systemen, is het ook mogelijk om tracering in IoT-apparaten te gebruiken om u te helpen het grote beeld te begrijpen van wat er in het veld gebeurt. Stel dat u nieuwsgierig bent naar hoe de autonome oogstmachine terugkeert naar zijn dockingstation.

Zie de onderstaande afbeelding, waar de koppeling overeenkomt met de rootspan op het hoogste niveau. Eerst moet de harvester het dockingstation lokaliseren en roept daarom een ​​API aan. Deze bewerking komt overeen met één kindspanne. Een voorbeeld van een overspanningsgebeurtenis kan het punt zijn waarop de oogstmachine het veld verliet. Wanneer u alle traceerinstrumenten samen gebruikt, kunt u het volledige beeld van de werking van het apparaat zien.

Terug naar de basis met eenvoudige berichten

In bepaalde scenario's kan het verzenden van eenvoudige gestructureerde berichten praktischer zijn dan het gebruik van de OpenTelemetry-signalen. Als je teruggaat naar het voorbeeld van de autonome oogstmachine, wil je waarschijnlijk de locatie ervan volgen.

Als je de locatie in realtime wilt visualiseren, ondersteunt OpenTelemetry momenteel niet echt een signaal dat semantisch in dit scenario zou passen. De beste match zou waarschijnlijk hun Event API zijn, die zich nog in een experimentele fase bevindt (op het moment dat dit artikel werd geschreven in het eerste kwartaal van 1). Overweeg in plaats daarvan het volgende JSON-bericht te verzenden:

Idealiter zou het IoT-platform dat u gebruikt dergelijke berichten kunnen parseren en in de geschikte database van uw keuze kunnen opnemen. Van daaruit kunt u de gegevens naar eigen behoefte analyseren en visualiseren.

We hebben dit voorbeeld opnieuw gemaakt met het Spotflow IoT-platform om de eenvoud te demonstreren. We hebben een apparaat opgezet dat periodiek berichten met de locatie en snelheid naar het platform verzendt. Vervolgens hebben we de datastroom naar onze ingebouwde Grafana-uitgaande sink geleid. En dat is het! Het platform verzamelt nu alle berichten en plaatst ze in een tijdreeksdatabase die in Grafana kan worden opgevraagd.

Dit is ook een geweldige use-case voor de Grafana Geomap-visualisatie. Hiermee kunt u eenvoudig de locaties van uw apparaten in kaart brengen. Zie de onderstaande afbeelding, waar we Grafana hebben gebruikt om de gegevens te visualiseren die van het apparaat zijn ontvangen.

Key Takeaways

En dat is het! Nu bent u klaar om uw observatiestack in te stellen en uw IoT-apparaten te monitoren. We willen graag dat dit artikel als startpunt kan dienen in de wereld van IoT-waarneembaarheid. Onthoud de volgende sleutelideeën:

  • Bewaak de gegevensoverdracht: Houd de gegevensoverdracht vanaf uw apparaten nauwlettend in de gaten en wees voorbereid met waarschuwingen om eventuele verstoringen onmiddellijk op te merken.
  • Houd de statusstatistieken van apparaten bij: Bekijk relevante statistieken over de gezondheid van uw apparaat om een ​​soepele werking te garanderen.
  • Verzend applicatiespecifieke gegevens via logboeken, traceringen en gestructureerde berichten: Denk na over uw domein en de werking van het apparaat en stuur alle gegevens die nodig kunnen zijn voor toekomstige foutopsporing en realtime monitoring.
  • Verken het OpenTelemetry-ecosysteem: Overweeg het gebruik van het OpenTelemetry-ecosysteem in IoT, aangezien het een observatiestandaard wordt die u veel opties biedt voor observatie-backends en het bedienen van verschillende runtimes van apparaten.
spot_img

Laatste intelligentie

spot_img