Logo Zéphyrnet

Un guide pratique sur la surveillance et l'observabilité des appareils IoT

Date :

Un guide pratique sur la surveillance et l'observabilité des appareils IoT

Le Monitoring et l'observabilité sont essentielles pour maintenir la fiabilité, l'efficacité et la sécurité des appareils IoT. Lorsqu'ils sont bien exécutés, ils offrent un aperçu en temps réel de vos systèmes IoT, mais garantissent également l'accès aux données nécessaires au dépannage des problèmes historiques. Pourtant, face aux milliers d’appareils IoT divers, atteindre ces objectifs pose de nombreux défis.

Dois-je surveiller ou observer ?

Tout d’abord, révisons la terminologie de la surveillance et de l’observabilité de l’IoT, car les mots « surveillance » et « observabilité » sont souvent utilisés de manière interchangeable malgré leurs différences.

Commençons par le monitoring, un terme à l'histoire plus ancienne. À la base, la surveillance vise à offrir des informations sur la santé et les performances d’un système.

Cela commence par la collecte et l’analyse des mesures pertinentes. L'analyse est généralement présentée sous forme de tableaux de bord. Cependant, une pile de surveillance raisonnable doit aller au-delà de la représentation visuelle, évaluer les mesures en temps réel et alerter les utilisateurs de toute anomalie ou problème.

Mais il y a un problème avec l’approche traditionnelle de la surveillance : elle nécessite que vous sachiez quoi rechercher. Cette méthode peut échouer lorsque l’on rencontre de nouveaux problèmes.

C’est là que l’observabilité entre en jeu car elle peut vous aider à gérer les soi-disant inconnues inconnues. En termes simples, un système est observable lorsque vous pouvez répondre à des questions sur son fonctionnement interne uniquement à partir de ses résultats. Les sorties habituelles du logiciel incluent les journaux, les métriques et les traces.

Un système doté d’une bonne observabilité est non seulement plus facile à dépanner, mais vous permet également de détecter un éventail beaucoup plus large de problèmes. En effet, vous disposez d'une bien meilleure compréhension du système, il est donc plus facile d'obtenir des réponses à vos questions sur ce qui se passe réellement.

L'observabilité est particulièrement importante dans le contexte de l'IoT, où les systèmes impliquent de nombreux appareils et modules. Tenter d’anticiper toutes les combinaisons potentielles d’états susceptibles de conduire à des troubles est peu pratique à cette échelle, voire impossible.

Mesures essentielles et approches de surveillance

Explorons les données qui méritent d'être suivies et les instruments spécifiques conçus pour nous aider dans cette tâche.

Obtenons-nous les données ?

Ce n’est un secret pour personne : l’Internet des objets repose souvent davantage sur les données que sur les objets. C'est pourquoi il est crucial de garder un œil sur la transmission des données de vos appareils. Une plate-forme IoT solide doit surveiller de près des mesures telles que la fréquence des messages et le volume de données transmises.

Pourtant, surveiller manuellement le trafic de milliers d’appareils n’est évidemment pas une chose judicieuse à faire. La nécessité d’une alerte automatique est incontestable dans ce cas. Le minimum dont vous devriez être alerté est lorsque l'appareil n'envoie aucune donnée, alors que vous vous attendez à ce qu'il le fasse.

Cependant, gardez à l’esprit que les appareils IoT fonctionnent souvent dans des environnements imprévisibles, tels que des zones où les connexions Internet ne sont pas fiables. Ainsi, un court intervalle dans la transmission des données n'indique pas toujours un problème avec l'appareil.

En outre, il est courant de mettre les messages en mémoire tampon sur votre appareil ou sur une passerelle Edge, afin de ne perdre aucune donnée importante. Le fait est que vous devez faire très attention à ne pas rendre vos seuils trop sensibles. Sinon, vous serez alerté de chaque problème survenant sur le réseau, ce qui entraînera inévitablement une fatigue des alertes, et l'alerte perdra son potentiel.

Informations générales sur l’état de l’appareil

La surveillance de la santé des appareils implique le suivi de diverses mesures clés. Vous pouvez penser au processeur, à la consommation de mémoire et au trafic réseau. Avoir accès à ces métriques peut aider à identifier les problèmes de performances, à détecter les bogues logiciels ou même révéler des attaques extérieures.

Il existe de nombreuses façons d’exposer ces métriques. Cependant, la communauté des ingénieurs est actuellement captivée par les capacités de OpenTélémétrie.

L’un de leurs principaux arguments de vente est leur approche indépendante du fournisseur. Autrement dit, vous pouvez choisir parmi un grand nombre de backends d'observabilité pour le stockage et l'analyse suivante. Cela a conduit à la création de toutes sortes d’outils pour fonctionner avec.

Ainsi, quel que soit la langue ou le système que vous utilisez, vous êtes couvert. C'est très pratique, en particulier dans le monde sauvage de l'IoT, où chaque appareil peut exécuter son logiciel unique.

OpenTelemetry prend en charge trois principaux types de signaux : les métriques, les journaux et les traces. Dans la plupart des cas décrits dans cette section, les appareils doivent simplement exposer plusieurs mesures pertinentes, telles que leur consommation actuelle de mémoire.

Ensuite, ces métriques doivent être transportées vers le cloud où vous pouvez les visualiser, configurer des alertes, etc. Cette voie est déjà ouverte pour les cas d'utilisation de l'IoT avec des projets comme OpenTelemetry Collector ou Telegraf qui peuvent vous aider à collecter des métriques à partir de vos appareils IoT.

Autres signaux spécifiques au domaine

Outre les caractéristiques générales de l'envoi de données et de l'utilisation des ressources, vous devrez peut-être suivre certaines valeurs spécifiques au domaine. Cela peut impliquer l'envoi de journaux, de traces ou de simples messages contenant du contenu spécifique à l'application.

Tant pour les logs que pour les traces, vous pouvez à nouveau compter sur l’écosystème OpenTelemetry. Cela vous permet d'analyser les journaux et les traces à l'aide de vos backends préférés, tels que Grafana Loki/Tempo ou la pile Elastic Observability, sans effort supplémentaire ! La messagerie est, en revanche, la fonctionnalité de base de toute plate-forme IoT raisonnable. En d’autres termes, ces approches devraient être simples à mettre en œuvre dans la plupart des scénarios.

La simplicité des journaux

Prenons par exemple une machine de récolte autonome. Vous souhaiterez peut-être suivre ses activités. Un moyen simple de procéder consiste à envoyer un journal lorsque l'activité a démarré avec des métadonnées supplémentaires.

Vous pouvez faire la même chose une fois l’activité terminée et pour d’autres événements pertinents. Essentiellement, chaque enregistrement de journal est simplement un événement structuré avec plusieurs propriétés requises. Vous trouverez ci-dessous un exemple de journal envoyé lorsque la moissonneuse démarre sa séquence d'accostage :

Outre les champs principaux, comme l'horodatage et le corps, le message peut contenir des attributs supplémentaires décrivant l'événement plus en détail. Ces éléments supplémentaires peuvent être utiles lorsque vous recherchez des bugs. Assurez-vous donc d’inclure toutes les informations importantes.

Les informations contextuelles approfondies avec les traces

Si vous souhaitez des informations un peu plus détaillées, vous pouvez également utiliser le traçage. Une trace correspond à une opération logique d'un système, et elle est implicitement définie par ses étendues. Une travée représente une unité de travail unique de cette opération. Il est défini par ses heures de début et de fin, ses attributs et éventuellement une étendue parent.

Grâce aux références parents, la trace forme un graphe orienté décrivant l'opération particulière et ses sous-programmes. De plus, les périodes peuvent contenir plusieurs événements de période décrivant un événement qui s'est produit à un moment précis.

Bien que les traces soient généralement associées à la surveillance des systèmes distribués, il est également possible d'utiliser le traçage dans les appareils IoT pour vous aider à avoir une vue d'ensemble de ce qui se passe sur le terrain. Disons que vous êtes curieux de savoir comment la moissonneuse autonome retourne à sa station d'accueil.

Voir la figure ci-dessous, où l'amarrage correspond à l'étendue racine de niveau supérieur. Tout d’abord, la moissonneuse doit localiser la station d’accueil et appelle donc une API. Cette opération correspond à un span enfant. Un exemple d'événement de travée peut être le moment où la moissonneuse a quitté le champ. Lorsque vous utilisez tous les instruments de traçage ensemble, vous pouvez avoir une vue d'ensemble du fonctionnement de l'appareil.

Retour aux sources avec des messages simples

Dans certains scénarios, l'envoi de messages structurés simples peut s'avérer plus pratique que l'utilisation des signaux OpenTelemetry. Pour revenir à l'exemple de la moissonneuse autonome, vous souhaiterez probablement suivre son emplacement.

Si vous souhaitez visualiser l'emplacement en temps réel, OpenTelemetry ne prend actuellement pas vraiment en charge un signal qui correspondrait sémantiquement à ce scénario. La correspondance la plus proche serait probablement leur API Event, qui est encore en phase expérimentale (au moment de la rédaction de cet article au premier trimestre 1). Envisagez plutôt d'envoyer le message JSON suivant :

Idéalement, la plate-forme IoT que vous utilisez devrait être capable d'analyser ces messages et de les ingérer dans la base de données appropriée de votre choix. À partir de là, vous êtes libre d’analyser et de visualiser les données selon vos besoins.

Nous avons recréé cet exemple avec la plateforme Spotflow IoT pour démontrer la simplicité. Nous mettons en place un appareil qui envoie périodiquement des messages avec sa localisation et sa vitesse à la plateforme. Ensuite, nous avons acheminé le flux de données vers notre récepteur de sortie Grafana intégré. Et c'est tout! La plateforme récupère désormais tous les messages et les place dans une base de données de séries chronologiques qui peut être interrogée dans Grafana.

Il s'agit également d'un excellent cas d'utilisation pour la visualisation Grafana Geomap. Il vous permet de tracer facilement les emplacements de vos appareils. Voir l'image ci-dessous, où nous avons utilisé Grafana pour visualiser les données reçues de l'appareil.

Faits marquants

Et c'est tout! Vous êtes maintenant prêt à configurer votre pile d'observabilité et à commencer à surveiller vos appareils IoT. Nous aimerions que cet article serve de point de départ dans le monde de l'observabilité de l'IoT. N’oubliez pas les idées clés suivantes :

  • Surveiller la transmission de données: Surveillez de près la transmission de données depuis vos appareils et soyez prêt à recevoir des alertes pour détecter rapidement toute perturbation.
  • Suivre les mesures de santé des appareils: affichez des mesures pertinentes concernant la santé de votre appareil pour garantir le bon fonctionnement.
  • Envoyer des données spécifiques à l'application via des journaux, des traces et des messages structurés: Pensez à votre domaine et au fonctionnement de l'appareil et envoyez toutes les données qui pourraient être nécessaires au futur débogage et à la surveillance en temps réel.
  • Explorez l'écosystème OpenTelemetry: Envisagez d'utiliser l'écosystème OpenTelemetry dans l'IoT, car il devient une norme d'observabilité vous offrant de nombreuses options pour les backends d'observabilité et servant divers environnements d'exécution d'appareils.
spot_img

Dernières informations

spot_img