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:
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 erlaubtImage Name: eclipse-mosquitto:1.6 (Bitte exakt eingeben)
Port mapping: Klicken Sie auf die Schaltfläche
+ map additional port
host: 1883 (bitte exakt eingeben)
container: 1883 (bitte exakt eingeben)
TCP: Bitte klicken Sie auf die Schaltfläche
TCP
Restart Policy: Klicken Sie ganz unten auf der Seite auf
Restart policy
und anschließend aufUnless stopped
(damit wird bewirkt, dass ein Container von selbst startet, sofern nicht von Hand beendet wurde)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
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.
Hinweise und erweiterte Konfigurationen
MacVLAN
Sofern Sie den Timberwolf Server mit einer MacVLAN Netzwerk-Konfiguration betreiben, beachten Sie bitte folgendes:
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.
Authentifizierung gegenüber dem MQTT Broker
Damit der MQTT Broker mit Authentifizierung genutzt werden kann, ist ein Docker Volume mit entsprechender Konfigurationsdatei anzulegen.
Für Experten: Mosquitto MQTT Broker V 1.6 mit Authentifizierung
Falls Sie möchten, dass sich der Timberwolf Server und alle MQTT Geräte sich am MQTT Broker authentifizieren, dann ist der MQTT Broker hierfür einzurichten.
Bitte beachten Sie, dass sowohl der Timberwolf Server als auch Ihre MQTT Geräte dann auch so konfiguriert sind, den eingetragenen Kontonamen und das Passwort bei der Anmeldung zu übermitteln.
Eine ausführliche Anleitung hierzu im Forum: [TIPP] Quick How-To: username/password für mosquitto MQTT broker - ElabNET Technik Forum
Weiter geht es hiermit: MQTT Subsystem und Verbindung zum MQTT Broker einrichten