Aus Linux-Magazin 03/2017

Aus dem Alltag eines Sysadmin: Mosquitto

Abbildung 1: In der oberen Konsole schickt ein Client eine Nachricht, die ein anderer Client – in der Konsole unten – sogleich empfängt.

Kolumnist Charly neigt wahrlich nicht zu Feindseligkeiten, doch mit einer Spezies hat er elefantengroße Probleme: Mücken. Beim Message-Broker Mosquitto jedoch macht er eine Ausnahme und lässt die Waffen schweigen, denn mit dem ist der eine oder andere gute Stich zu machen.

Jedes Jahr sterben rund 100 Tierarten aus, habe ich gelesen. Warum nicht Mücken? Ich bin bei dem Thema so gnadenlos, weil mein Körper allergisch auf deren Stiche reagiert. Ich kann nicht schlafen, wenn nur einziger Quälgeist in meinem Schlafzimmer summt. Meine stets griffbereite Waffe, um die Population meiner Feinde zu dezimieren, ist ein 30 Jahre alter Schulatlas neben dem Bett. Es bleibt aber eine Sisyphusarbeit.

Außerdem stören die Blutflecken auf der Tapete die Atmosphäre, die ich im Schlafzimmer haben möchte, weshalb praktisch jährlich neu tapeziert wird. Mücken fressende Spinnen anzusiedeln, fand im Familienrat auch keine Mehrheit, ebenso wenig wie ein Linux- und Lidar-gestützter Antimückenlaser (Light Detection and Ranging). Krieg ist Elend.

Ein jeder muss mir nachsehen, dass ich skeptisch auf Software reagiere, die nach den fliegenden Blutsaugern benannt ist. Mosquitto [1] allerdings, so viel verrate ich vorab, darf bleiben. Das Tool heißt so, weil der Namengeber unbedingt die Buchstaben MQTT unterbringen wollte, das Akronym für Message Queue Telemetry Transport. Und Telemetrie ist schon das passende Stichwort, um Mosquittos Aufgabe zu beschreiben.

Mosquitto betreibt eine Nachrichten-Drehscheibe, im MQTT-Slang heißt sie Message-Broker. Jeder mitteilungsbedürftige Client schickt seine Nachricht an den Broker (Publisher), und alle Clients, die ein Abo beim Broker haben (Subscriber), erhalten die Nachricht. Der Broker heißt schlicht »mosquitto« und läuft als Daemon, die Clients, die publizieren und abonnieren, heißen »mosquitto_pub« und »mosquitto_sub«.

Zuerst starte ich den Broker. Er läuft normalerweise im Hintergrund, aber ich kann den Daemon auch stoppen und auf der Konsole im Vordergrund starten. Da Mosquitto auf Port 1883 arbeitet, brauche ich dafür nicht einmal Rootrechte:

mosquitto -v

Der Parameter »-v« sorgt für eine höhere Geschwätzigkeit, sodass ich dem Broker bei der Arbeit zusehen kann. Danach abonniere ich mit dem Client »mosquitto_sub« eine Art Betreff, das Topic. Es ist frei wählbar und sollte im Idealfall die Art der Daten, die mich erwarten, sinnvoll beschreiben. Als Beispiel abonniere ich nun das Topic »date«:

mosquitto_sub -h 127.0.0.1 -i subscriber -t date

Der »-i«-Parameter beschreibt die Identität des Clients und ist frei wählbar. Hier habe ich »subscriber« genommen, in der Praxis sinnvoller erscheint mir, den Hostnamen des Clients anzugeben.

Mücken-Nachricht

Jetzt wird es Zeit, etwas zu publizieren. Auf einer anderen Konsole gebe ich

mosquitto_pub -h 127.0.0.1 -i publisher -t date -m "30.02.2017 ;-)"

ein (Abbildung 1). Die mit »-m Text« übergebene Nachricht erscheint sogleich auf der Konsole, in der »mosquitto_sub« auf Daten wartet.

Bestechend einfach, oder nicht? In der täglichen Anwendung sind die Topics oft hierarchisch gegliedert, wobei der Benutzer die Hierarchie-Ebenen durch einen Schrägstrich trennt, etwa »Messwerte/Luftfeuchte/aussen«. Absichern kann ich die Kommunikation per TLS, außerdem darf ich konfigurieren, dass Server und Client sich per Zertifikat ausweisen müssen. Ich gebe zu: Mosquitto ist eine nützliche Mücke. Mein Atlas bleibt trotzdem da, wo er ist!

Abbildung 1: In der oberen Konsole schickt ein Client eine Nachricht, die ein anderer Client – in der Konsole unten – sogleich empfängt.

Abbildung 1: In der oberen Konsole schickt ein Client eine Nachricht, die ein anderer Client – in der Konsole unten – sogleich empfängt.

Infos

  1. Mosquitto: https://mosquitto.org

Der Autor

Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein. Zu seinen Aufgaben gehören Sicherheit und Verfügbarkeit der Firewalls und der DMZ.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben