Logo Zephyrnet

Una guida pratica al monitoraggio e all'osservabilità dei dispositivi IoT

Data:

Una guida pratica al monitoraggio e all'osservabilità dei dispositivi IoT

Controllo e l’osservabilità sono vitali per mantenere l’affidabilità, l’efficienza e la sicurezza dei dispositivi IoT. Se eseguiti correttamente, offrono una panoramica in tempo reale dei sistemi IoT, ma garantiscono anche l'accesso ai dati necessari per la risoluzione dei problemi storici. Tuttavia, di fronte alle migliaia di diversi dispositivi IoT, il raggiungimento di questi obiettivi comporta molte sfide.

Dovrei monitorare o dovrei osservare?

Innanzitutto, rivediamo la terminologia relativa al monitoraggio e all'osservabilità dell'IoT poiché le parole “monitoraggio” e “osservabilità” sono spesso usate in modo intercambiabile nonostante le loro differenze.

Partiamo dal monitoraggio, termine dalla storia più consolidata. Fondamentalmente, il monitoraggio mira a offrire approfondimenti sullo stato di salute e sulle prestazioni di un sistema.

Questo inizia raccogliendo e analizzando le metriche rilevanti. L'analisi viene generalmente presentata tramite dashboard. Tuttavia, uno stack di monitoraggio ragionevole dovrebbe andare oltre la rappresentazione visiva, valutando i parametri in tempo reale e avvisando gli utenti di eventuali anomalie o problemi.

Ma c’è un problema con l’approccio tradizionale al monitoraggio: richiede di sapere cosa cercare. Questo metodo potrebbe non essere all'altezza quando si incontrano nuovi problemi.

È qui che entra in gioco l’osservabilità in quanto può aiutarti a gestire le cosiddette incognite sconosciute. In poche parole, un sistema è osservabile quando è possibile rispondere a domande sul suo funzionamento interno esclusivamente a partire dai suoi risultati. I consueti output del software includono log, metriche e tracce.

Un sistema con una buona osservabilità non solo è più semplice da risolvere, ma consente anche di rilevare una gamma molto più ampia di problemi. Questo perché hai una visione molto migliore del sistema, quindi è più facile ottenere risposte alle tue domande su ciò che sta realmente accadendo.

L’osservabilità è particolarmente importante nel contesto dell’IoT, dove i sistemi coinvolgono numerosi dispositivi e moduli. Tentare di anticipare ogni potenziale combinazione di stati che potrebbe portare a problemi è poco pratico su questa scala, se non impossibile.

Metriche essenziali e approcci di monitoraggio

Esploriamo i dati che vale la pena monitorare e gli strumenti specifici progettati per aiutarci in questo compito.

Stiamo ottenendo i dati?

Non è un segreto che l'Internet delle cose spesso riguardi più i dati che le cose. Ecco perché è fondamentale tenere d'occhio la trasmissione dei dati dei tuoi dispositivi. Una solida piattaforma IoT dovrebbe tenere sotto stretto controllo parametri come la frequenza dei messaggi e il volume di dati trasmessi.

Tuttavia, monitorare manualmente il traffico di migliaia di dispositivi non è ovviamente una cosa saggia da fare. In questo caso la necessità di un allarme automatico è indiscutibile. Il minimo di cui dovresti essere avvisato è quando il dispositivo non invia dati, ma ti aspetti che lo faccia.

Tuttavia, tieni presente che i dispositivi IoT spesso operano in ambienti imprevedibili, come aree con connessioni Internet inaffidabili. Pertanto, una breve interruzione nella trasmissione dei dati non indica sempre un problema con il dispositivo.

Inoltre, è pratica comune memorizzare nel buffer i messaggi sul dispositivo o su un gateway edge, in modo da non perdere dati importanti. Il punto è che devi stare molto attento a non rendere le tue soglie troppo sensibili. Altrimenti verrai avvisato di ogni intoppo nella rete che inevitabilmente porterà ad un affaticamento dell'avviso e l'allarme perderà il suo potenziale.

Informazioni generali sullo stato del dispositivo

Il monitoraggio dell'integrità del dispositivo implica il monitoraggio di vari parametri chiave. Puoi pensare alla CPU, al consumo di memoria e al traffico di rete. Avere accesso a queste metriche può aiutare a identificare problemi di prestazioni, rilevare bug del software o addirittura rivelare attacchi esterni.

Esistono molti modi per esporre queste metriche. Tuttavia, la comunità ingegneristica è attualmente affascinata dalle capacità di Apri Telemetria.

Uno dei loro principali punti di forza è il loro approccio indipendente dal fornitore. Cioè, puoi scegliere un gran numero di backend di osservabilità per la conservazione e la successiva analisi. Ciò ha portato alla creazione di tutti i tipi di strumenti per funzionare con esso.

Quindi, indipendentemente dalla lingua o dal sistema che utilizzi, sei coperto. Questo è molto utile, soprattutto nel selvaggio mondo dell'IoT, dove ogni dispositivo potrebbe eseguire il proprio software unico.

OpenTelemetry supporta tre tipi principali di segnali: parametri, log e tracce. Nella maggior parte dei casi descritti in questa sezione, i dispositivi devono semplicemente esporre diversi parametri rilevanti, come il consumo attuale di memoria.

Quindi, queste metriche devono essere trasportate nel cloud dove è possibile visualizzarle, impostare avvisi e così via. Questo percorso è già aperto per i casi d'uso dell'IoT con progetti come OpenTelemetry Collector o Telegraf che possono aiutarti a raccogliere parametri dai tuoi dispositivi IoT.

Altri segnali specifici del dominio

Oltre alle caratteristiche generali dell'invio di dati e dell'utilizzo delle risorse, potrebbe essere necessario tenere traccia di alcuni valori specifici del dominio. Ciò potrebbe comportare l'invio di log, tracce o semplici messaggi contenenti contenuti specifici dell'applicazione.

Sia per i log che per le tracce, puoi fare affidamento ancora una volta sull'ecosistema OpenTelemetry. Ciò ti consente di analizzare log e tracce utilizzando i tuoi backend preferiti, come Grafana Loki/Tempo o lo stack Elastic Observability, senza sforzi aggiuntivi! La messaggistica è, d’altro canto, la funzionalità principale di ogni piattaforma IoT ragionevole. In altre parole, questi approcci dovrebbero essere banali da implementare nella maggior parte degli scenari.

La semplicità dei log

Consideriamo, ad esempio, una macchina raccoglitrice autonoma. Potresti voler monitorare le sue attività. Un modo semplice per farlo è inviare un registro quando l'attività è iniziata con alcuni metadati aggiuntivi.

Puoi fare la stessa cosa al termine dell'attività e per altri eventi rilevanti. In sostanza, ogni record di log è semplicemente un evento strutturato con diverse proprietà richieste. Di seguito è riportato un esempio di registro inviato quando l'harvester avvia la sequenza di attracco:

Oltre ai campi primari, come timestamp e corpo, il messaggio può contenere attributi aggiuntivi che descrivono l'evento in maggiore dettaglio. Questi pezzi extra possono essere utili quando stai dando la caccia agli insetti. Quindi assicurati di includere tutte le informazioni importanti.

Le profonde intuizioni contestuali con tracce

Se desideri approfondimenti un po' più dettagliati, puoi anche utilizzare il tracciamento. Una traccia corrisponde a un'operazione logica di un sistema ed è implicitamente definita dai suoi span. Uno span rappresenta una singola unità di lavoro di tale operazione. È definito dalle ore di inizio e fine, dagli attributi e, facoltativamente, da un intervallo padre.

Grazie ai riferimenti genitore, la traccia forma un grafico diretto che descrive la particolare operazione e le sue subroutine. Inoltre, gli intervalli possono contenere più eventi di intervallo che descrivono un evento che si è verificato in un momento specifico.

Sebbene le tracce siano generalmente associate al monitoraggio di sistemi distribuiti, è anche possibile utilizzarle nei dispositivi IoT per comprendere il quadro generale di ciò che accade sul campo. Diciamo che sei curioso di sapere come la mietitrice autonoma torna alla sua docking station.

Vedere la figura seguente, dove l'aggancio corrisponde allo span root di livello superiore. Innanzitutto, la mietitrice deve individuare la docking station, quindi chiama un'API. Questa operazione corrisponde ad un arco figlio. Un esempio di evento di durata può essere il momento in cui la mietitrice ha lasciato il campo. Quando si utilizzano tutti gli strumenti di tracciamento insieme, è possibile vedere l'intero quadro del funzionamento del dispositivo.

Ritorno alle origini con messaggi semplici

In alcuni scenari, l'invio di messaggi strutturati semplici può essere più pratico rispetto all'utilizzo dei segnali OpenTelemetry. Tornando all'esempio della mietitrice autonoma, probabilmente vorrai tracciarne la posizione.

Se desideri visualizzare la posizione in tempo reale, OpenTelemetry attualmente non supporta realmente un segnale che si adatterebbe semanticamente a questo scenario. La corrispondenza più simile sarebbe probabilmente la loro Event API, che è ancora in una fase sperimentale (al momento della stesura di questo articolo nel primo trimestre del 1). Considera invece l'invio del seguente messaggio JSON:

Idealmente, la piattaforma IoT che stai utilizzando dovrebbe essere in grado di analizzare tali messaggi e inserirli nel database adatto di tua scelta. Da lì, sei libero di analizzare e visualizzare i dati in base alle tue esigenze.

Abbiamo ricreato questo esempio con la piattaforma IoT Spotflow per dimostrarne la semplicità. Impostiamo un dispositivo che invia periodicamente messaggi con la sua posizione e velocità alla piattaforma. Quindi, abbiamo instradato il flusso di dati nel nostro sink di uscita Grafana integrato. E questo è tutto! La piattaforma ora acquisisce tutti i messaggi e li inserisce in un database di serie temporali che può essere interrogato in Grafana.

Inoltre, questo è un ottimo caso d'uso per la visualizzazione Grafana Geomap. Ti consente di tracciare facilmente le posizioni dei tuoi dispositivi. Guarda l'immagine qui sotto, dove abbiamo utilizzato Grafana per visualizzare i dati ricevuti dal dispositivo.

Punti chiave

E questo è tutto! Ora sei pronto per configurare il tuo stack di osservabilità e iniziare a monitorare i tuoi dispositivi IoT. Vorremmo che questo articolo fungesse da punto di partenza nel mondo dell'osservabilità dell'IoT. Ricorda le seguenti idee chiave:

  • Monitorare la trasmissione dei dati: tieni d'occhio la trasmissione dei dati dai tuoi dispositivi e sii pronto con gli avvisi per rilevare tempestivamente eventuali interruzioni.
  • Tieni traccia delle metriche di integrità del dispositivo: mostra metriche rilevanti relative allo stato del tuo dispositivo per garantire operazioni fluide.
  • Invia dati specifici dell'applicazione tramite log, tracce e messaggi strutturati: pensa al tuo dominio e al funzionamento del dispositivo e invia tutti i dati che potrebbero essere necessari per il futuro debugging e il monitoraggio in tempo reale.
  • Esplora l'ecosistema OpenTelemetry: prendi in considerazione l'utilizzo dell'ecosistema OpenTelemetry nell'IoT poiché diventa uno standard di osservabilità che offre molte opzioni per i backend di osservabilità e serve vari runtime dei dispositivi.
spot_img

L'ultima intelligenza

spot_img