MQTT Broker in einem Docker Container installieren

Sie können einen externen MQTT Broker nutzen oder mit wenigen Handgriffen einen MQTT Broker Container auf dem Timberwolf Server einrichten.

In diesem Unterkapitel zeigen wir die Einrichtung eines MQTT Containers auf dem Timberwolf Server

Voraussetzungen

  • Internetverbindung: Die Installation von Containern aus DockerHub - wie in diesem Beispiel - benötigt eine funktionierende Internet Verbindung die der Timberwolf Server nutzen kann, hierzu muss auch die Namensauflösung über DNS funktionieren

  • Admin Passwort: Für die Anmeldung am Portainer - der grafischen Benutzeroberfläche für Docker Container im Timberwolf Server - benötigen Sie das Admin Passwort, wie ab Werk ausgeliefert (dies befindet sich auf dem Geräteaufkleber)


Installation Eclipse Mosquitto 1.6.x als Container

Der Timberwolf Server unterstützt die Installation und den Betrieb von Docker Containern, um eigene Erweiterungen nutzen zu können. Diese Eigenschaft wird hier genutzt, um einen MQTT Broker als Container zu installieren.

Eclipse Mosquitto 1.6

Eclipse Mosquitto bietet eine leichtgewichtige Server-Implementierung des MQTT-Protokolls für einen breiten Einsatzbereich.

Mosquitto ist eine sehr schlanke Implementierung. Die ausführbare Datei liegt in einer Größenordnung von 120kB. Der Bedarf an Speicherplatz beträgt bei etwa 1.000 angeschlossenen Clients etwa 3MB RAM. Im Internet finden sich Berichte über erfolgreiche Tests mit bis zu 100.000 gleichzeitig verbundenen Clients (bei geringem Aufkommen an Nachrichten).

Wir verwenden hier die Version 1.6, weil diese ohne jede weitere Konfiguration genutzt werden kann. Neuere Version ab V 2.0 müssen konfiguriert werden, ohne eine wesentlichen Vorteil zu bieten.

Anleitung

Melden Sie sich am Timberwolf Server an und wählen Sie Container & APPs → Portainer.

 

Das Tool portainer.io wird in einem separaten Browser Tab geöffnet

Melden Sie sich bitte an:

  • Nutzername: “portainer”

  • Passwort: Das ab Werk vergebene Passwort für das Admin-Konto des Timberwolf Server, das sich auf dem Geräteetikett befindet (auch dann, wenn Sie das Passwort für das Admin-Konto im Timberwolf Server mittlerweile angepasst haben)

 

Es erscheint das Dashbord von portainer.io

Drücken Sie auf die Schaltfläche Containers


Die Container Liste wird angezeigt

Betätigen Sie die Schaltfläche + Add container


Es erscheint die Seite um einen neuen Container zu erzeugen

Geben Sie hier ein:

  1. Container Name: z.B. MQTT-Broker
    Sie können einen beliebigen Namen einsetzen, allerdings dürfen Sie nur die Zeichen a-z, A-Z, 0-9, sowie Unterstrich, Punkt und Bindestrich verwenden, Leerzeichen sind NICHT erlaubt

  2. Image Name: eclipse-mosquitto:1.6 (Bitte exakt eingeben)

  3. Port mapping: Klicken Sie auf die Schaltfläche + map additional port

  4. host: 1883 (bitte exakt eingeben)

  5. container: 1883 (bitte exakt eingeben)

  6. TCP: Bitte klicken Sie auf die Schaltfläche TCP

  7. Restart Policy: Klicken Sie ganz unten auf der Seite auf Restart policy und anschließend auf Unless stopped (damit wird bewirkt, dass ein Container von selbst startet, sofern nicht von Hand beendet wurde)

  8. Deploy: Starten Sie nun die Erstellung des Containers mit Deploy the container


Anschließend erscheint nun die Container Liste mit dem erstellten Container

Fertig. Der Container ist nun erstellt und kann ohne weitere Konfiguration genutzt werden

 

Für Experten: MacVLAN

Falls Sie MacVLAN am Timberwolf Server (auf Ethernet0) aktiviert haben, dann können Sie vom Timberwolf Server aus nur dann auf Dienste in einen Container zugreifen, wenn diese Container ebenfalls mit MacVLAN im Netz konfiguriert sind.

Hierfür ist im Portainer ein Netzwerk unter MacVLAN anzulegen und der Container anschließend mit Nutzung dieses Netzwerkes zu erstellen.


Sie können diesen MQTT Broker nun ohne weitere Konfiguration nutzen und sowohl Ihre MQTT Geräte als auch den Timberwolf Server damit verbinden

Hinweis Bitte achten Sie darauf, dass jeder MQTT Client, den Sie mit einem MQTT Gerät verbinden, eine individuelle Client ID nutzt. Würden zwei MQTT Clients (MQTT Geräte oder der Timberwolf Server) dieselbe Client ID nutzen, dann würde der eine Client den jeweils anderen abmelden. Der Broker benötigt die Client ID um die Verbindungen zu verwalten.

 

Weiter geht es hiermit: https://elabnet.atlassian.net/wiki/spaces/TSKB/pages/1598062805

 

 

 

2019 - 2023 by Elaborated Networks GmbH / Impressum / Datenschutzerklärung