Dernière mise à jour le 24 mars 2024
Découvrez notre tutoriel d’installation du broker MQTT Mosquitto sur Docker !
Mosquitto c’est quoi ?
Pour commencer, bonjour et bienvenue sur mon blog Technologie Geek ! Voyons ensemble l’installation du broker MQTT Mosquitto sur Docker. En premier lieu Mosquitto est un broker MQTT open source pour la communication machine à machine (M2M) et l’Internet des objets (IoT). Ensuite il permet aux appareils de communiquer entre eux de manière efficace et fiable.
De même avec Mosquitto, vous pouvez mettre en place des réseaux d’appareils IoT et les faire communiquer entre eux de manière sécurisée. Enfin Mosquitto prend en charge les protocoles MQTT et MQTT-SN pour la communication à faible consommation d’énergie.
En outre, Mosquitto est facile à installer et à configurer. Par ailleurs il peut être utilisé sur une variété de plateformes. Ordinateurs de bureau, les serveurs et les périphériques embarqués. Il est compatible avec les langages de programmation populaires tels que C, C++, Python et Java.
En sommes, Mosquitto offre des fonctionnalités avancées pour la gestion des messages MQTT. Rétention des messages, la publication et la souscription à des thèmes, la sécurité de la communication et la mise en place de ponts entre les brokers.
En outre, Mosquitto est largement utilisé dans les applications IoT, y compris la maison intelligente, la gestion de l’énergie, la santé connectée, les villes intelligentes et l’agriculture intelligente.
En résumé, Mosquitto est un broker MQTT efficace et facile à utiliser pour la communication machine à machine et l’Internet des objets. Si vous êtes un développeur ou une entreprise cherchant à implémenter des réseaux IoT, Mosquitto est certainement une solution à considérer.
Prérequis pour l’installation de Mosquitto sur Docker :
- En premier lieu une installation de Debian.
- Ensuite une installation de Docker.
- Enfin Portainer installer sur Docker pour l’utilisation du format docker-compose.
Installation du broker MQTT Mosquitto sur Docker :
- Pour débuter, aller sur la page d’administration de Portainer.
- Ensuite, sélectionner votre environnement « local ».
- Puis, cliquer sur « Stacks ».
- Finalement, cliquer sur « add Stack ».
1. Premièrement, dans « Name » taper le nom de votre Stack. Ici ce sera « mqtt ».
2. Puis, dans la partie « Web editor », coller le code ci-dessous :
version: "3.8"
services:
mosquitto:
image: eclipse-mosquitto
container_name: mqtt
restart: always
volumes:
- config:/mosquitto/config
- data:/mosquitto/data
- log:/mosquitto/log
ports:
- 1883:1883
- 9001:9001
volumes:
config:
data:
log:
3. Ensuite, pour déployer votre broker Mosquitto sur Docker, en bas de la page appuyer sur le bouton « Deploy the stack », puis patienter.
Explication du code :
- Version: ‘3.8’ est la version du moteur Docker. Connectez vous en ssh et taper « docker -v ». En suite pour plus d’info aller à page Docker versioning.
- services: Démarre un nouveau service.
- mosquitto: Est le nom du service.
- image: Est le lien vers l’image utilisée. Rendez-vous sur Docker hub.
- container_name: Est le nom du conteneur.
- restart: Lorsque le conteneur est stoppé, nous le redémarrons toujours.
- volumes: Sont vos volumes pour la persistance des données.
- ports: Nous exposons les ports 1883 et 9001 de notre conteneur.
Création d’un utilisateur :
1. Maintenant que votre conteneur fonctionne, vous devez créer un utilisateur et un mot de passe. Pour cela connectez vous en ssh sur notre serveur.
2. Rendez vous dans le volume « config » de votre conteneur. Vous trouverez le chemin de votre volume sur Portainer dans l’onglet « volume » puis cliquez sur le nom du volume.
cd /var/lib/docker/volumes/mqtt_config/_data
3. Ensuite, connectez vous en ssh sur votre Installation du broker Mosquitto sur Docker.
docker exec -it mqtt sh
4. Puis, vous devez créer votre utilisateur « admin » et définir son mot de passe.
mosquitto_passwd -c mosquitto/config/mqtt_passwd admin
5. Vous pouvez taper exit pour sortir de la console ssh de votre conteneur. Ensuite, éditer le fichier « mosquitto.conf » dans le volume « config » avec le code suivant.
nano mosquitto.conf
6. puis, pour terminer l’installation du broker Mosquitto sur Docker collez le code ci-dessous.
listener 1883
listener 9001
protocol websockets
persistence true
persistence_location /mosquitto/data
allow_anonymous false
password_file mosquitto/config/mqtt_passwd
7. En dernier lieu, sauvegardé votre fichier et redémarré votre conteneur. Pour tester votre broker Mosquitto, vous pouvez télécharger MQTT Explorer et essayer de vous connecter.
-
Comment installer ioBroker sur Docker -
Home Assistant sur votre NSPanel Pro -
Flasher le NSPanel avec Tasmota et Lovelace-ui -
Un assistant vocal intégré à Home Assistant -
Flash Sonoff Zigbee Bridge Pro -
Installer Home Assistant sur Proxmox
7 réponses à “Installation du broker Mosquitto sur Docker”
bonjour,
Tes tutos sont super, grâce à toi, j’ai réussit à installer sans pb Docker, HA, Node-Red, z2m et Gladys. Donc merci. Mais je sèche sur Mosquitto. Après l’installation, Chromium (et firefox) me retourne un :
ERR_EMPTY_RESPONSE ou ERR_CONNECTION_RESET selon l’adresse que je rentre. Et les autres conteneurs ne le trouve pas non plus.le log de Portainer me signal :
Client disconnected due to protocol error.tu saurais d’où vient le pb? j’ai désinstallé et réinstallé plusieurs fois, en mode console ou en changeant le port, rien à faire. merci
Bonjour Jonathan,
Peut-tu préciser Chromium (et firefox) me retourne un : ERR_EMPTY_RESPONSE ou ERR_CONNECTION_RESET ?
Comment essayes-tu de te connecter ?Dans les logs de portainer tu as un messages :
New connection from « adresse ip du pc d’où tu te connecte » on port 1883
Clientdisconnected due to protocol error. J’ai les mêmes messages lorsque je me connecte aux logs de mon conteneur dans Portainer ce n’est rien.
Dans la liste des conteneurs dans « Published Ports » as-tu « 1883:1883 9001:9001 ».
Bonjour,
Super tuto, tu as un site au poile pour moi qui est un noub en développement.
Pourrais tu me donner un coup de main, j’ai suivie ce tuto à la lettre, mais j’ai l’impression que le brocker MQTT ne fonctionne pas, dans le MQTT explorer je n’arrive pas a me connecter sur le brocker (message : disconnected from server) et rien d’autre.
j’ai aussi Home assistant, mais la c’est pareil des que j’ajoute une intégration MQTT, j’ai un echec de connexion.Peux tu m’aider?
Cordialement.
Bonjour Charly,
Dans la liste des conteneurs dans Portainer, dans la colonne Published Ports as-tu 1883:1883 9001:9001.
Ensuite, dans la colonne Quick Actions tu peut accéder au logs de ton conteneur, que disent-ils ?
merci pour ta réponse.
Oui j’ai bien les ports 1883:1883 9001:9001.
voici le Logs
1711309486: mosquitto version 2.0.15 starting
1711309486: Config loaded from /mosquitto/config/mosquitto.conf.
1711309486: Starting in local only mode. Connections will only be possible from clients running on this machine.
1711309486: Create a configuration file which defines a listener to allow remote access.
1711309486: For more details see https://mosquitto.org/documentation/authentication-methods/
1711309486: Opening ipv4 listen socket on port 1883.
1711309486: Opening ipv6 listen socket on port 1883.
1711309486: Error: Address not available
1711309486: mosquitto version 2.0.15 running
1711309757: mosquitto version 2.0.15 terminating
1711309757: mosquitto version 2.0.15 starting
1711309757: Config loaded from /mosquitto/config/mosquitto.conf.
1711309757: Error: Unable to open pwfile « mosquitto/config/mqtt_passwd# Config file for mosquitto ».
1711309757: Error opening password file « mosquitto/config/mqtt_passwd# Config file for mosquitto ».je viens de recommencé et cette fois le logs est :
1711311430: mosquitto version 2.0.15 starting
1711311430: Config loaded from /mosquitto/config/mosquitto.conf.
1711311430: Starting in local only mode. Connections will only be possible from clients running on this machine.
1711311430: Create a configuration file which defines a listener to allow remote access.
1711311430: For more details see https://mosquitto.org/documentation/authentication-methods/
1711311430: Opening ipv4 listen socket on port 1883.
1711311430: Opening ipv6 listen socket on port 1883.
1711311430: Error: Address not available
1711311430: mosquitto version 2.0.15 running
1711311549: mosquitto version 2.0.15 terminating
1711311550: mosquitto version 2.0.15 starting
1711311550: Config loaded from /mosquitto/config/mosquitto.conf.
1711311550: Starting in local only mode. Connections will only be possible from clients running on this machine.
1711311550: Create a configuration file which defines a listener to allow remote access.
1711311550: For more details see https://mosquitto.org/documentation/authentication-methods/
1711311550: Opening ipv4 listen socket on port 1883.
1711311550: Opening ipv6 listen socket on port 1883.
1711311550: Error: Address not available
1711311550: mosquitto version 2.0.15 runningMosquitto démarre mais ne trouve ou ne charge pas ton fichier de configuration « mosquitto.conf ».
Est-il créer et est-il dans le bon dossier ?Si oui essaye la configuration suivante :
listener 1883
listener 9001
protocol websockets
persistence true
persistence_location /mosquitto/data
allow_anonymous trueTu pouras te connecter sans utilisateur ni mot de passe.
Laisser un commentaire