Mosquitto MQTT Server ist ein Message Broker, der über das MQTT-Protokoll arbeitet. MQTT ist ein leichtgewichtiges Messaging-Protokoll, das ISO-Standard für die Verwendung auf dem TCP/IP-Protokoll ist. Es wird hauptsächlich für die Kommunikation mit Geräten des Internets der Dinge verwendet. Wir werden Mosquitto auf einem Ubuntu 16.04-Server installieren und Nachrichten von MQTT-Spionagesoftware senden. Mosquitto ist ein Eclipse-Projekt und wird unter der EDL-Lizenz vertrieben. Also fangen wir an.
Mosquitto-MQTT-Server aus Quelle kompilieren
Um Mosquitto zu installieren, müssen wir die folgenden Schritte ausführen. Aktualisieren Sie zuerst die Quellenliste und erhalten Sie die Abhängigkeiten
apt update
apt-get install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc
Mosquitto-Benutzer hinzufügen, da er standardmäßig als Nicht-Root ausgeführt wird.
adduser mosquitto
Der Einfachheit halber geben wir diesem Benutzer sudo-Rechte, da wir den Rest des Installationsvorgangs als dieser Benutzer durchführen
usermod -aG sudo mosquitto
Dann melden wir uns als dieser Benutzer an und wechseln in sein Home-Verzeichnis
su mosquitto
cd
Als nächstes werden wir den Mosquitto-Quellcode herunterladen, die neueste Version ist zum Zeitpunkt des Schreibens 1.4.9, aber ich schlage vor, dass Sie auf der Download-Seite nachsehen, ob es eine neue Version gibt. Laden Sie also die neueste Version herunter
wget https://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
Entpacken wir es und cd in das Verzeichnis
tar xvzf mosquitto-1.4.9.tar.gz
cd mosquitto-1.4.9/
Und dann kompilieren und installieren wir die Software
make && sudo make install
Mosquitto-MQTT-Server konfigurieren
Nachdem die Installation abgeschlossen ist, müssen wir ein Passwort für den neuen Benutzer erstellen.
sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-spy
Sie werden aufgefordert, ein Passwort für den neuen mqtt-spy-Benutzer zu erstellen, den wir verwenden, um eine Verbindung vom Client herzustellen. Das ist anders als der Mosquit-Benutzer, dh der Systembenutzer zum Ausführen des Mosquitto-Servers. Wir müssen diesem Mosquitto-Benutzer Berechtigungen für alle relevanten Verzeichnisse hinzufügen
sudo mkdir /var/lib/mosquitto/
sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/
Als nächstes müssen wir eine Konfigurationsdatei für den Mosquitto-MQTT-Server erstellen, also verwenden wir nano, um eine neue Datei zu erstellen
sudo nano /etc/mosquitto/mosquitto.conf
Dort können Sie diese einfügen
persistence true
persistence_location /var/lib/mosquitto/
persistence_file mosquitto.db
log_dest syslog
log_dest stdout
log_dest topic
log_type error
log_type warning
log_type notice
log_type information
connection_messages true
log_timestamp true
allow_anonymous false
password_file /etc/mosquitto/pwfile
Die Konfiguration scheint lang zu sein, aber wir haben ausführlichere Protokolle und eine Passwortdatei hinzugefügt.
Nachdem die Konfiguration gespeichert wurde, führen wir ldconfig
aussudo ldconfig
Lassen Sie uns eine systemd-Unit-Datei hinzufügen
sudo nano /etc/systemd/system/mosquitto.service
Fügen Sie dies dort ein:
[Unit]
Description=Insite MQTT Broker
[Service]
ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always
[Install]
WantedBy=multi-user.target
Lassen Sie uns den Dienst starten
sudo systemctl start mosquitto.service
Und überprüfen Sie seinen Status
systemctl status mosquitto.service
Um es beim Booten starten zu lassen, führe diesen Befehl aus
sudo systemctl enable mosquitto.service
MQTT-Spy einrichten und verbinden
MQTT-Spy ist ein Java-basierter Client, den wir verwenden, um eine Verbindung zum MQTT-Server herzustellen. Sie können es von github bekommen, aber beachten Sie, dass Sie Oracle JDK installiert haben müssen. Es funktioniert NICHT mit OpenJDK. Das erste, was Sie nach dem Start von MQTT-Spy tun müssen, ist, eine neue Verbindung herzustellen. Sie fügen Ihre Server-IP und den Standardport 1883 hinzu.
Dann fügen Sie das Passwort und den Benutzernamen hinzu, die wir zuvor erstellt haben, in meinem Fall ist es mqtt-spy und das Passwort ist password.
Dann können wir das Terminalfenster auf dem Server öffnen und den folgenden Befehl eingeben
mosquitto_sub -v -t 'linoxide/topic' -u mqtt-spy -P password
Um Flags zu erklären:-v steht für Ausführlichkeit, -t steht für Thema, gefolgt von Thema in Anführungszeichen, -u steht für Benutzer und -P ist Passwort. Nach Eingabe dieses Befehls scheint es zu hängen, aber dann müssen wir MQTT-Spy verwenden, um ein neues Thema zu erstellen und eine Nachricht an dasselbe Thema zu senden, wie auf dem Bild unten.
Schlussfolgerung
Wir haben den Mosquitto MQTT-Server erfolgreich installiert, der es Ihnen ermöglicht, ein Netzwerk verbundener IoT-Geräte über das MQTT 3.1-Protokoll zu haben. Wir haben es unter Ubuntu auf einem klassischen x86-PC installiert, den die meisten Leute für Entwicklungs- und Lernzwecke verwenden. Für echtes IoT benötigen Sie ein ARM-Gerät. Das ist alles für diesen Artikel, danke fürs Lesen.