Il y a 45 articles disponibles !

Installation du broker Mosquitto sur Docker

Dernière mise à jour le 24 mars 2024

Installation du broker Mosquitto sur docker

Découvrez notre tutoriel d’installation du broker MQTT Mosquitto sur Docker !

Mosquitto c’est quoi ?

https://mosquitto.org/

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

Volume

3. Ensuite, connectez vous en ssh sur votre Installation du broker Mosquitto sur Docker.

docker exec -it mqtt sh

console

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

Edition config

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

Installation du broker MQTT Mosquitto sur Docker

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.



7 réponses à “Installation du broker Mosquitto sur Docker”

  1. Avatar de Jo
    Jo

    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

    1. Avatar de Stéphane

      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
      Client disconnected 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 ».

  2. Avatar de charly
    charly

    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.

    1. Avatar de Stéphane

      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 ?

  3. Avatar de charly
    charly

    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 ».

    1. Avatar de charly
      charly

      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 running

      1. Avatar de Stéphane

        Mosquitto 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 true

        Tu pouras te connecter sans utilisateur ni mot de passe.

Laisser un commentaire

Technologie Geek

bonjour !

Inscrivez-vous pour recevoir nos nouveaux articles !

Nous ne spammons pas ! Consultez notre politique de confidentialité pour plus d’informations.

Bienvenue sur mon blog Technologie Geek ! Je m'appelle Stéphane, je suis chef d'entreprise et Je suis un passionné de technologie, découvrez mes articles et mes test sur l'informatique, la domotique ainsi que la virtualisation.

Je crois que chacun peut apprendre quelque chose de nouveau chaque jour. Partager ses connaissances peut enrichir la vie des autres. C’est pourquoi j’ai créé ce blog pour offrir à notre communauté une plateforme pour partager des idées, des opinions et des expériences.