Mosquitto 2.0 MQTT Broker mit Management Dashboard
Q: Mosquitto bietet jetzt ein Management-Dashboard mit Version 2. Wie kann ich den Broker installieren und mit meiner Kamera verwenden?
A: Der einfachste Weg die gesamte Plattform zu installieren, ist die Verwendung des offiziellen Docker basierten Installer-Images cedalo/installer
, das man aus dem Docker Hub herunterladen kann.
Das Installationsprogramm führt Sie durch den Installationsprozess und lässt Sie auswählen, welche Komponenten Sie installieren möchten: Eclipse Mosquitto, Eclipse Streamsheets, das Management Center oder Kombinationen davon.
In den folgenden Abschnitten wird beschrieben, wie Sie die Docker-basierte Installation unter Linux durchführen - aber die Installation unter Windows und macOS ist praktisch identisch.
- Docker Installation
- Verwenden Sie das Installationsprogramm
- Starten Sie Mosquitto
- Öffnen Sie die Anwendungen
- Mosquitto Dashboard
Docker Installation
Wenn Sie dies noch nicht getan haben, installieren Sie Docker für Ihre Linux-Plattform (siehe Installationsanleitung hier). Docker ist zum Beispiel verfügbar für Centos, Debian, Fedora oder Ubuntu.
Verwenden Sie das Installationsprogramm
Für eine Installation unter Linux verwenden Sie das Installer-Image mit dem Tag 2.0-linux
:
docker run -it -v ~/mosquitto:/cedalo cedalo/installer:2-linux
Im folgenden Dialog können Sie (mit der Leertaste) auswählen, welche Komponenten installiert werden sollen:
Select what to install › - Space to select. Return to submit
â—‰ Management Center for Eclipse Mosquitto
â—‰ Eclipse Streamsheets
â—‰ Eclipse Mosquitto 2.0
â—¯ Eclipse Mosquitto 1.6
Wenn Sie die zu installierenden Komponenten ausgewählt haben, drücken Sie die Eingabe-Taste, wodurch der Installationsvorgang gestartet wird. Während des Installationsvorgangs werden die folgenden Dateien im Installationsverzeichnis angelegt:
~/mosquitto
├── docker-compose.yml # Docker Compose Datei
├── mosquitto #
│ ├── config # Konfiguration für Mosquitto
│ ├── data # Daten Verzeichnis für Mosquitto
├── start.sh # Start Skript
├── stop.sh # Stop Skript
├── streamsheets #
│ ├── init.json # Konfiguration für Streamsheets
├── update.sh # Update Skript
Starten Sie Mosquitto
Um alles zu starten, was Sie installiert haben, verwenden Sie einfach die Datei start.sh
.
cd ~/mosquitto
sh start.sh
Öffnen Sie die Anwendungen
Wenn alles korrekt installiert und gestartet ist, sollten die Anwendungen unter den folgenden URLs verfügbar sein:
- Eclipse Mosquitto:
mqtt://localhost:1883
- Eclipse Streamsheets Web UI:
http://localhost:8081
- Management Center Web UI:
http://localhost:8088
Eclipse Streamsheets Standard Login
admin/1234
Mosquitto Dashboard
Öffnen Sie die folgende URL innerhalb Ihres Webbrowsers http://localhost:8088
und Sie werden vom Broker-Dashboard begrüßt. Wechseln Sie auf die Client-Seite und klicken Sie auf die Schaltfläche Plus unten rechts, um einen neuen Client hinzuzufügen:
Debugging
Ich möchte damit beginnen, ein Debugging-Tool - z.B. MQTT.fx, MQTT Explorer usw. - hinzuzufügen, mit dem ich sehen kann, welcher Datenverkehr von meinem Broker verarbeitet wird. Ich werde das MQTT.fx Tool verwenden. Um mich mit meinem Mosquitto Broker verbinden zu können, muss ich zunächst einen Benutzer für den neuen Client anlegen:
Wählen Sie Ihre Client-ID und Ihr Login frei und klicken Sie auf Speichern, um den neuen Client hinzuzufügen. Nun müssen wir unserem neuen Client die Berechtigung geben, MQTT-Topics zu abonnieren/veröffentlichen - dies kann im Menü Rollen erfolgen. Klicken Sie auf die Schaltfläche Plus, um eine neue Rolle hinzuzufügen:
Zunächst müssen wir die Rolle - ich habe sie einfach mqttfx
genannt - anlegen, indem wir auf Speichern klicken:
Dies bringt Sie zurück zur Rollenliste - klicken Sie auf die Rolle "mqttfx", um sie erneut zu bearbeiten. Nun haben Sie einen weiteren Reiter namens ACLS. Hier müssen wir Mosquitto mitteilen, auf welche MQTT-Themen der Client mit dieser Rolle hören darf. Zum Debuggen wähle ich den Platzhalter #
- was alle bedeutet:
Kehren Sie nun zu Ihrer Liste der Clients zurück und weisen Sie Ihrem MQTT.fx-Client die Rolle mqttfx
zu:
Jetzt müssen wir MQTT.fx mit den gleichen Informationen konfigurieren:
Versuchen Sie, eine Verbindung zu Mosquitto herzustellen und eine Nachricht zu veröffentlichen, um zu sehen, ob alles korrekt eingerichtet wurde:
Wechseln Sie im Broker-Dashboard zum Themenbaum und überprüfen Sie, ob Ihr Test empfangen wurde:
Kamera hinzufügen
Beginnen Sie mit der Überprüfung Ihrer MQTT-Konfiguration in Ihrer Kamera. Wir wollen unseren neuen Mosquitto-Broker auf Port 1883
hinzufügen. Wir müssen auch eine Client-ID und Authentifizierung hinzufügen, die wir später verwenden werden, um den neuen Client auf unserem Broker einzurichten:
Klicken Sie in unserem Broker-Dashboard auf das "Plus", um einen neuen Client hinzufügen und geben Sie die Authentifizierung und die Client-ID ein, die Sie in Ihrer Kamera hinterlegt habe
Mit einem Klick auf Speichern gelangen Sie zurück in die Client-Liste. Wechseln Sie nun auf die Registerkarte Rollen und klicken Sie auf die Schaltfläche Plus, um eine neue Rolle für Ihre Kamera hinzuzufügen:
Auch hier müssen wir zuerst die Rolle erstellen, bevor wir mit der Bearbeitung ihrer Berechtigungen beginnen können. Klicken Sie also auf Speichern und geben Sie sie erneut auf bearbeiten, um die ACLS-Einstellungen zu hinterlegen. Hier möchte ich sicherstellen, dass diese Kamera nur Topics empfängt, die für sie bestimmt sind. In meiner MQTT-Konfiguration (innerhalb der Kamera-WebUI) habe ich den MQTT-Präfix auf cameras
und die MQTT-ID auf 116
gesetzt. Also werde ich das Veröffentlichungs- und Abo-Muster auf cameras/116/#
setzen:
Zurück in der Client Liste müssen Sie die neue Rolle jetzt noch zuweisen, damit Ihre Kamera MQTT-Topics veröffentlichen und abonnieren kann:
Kehren Sie zum Themenbaum zurück. Sie sollten nun alle (retained) Topics sehen, die von Ihrer Kamera veröffentlicht wurden:
Sie können nun alle weiteren Kameras hinzufügen und Mosquitto 2 als zentralen MQTT-Broker für Ihr Smarthome verwenden!