Eclipse Mosquitto
Der winzige MQTT-Broker für den Praxisbetrieb: läuft auf dem Raspberry Pi und verteilt Nachrichten zuverlässig.
Mosquitto startet auf einem Raspberry Pi — ein winziger Broker, konfiguriert über eine einzige Datei: mosquitto.conf.
// Teste dich
Welche Rolle spielt Eclipse Mosquitto im IoT?
In 30 Sekunden
Eclipse Mosquitto ist der meistgenutzte Open-Source-Broker für MQTT — die Poststelle, über die IoT-Geräte ihre Nachrichten austauschen. Er ist in C geschrieben, braucht nur wenige MB und läuft deshalb problemlos auf einem Raspberry Pi oder direkt auf einem Gateway. Konfiguriert wird er über eine einzige Textdatei; abgesichert wird er mit Passwortdatei, Zugriffslisten (ACL) und TLS-Verschlüsselung. Für grössere Setups verbindet eine eingebaute Bridge mehrere Broker miteinander — etwa vom Standort in die Zentrale.
Mosquitto ist das Dorfpostbüro deines IoT: klein und unscheinbar, aber es nimmt jede Nachricht an, stempelt sie und stellt sie zuverlässig allen richtigen Empfängern zu. Und wie bei einem echten Postbüro braucht es Hausregeln: Wer darf einliefern, wer darf welches Fach leeren? Ohne diese Regeln liest jeder die Post von allen — deshalb gehört das Absichern von Anfang an zum Betrieb.
Wo trifft man Eclipse Mosquitto an?
Smart Home
Der Standard-Broker der Heimautomatisierung: Zigbee2MQTT, Home Assistant und unzählige DIY-Projekte setzen ihn voraus. Beispiel: Alle Zigbee-Sensoren im Haus melden ihre Werte über einen Mosquitto auf dem Raspberry Pi.
Edge und Gateway in der Industrie
Maschinendaten am Standort einsammeln, bevor sie weiterwandern. Beispiel: Ein Industrie-PC in der Halle betreibt Mosquitto als lokalen Sammelpunkt für alle Sensor-Topics.
Standort-zu-Zentrale-Vernetzung
Mit der eingebauten Bridge leitet ein lokaler Broker ausgewählte Topics an einen zentralen Broker weiter. Beispiel: Jede Filiale meldet nur ihre Energie-Topics an den Broker im Rechenzentrum.
Prototypen und Entwicklung
Per apt install oder Docker in Sekunden gestartet; für schnelle Tests gibt es zudem den öffentlichen Testserver test.mosquitto.org. Beispiel: Ein Entwickler testet seine Firmware lokal gegen einen Mosquitto im Container.
Schwache und eingebettete Hardware
Wo Speicher und CPU knapp sind, spielt der kleine Fussabdruck seine Stärke aus. Beispiel: Ein Mosquitto läuft direkt auf dem Router einer abgelegenen Messstation.
Schulung und Labor
Die mitgelieferten Kommandozeilen-Werkzeuge mosquitto_pub und mosquitto_sub machen MQTT zum Anfassen begreifbar. Beispiel: Im Kurs abonniert jeder Teilnehmer ein Topic und sieht live, wie Nachrichten verteilt werden.
Gut geeignet für
- Für kleine bis mittlere Installationen, weil ein einziger schlanker Prozess hunderte bis tausende Clients zuverlässig bedient.
- Für Edge-Geräte wie Raspberry Pi oder Gateways, weil Mosquitto in C geschrieben ist und nur wenige MB Speicher braucht.
- Für den schnellen Einstieg, weil Installation und Start Minuten dauern und eine einzige Konfig-Datei den ganzen Betrieb regelt.
- Für den vollen MQTT-Funktionsumfang, weil MQTT 5.0 und 3.1.1 inklusive QoS 0–2, Retained Messages und Last Will sauber unterstützt werden.
- Für verteilte Standorte, weil die eingebaute Bridge Topics gezielt an einen zentralen Broker weiterreicht — ohne Zusatzsoftware.
Weniger geeignet für
- Für sehr grosse Installationen mit hunderttausenden Clients und Hochverfügbarkeit, weil Mosquitto ein Einzelprozess ohne echtes Clustering ist; besser EMQX, HiveMQ oder VerneMQ.
- Für Daten-Streaming mit Verlauf und Wiedergabe, weil ein MQTT-Broker Nachrichten zustellt statt archiviert; besser Apache Kafka für auswertbare Datenströme.
- Für komplexes Warteschlangen-Routing zwischen Unternehmens-Anwendungen, weil MQTT bewusst schlank ist; besser RabbitMQ mit AMQP.
- Für den ungesicherten Betrieb im Internet, weil ein offener Broker jedem Mitlesen und Einspeisen erlaubt; öffentlich erreichbar nur mit Passwörtern, ACL und TLS.
Fakten
- Eclipse Mosquitto
- Open Source unter dem Dach der Eclipse Foundation
- 2009 von Roger Light gestartet
- In C geschrieben; Fussabdruck von wenigen MB
- MQTT 5.0, 3.1.1 und 3.1; zusätzlich MQTT über WebSockets
- 1883 (unverschlüsselt), 8883 (TLS-verschlüsselt)
- Passwortdatei, Zugriffslisten (ACL), TLS und Client-Zertifikate
- Bridge zwischen Brokern, Persistenz (mosquitto.db), Werkzeuge mosquitto_pub/_sub
Im Detail
Der Standard-Broker für den Einstieg
Roger Light startete Mosquitto 2009 als schlanke Open-Source-Umsetzung eines MQTT-Brokers; seit 2014 wird das Projekt unter dem Dach der Eclipse Foundation gepflegt. Weil Installation und Betrieb so einfach sind, ist Mosquitto heute der Broker, mit dem die meisten ihre erste MQTT-Erfahrung machen — vom Smart-Home-Bastler bis zum Industrie-Pilotprojekt. Wichtig zur Einordnung: MQTT ist das Protokoll (die Sprache), Mosquitto eine konkrete Software, die diese Sprache als Poststelle spricht.
Eine Konfig-Datei regelt den ganzen Betrieb
Das Herzstück ist die Datei mosquitto.conf: Dort stehen die Listener (auf welchem Port der Broker lauscht), die Persistenz-Einstellungen, die Pfade zur Passwortdatei und zur Zugriffsliste. Wer mehrere Zugänge braucht, definiert einfach mehrere Listener — etwa Port 1883 nur für das interne Netz und Port 8883 mit TLS-Zertifikat für Zugriffe von aussen.
Absichern: Benutzer, ACL und TLS
Drei Bausteine gehören zu jedem ernsthaften Betrieb. Erstens die Passwortdatei: Jeder Client bekommt Benutzername und Passwort, anonyme Verbindungen werden abgeschaltet. Zweitens die ACL (Access Control List, Zugriffsliste): Sie legt pro Benutzer fest, welche Topics er lesen und in welche er schreiben darf — der Sensor darf melden, aber keine Befehle senden. Drittens TLS: Der verschlüsselte Listener auf Port 8883 schützt Zugangsdaten und Inhalte auf dem Transportweg. Seit Version 2.0 ist Mosquitto ab Werk vorsichtig eingestellt und nimmt ohne explizite Konfiguration nur lokale Verbindungen an — ältere Versionen waren offener, was weltweit tausende ungeschützt erreichbare Broker hinterlassen hat.
Bridge: mehrere Broker verbinden
Die eingebaute Bridge-Funktion verbindet einen Mosquitto mit einem zweiten Broker und leitet definierte Topics in eine oder beide Richtungen weiter. Typisches Muster: Jeder Standort betreibt seinen eigenen kleinen Broker, der auch bei Internet-Ausfall lokal weiterläuft — und die Bridge synchronisiert die wichtigen Topics mit der Zentrale, sobald die Verbindung steht.
Persistenz und die Grenzen
Mit persistence true sichert Mosquitto Retained Messages, Abos und zwischengespeicherte Nachrichten in der Datei mosquitto.db — ein Neustart oder Stromausfall wirft den Broker damit nicht aus dem Tritt. Die ehrliche Grenze: Mosquitto ist ein Einzelprozess. Für hunderttausende gleichzeitige Clients, echtes Clustering und garantierte Hochverfügbarkeit sind Broker wie EMQX oder HiveMQ gebaut; Mosquitto glänzt darunter — als kleiner, robuster Arbeiter am Rand des Netzes.
Für Diagnose und Alltag liefert das Paket zwei Kommandozeilen-Werkzeuge gleich mit: mosquitto_sub abonniert ein Topic und zeigt live alle eintreffenden Nachrichten, mosquitto_pub schickt testweise eine Nachricht ab. Kaum ein MQTT-Problem, das sich damit nicht in zwei Minuten eingrenzen lässt.
