MQTT Protokoll: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
Zeile 27: Zeile 27:
 
;Praktische Anwendung:
 
;Praktische Anwendung:
 
* Ein Beispiel ist ein Temperatursensor, der Temperaturen in Fahrenheit misst und nach Konvertierung in Celsius wieder publiziert.
 
* Ein Beispiel ist ein Temperatursensor, der Temperaturen in Fahrenheit misst und nach Konvertierung in Celsius wieder publiziert.
 +
Hier ist eine Zusammenfassung und ein weiterführendes Skriptbeispiel basierend auf dem Artikel aus dem Linux-Magazin:
 +
 +
;Einsatz von MQTT für Admins:
 +
* MQTT bietet mit dem Last Will and Testament (LWT) und dem Retained-Flag nützliche Funktionen, um den Zustand von Clients zu überwachen und zu verwalten.
 +
* MQTT erleichtert das Monitoring von Systemen und Prozessen, indem es regelmäßige Statusmeldungen über einfache Publish-Befehle in Skripten ermöglicht.
 +
 +
;MQTT Bridge Funktion:
 +
* MQTT Bridges ermöglichen die sichere Anbindung von Geräten ohne TLS durch Weiterleitung von Nachrichten an einen sicheren Broker.
 +
 +
;Clustering und Redundanz:
 +
* Einige MQTT Broker wie Vernemq und Hivemq bieten Clustering, was die Redundanz und somit die Zuverlässigkeit erhöht.
 +
 +
;Beispiel eines Monitoring-Skripts:
 +
```sh
 +
#!/bin/sh
 +
source mqttfuncs.sh
 +
mqtt Start
 +
# for ... # lange Schleife
 +
mqtt "verarbeite jetzt xyz `date`"
 +
# done
 +
mqtt "So, jetzt ist Schluss"
 +
```
 +
Dieses Skript demonstriert, wie MQTT zur Überwachung langer Prozesse verwendet werden kann, indem es regelmäßige Updates über MQTT sendet.

Version vom 14. April 2024, 08:18 Uhr

Grunsätzliches

Entwicklung und Zweck
  • MQTT wurde von IBM als "Message Queueing Telemetry Transport" entwickelt und ist besonders für das IoT geeignet.
Protokollart
  • MQTT ist ein Publish/Subscribe-Protokoll, bei dem sich Clients mit einem Broker verbinden, um Nachrichten zu senden oder zu empfangen.
Ports und Kommunikation
  • Nutzt TCP-Port 1883 und TLS-TCP-Port 8883, reduziert die Notwendigkeit von Polling, was Bandbreite spart und die Latenz minimiert.
Client und Broker Beziehung
  • Die Inhalt der Nachrichten ist dem Broker unbekannt; seine Aufgabe endet mit der Zustellung der Nachricht.
Topics und Nachrichtenhandling
  • Nachrichten sind mit Topics verbunden, die wie hierarchische Pfade strukturiert sind und Wildcards für flexible Abonnements unterstützen.
Payloads und Daten
  • Unterstützt bis zu 256 MByte große Payloads, häufig verwendet für einfache Datenstrings oder JSON-verpackte Daten.
Letzter Wille und Retained-Flag
  • Ermöglicht das Setzen von Nachrichten, die gespeichert und bei Bedarf an Subscriber gesendet werden.

Weiter

Entwicklung und Zweck
  • MQTT, entwickelt von IBM, dient als effizientes Kommunikationsprotokoll, besonders für IoT-Anwendungen.
LWT (Last Will and Testament)
  • Ermöglicht Clients, Nachrichten für den Fall eines unerwarteten Ausfalls zu hinterlegen, die dann vom Broker veröffentlicht werden.
Retained-Flag
  • Wird genutzt, um den Zustand eines Clients dauerhaft zu speichern und zu kommunizieren, ob ein Client online oder offline ist.
Qualitätskontrolle
  • MQTT bietet drei Servicequalitätsstufen (QoS), die von keiner Zusicherung bis zur garantierten einmaligen Zustellung reichen.
Broker
  • MQTT-Broker wie Mosquitto und Hivemq bieten erweiterte Funktionen wie Clustering und unterstützen Websockets für flexible Netzwerkanwendungen.
Praktische Anwendung
  • Ein Beispiel ist ein Temperatursensor, der Temperaturen in Fahrenheit misst und nach Konvertierung in Celsius wieder publiziert.

Hier ist eine Zusammenfassung und ein weiterführendes Skriptbeispiel basierend auf dem Artikel aus dem Linux-Magazin:

Einsatz von MQTT für Admins
  • MQTT bietet mit dem Last Will and Testament (LWT) und dem Retained-Flag nützliche Funktionen, um den Zustand von Clients zu überwachen und zu verwalten.
  • MQTT erleichtert das Monitoring von Systemen und Prozessen, indem es regelmäßige Statusmeldungen über einfache Publish-Befehle in Skripten ermöglicht.
MQTT Bridge Funktion
  • MQTT Bridges ermöglichen die sichere Anbindung von Geräten ohne TLS durch Weiterleitung von Nachrichten an einen sicheren Broker.
Clustering und Redundanz
  • Einige MQTT Broker wie Vernemq und Hivemq bieten Clustering, was die Redundanz und somit die Zuverlässigkeit erhöht.
Beispiel eines Monitoring-Skripts

```sh

  1. !/bin/sh

source mqttfuncs.sh mqtt Start

  1. for ... # lange Schleife

mqtt "verarbeite jetzt xyz `date`"

  1. done

mqtt "So, jetzt ist Schluss" ``` Dieses Skript demonstriert, wie MQTT zur Überwachung langer Prozesse verwendet werden kann, indem es regelmäßige Updates über MQTT sendet.