Comment configurer un Broker MQTT étape par étape
Le MQTT, ou Message Queuing Telemetry Transport, est un protocole de communication entre machines qui permet l’échange de messages et de commandes entre dispositifs de manière sécurisée et simple. C’est un protocole standard largement utilisé dans la communication entre machines. Un autre domaine dans lequel il est également très présent est la connectivité IoT (Internet des Objets). Il a émergé dans les années 1990 pour remplacer le HTTP qui, bien que très populaire à l’échelle mondiale, présentait divers problèmes de sécurité et de fiabilité.
Dans ce blog, vous allez comprendre ce qu’est le protocole, comment il fonctionne et comment l’installer de la meilleure manière.
Comment fonctionne la communication dans un protocole MQTT
Dans un protocole MQTT, la publication et la réception des données sont réalisées à travers un type de serveur appelé Broker.
Toute la communication s’effectue par le biais de topics, qui sont les lieux ou adresses vers lesquels le message sera envoyé. Les dispositifs qui envoient des messages sont appelés publishers, qui publient dans ces topics. Les dispositifs qui souhaitent recevoir ces messages s’abonnent à cette adresse et sont appelés subscribers.
Ainsi, chaque fois qu’un dispositif publie un message dans un topic, tous ceux qui suivent ce topic reçoivent le message. Le Broker ne fait que cette connexion entre celui qui publie et celui qui est intéressé, il ne modifie ni ne stocke l’information, il se contente de la transmettre.
Cette forme de communication est simple, rapide et très efficace, idéale pour les applications avec capteurs, l’automatisation industrielle ou les dispositifs connectés à Internet (IoT).
Les types de brokers les plus utilisés sont Mosquitto, EMQX, HiveMQ et VerneMQ.
Prérequis
Avant de commencer la configuration d’un broker MQTT, il est important de s’assurer que certains prérequis sont remplis.
Vous aurez besoin d’un environnement avec un accès administratif au système d’exploitation, qu’il soit Linux, Windows ou autre, pour procéder à l’installation et à la configuration des services. De plus, il est essentiel que l’équipement ou le serveur dispose d’une connexion réseau stable, car le broker sera responsable de la gestion des communications entre les clients et les dispositifs.
Pour les environnements de production, il est également recommandé d’avoir une infrastructure minimale avec de bonnes performances de traitement et de mémoire, surtout si le broker doit gérer un grand volume de connexions simultanées.
Installation étape par étape
Une fois les prérequis en main, il est temps de passer à la configuration du broker MQTT. Dans ce guide, nous utiliserons Mosquitto, l’un des brokers MQTT les plus populaires et largement adoptés sur le marché, comme exemple pratique.
Le processus comprend des étapes essentielles telles que l’installation du broker, les réglages de configuration de base (port de communication, authentification des utilisateurs et autorisations d’accès), ainsi que les configurations de sécurité utilisant le chiffrement TLS/SSL.
Nous montrerons également comment réaliser des tests de publication et d’abonnement pour garantir que le broker fonctionne correctement.
Enfin, nous aborderons comment surveiller les logs et suivre l’état des connexions afin de maintenir un fonctionnement sécurisé et efficace.
Sous Linux (Ubuntu/Debian), ouvrez le terminal et exécutez les commandes suivantes :
sudo apt update
sudo apt install mosquitto mosquitto-clients
Sous Windows, accédez au site officiel de Mosquitto (https://mosquitto.org/download/) et téléchargez l’installateur compatible avec votre version du système d’exploitation. Suivez les instructions de l’assistant d’installation.
Après l’installation, il est possible de modifier le fichier de configuration principal, généralement situé dans /etc/mosquitto/mosquitto.conf (Linux) ou dans le dossier d’installation (Windows).
Les principaux réglages incluent :
Port de communication : le port par défaut est 1883 pour les connexions sans TLS ;
Création d’utilisateurs et de mots de passe : pour activer l’authentification, créez un fichier de mots de passe avec la commande :
sudo mosquitto_passwd -c /etc/mosquitto/passwd utilisateur
Ajoutez ensuite la configuration dans le fichier .conf :
allow_anonymous false
password_file /etc/mosquitto/passwd
Contrôle d’accès (ACL) : définit qui peut publier ou s’abonner à des topics spécifiques.
Pour les environnements de production, il est recommandé d’activer la communication chiffrée. Cela garantit que les données transmises ne seront pas interceptées par des tiers. Pour cela, il est nécessaire de :
Générer un certificat numérique (ou en obtenir un auprès d’une autorité de certification) ;
Ajouter les lignes suivantes dans le fichier mosquitto.conf :
listener 8883
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/server.crt
keyfile /etc/mosquitto/certs/server.key
Le port 8883 est le port standard pour les connexions MQTT sécurisées.
Une fois le broker configuré et en fonctionnement, vous pouvez tester la communication en utilisant les clients MQTT :
Pour publier un message :
mosquitto_pub -h localhost -t « test/topic » -m « Bonjour, MQTT! »
Important
Ce test doit être effectué sur le même ordinateur avec deux instances du terminal ouvertes, car l’option -h (host) utilise localhost. Autrement dit, seule la machine pourra communiquer avec elle-même.
Pour que d’autres dispositifs connectés au même réseau puissent communiquer avec le broker, ajoutez le code suivant dans le fichier « mosquitto.conf » :
listener 1883
En ajoutant ce code, le port de communication sera ouvert afin que tout dispositif avec une IP valide sur le réseau puisse se connecter au broker. Ensuite, exécutez la commande suivante dans le terminal :
mosquitto -c « Chemin\vers\mosquitto.conf » -v
Vous devez spécifier le chemin du fichier mosquitto.conf pour exécuter avec les configurations effectuées.
Une fois cela fait, le broker sera en marche, et tout dispositif présent sur le même réseau pourra se connecter en utilisant l’IP de l’ordinateur (à condition que le port ne soit pas bloqué par un pare-feu).
Pour s’abonner à un topic:
mosquitto_sub -h localhost -t « test/topic »
Si la configuration est correcte, au moment de la publication du message, celui-ci apparaîtra immédiatement dans le terminal du client abonné au topic.
Enfin, surveillez les journaux d’activité du broker pour vous assurer que tout fonctionne correctement. Sous Linux, vous pouvez accéder aux logs avec :
tail -f /var/log/mosquitto/mosquitto.log
Cette pratique aide à identifier les problèmes de connexion, les erreurs d’authentification et le comportement des clients connectés.
L’importance d’une bonne configuration
La configuration correcte d’un broker MQTT est essentielle pour garantir un flux de données sécurisé, efficace et stable dans les applications de communication industrielle, IoT et d’automatisation. Comme nous l’avons vu dans ce contenu, en quelques étapes, il est possible d’installer et de configurer un broker comme Mosquitto, d’activer l’authentification, d’appliquer le chiffrement et de surveiller les connexions de manière pratique.
En investissant du temps dans une bonne configuration et en adoptant de bonnes pratiques telles que le contrôle d’accès et la surveillance des logs, votre système sera prêt à supporter un grand volume de messages tout en garantissant l’intégrité et la fiabilité des informations transmises.
Si votre entreprise travaille avec le suivi continu de la température et de l’humidité, l’intégration de capteurs ou la communication de données critiques, maîtriser MQTT et maintenir un broker bien configuré peut faire toute la différence pour la sécurité et l’efficacité de vos processus.
Si vous avez encore des questions sur les configurations, contactez le support de NOVUS et découvrez comment mettre en place un système complet de surveillance intégré à votre broker MQTT.