Surveillance détaillée de l’activité du broker MQTT EMQ X via Grafana_solutions open source

Collecte & Surveillance des données IoT | Les solutions Open Source au cœur de l’écosystème TEKIN

La donnée, matière première de l’IOT

De la montre à la voiture en passant par les chauffages et autres mobiliers, le marché des objets connectés a considérablement augmenté ces dernières années.

 

C’est sur ce marché que Tekin a établi son activité depuis 2014. Sa mission première étant de faciliter l’entrée de l’Internet des objets (IoT) dans le monde des entreprises. Son cœur de métier est le Développement électronique et logiciel (Embarqué, IHM et Applications) ainsi que le Conseil et l’accompagnement à l’innovation au travers de l’IoT.

 

De ce fait, la mise au point de divers capteurs couplé à la collecte et au traitement des données émisent par ces derniers est au cœur de l’activité de l’entreprise. C’est à ce moment précis que rentre en jeu diverses solutions Open Source reconnues. Elles facilitent les phases de collecte et de visualisation de l’activité de ces capteurs.

Itinéraire simplifié d’une donnée émise par un objet connecté

Collecte d’une donnée via le broker MQTT EMQ X_solutions open source

Collecte d’une donnée via le broker MQTT EMQ X

Le but de cet article n’est pas de faire un exposé sur le fonctionnement du protocole MQTT permettant aux données d’être collectées. Le schéma ci-dessus est volontairement simplifié pour facilement comprendre le cycle de vie d’une donnée envoyée par un capteur.

 

Toute donnée naît d’un device. Cette dernière peut prendre différentes formes et représenter différents aspects de la vie quotidienne (niveau de remplissage d’une cuve, niveau d’ouverture d’un volet roulant, etc…).

 

Ces informations sont envoyées à un serveur de messagerie plus communément appelé “broker”. Celui-ci peut être vu comme un aiguilleur du ciel. Il répartit les messages contenant la donnée émise par un capteur aux différentes parties de l’architecture intéressées par ces informations (notifications, sauvegarde sous forme de séries temporelles, etc…).

 

C’est ce broker (EMQ X) qui sera présenté dans la suite de cette vue d’ensemble ainsi que l’outil Grafana permettant de visualiser sous une forme graphique l’activité du serveur de message EMQ X.

EMQ X, pièce centrale de l’architecture

Comme présenté ci-dessus, le broker est une brique essentielle. Il fait la jonction entre les capteurs et les différents microservices chargés du traitement des données émisent par ces derniers.

 

EMQ X est un serveur de messagerie MQTT distribué entièrement Open Source. Il est hautement évolutif et disponible pour les applications IoT, et peut potentiellement gérer des millions de clients simultanés.

Ce logiciel offre tout un éventail de fonctionnalités, facilitant ainsi différentes tâches. C’est notamment le cas de la gestion des clients par le biais d’une API (capteurs, microservices, etc…). La surveillance des messages et des sujets de publications y est également disponible.

Vue d’ensemble du broker MQTT EMQ X_solutions open source

Vue d’ensemble du broker MQTT EMQ X

La gestion des clients connectés offre la possibilité de lister, trier et surveiller les différents acteurs identifiés auprès du serveur de messagerie. Il est également possible de forcer la déconnexion d’un client particulier ainsi que visualiser toutes les informations relatives à ce dernier (quantité d’information envoyée, date de connexion, etc…).

Gestion et vue d’ensemble des clients connectés_solutions open source

Gestion et vue d’ensemble des clients connectés

La surveillance des messages entrants et sortants reste assez sommaire. Elle permet cependant de visualiser rapidement l’activité de ces derniers. On peut notamment consulter le nombre de messages perdus ainsi que le QoS (notion du protocole MQTT) de chacun d’entre eux. Il est possible de surveiller l’activité de façon plus pointu grâce au logiciel Grafana présenté dans le point suivant.

Vue d’ensemble des métriques concernant les topics MQTT__solutions open source

Vue d’ensemble des métriques concernant les topics MQTT

Visualisation et monitoring avancé avec Grafana

Grafana est une solution Open Source sous forme d’application multiplateforme d’analyse et de visualisation interactive. Elle fournit des diagrammes, des graphiques et un système d’alertes. Il est possible de générer les graphiques grâce à différentes sources comme Prometheus, InfluxDB, Elasticsearch, etc…

 

Dans notre solution, la source de données est fournie par le couple Prometheus/Pushgateway. Il fait l’intermédiaire entre le serveur de messagerie EMQ X et la solution de visualisation Grafana.

 

Cette dernière, donne ensuite la possibilité de créer des “dashboards” personnalisés. Ils permettent de surveiller les différentes métriques importantes, permettant ainsi une surveillance précise de certains points clés déterminés en amont.

 

Dans notre cas, nous disposons de deux dashboards permettant respectivement la surveillance du serveur de messagerie au sens physique (CPU, RAM, Threads, Processus, etc…) ainsi qu’un autre, surveillant la partie métier concernant les capteurs et leur messages.

 

Ce deuxième dashboard nous permet en effet de surveiller plus finement le nombre de clients connectés (capteurs, microservices, etc…) ainsi que le nombre de sessions actives. D’autres indicateurs clés sont suivis comme par exemple: le nombre de sujets de publications actifs, le nombre de messages en attente d’aiguillage vers les services adéquats mais aussi entre autres le nombre de messages perdus.

Toutes ces données sont représentées sous la forme de séries temporelles. Cela permet une vision précise d’un indicateur à un instant T. Cet aspect est très important dans la résolution de certains problèmes afin de pouvoir déduire certaines causes extérieures.

Surveillance détaillée de l’activité du broker MQTT EMQ X via Grafana_solutions open source

Surveillance détaillée de l’activité du broker MQTT EMQ X via Grafana

Avantages et inconvénients des solutions Open Source

Il existe pléthore de solutions Open Source (logiciels) permettant d’assumer une tâche précise. Certains la réalise mieux que d’autres, ici n’est pas le débat de savoir quel est l’ultime logiciel pour résoudre tel et tel problème à l’image de la guerre des OS et des éditeurs de code.

 

Tout l’enjeu est plutôt de sélectionner le meilleur candidat afin de répondre le mieux possible aux besoins de notre entreprise.

 

Parmi les avantages, il est indéniable que ce genre de solutions très pointues est un énorme gain de temps. Il serait en effet difficile d’allouer les ressources et compétences nécessaires pour réaliser un équivalent maison.

 

En ce qui concerne les inconvénients, la contrepartie est qu’il est assez difficile de modifier le comportement du logiciel en profondeur sous peine de se retrouver à gérer un fork ainsi que la difficulté voire l’impossibilité d’intégrer les nouvelles fonctionnalités ou les patchs de sécurité venant du logiciel d’origine.

 

Il est également important de vérifier certains critères concernant l’état de santé du logiciel. Il s’agit notamment de la date des dernières modifications, le nombre de personnes contributrices et aussi plus subjectivement le nombre de personnes suivant le projet, etc…

 

Les solutions Open Source (logiciels libres) occupent une place dominante au sein de l’écosystème Tekin. Il est important de comprendre qu’un logiciel libre ne couvrira sans doute pas toujours entièrement nos besoins. De plus, l’effort à fournir afin de combler un manque sera parfois impossible car trop chronophage.

 

Le choix final repose donc sur une analyse pragmatique d’évaluation des bénéfices/risques. Cela concerne notamment le temps, la prise en main de la solution ainsi que les potentielles modifications à effectuer dans le futur.

 

Pour conclure, l’Open Source est un écosystème extrêmement vaste où se côtoie souvent le meilleur comme le “pire”. Chacun à donc pour mission d’évaluer correctement ses besoins afin de prendre les meilleures décisions possibles.

 

Il est tout de même important de souligner que cet écosystème occupe aujourd’hui une place gigantesque dans le monde informatique. Il facilite tous les jours la vie de millions de développeurs tout autour du globe.


Vous avez besoin d’un complément d’information ? Vous avez une idée de projet ? Parlons-en !


Qui sommes-nous ?

TEKIN est une société d’ingénierie, spécialisé dans le développement de solutions connectées et IOT sur-mesure et sans-couture :


  • Conception et développement technique : électronique – transmission de données – plateformes – applications PC / Web / IoS & Android
  • Conseil et accompagnement : Clarification de projet – gestion de projet – audit technique et expertise (IoT / embarqué / sécurité IoT)
  • Accompagnement des collectivités sur le déploiement de réseaux de capteurs