Site icon bintorosoft.com

MQTT Broker in Docker: Mosquitto Setup für IoT

Desktop PC monitor photo JavaScript functions variables objects Project

MQTT ist ein leichtgewichtiges Publish/Subscribe-Protokoll, das in der IoT-Welt weit verbreitet ist. Ein MQTT-Broker wie Mosquitto kann effizient in Docker betrieben werden, wodurch Deployment, Updates und Skalierung stark vereinfacht werden. In diesem Tutorial zeigen wir, wie man Mosquitto in Docker für IoT-Szenarien sicher und performant aufsetzt.

Docker-Image auswählen und starten

Das offizielle Mosquitto-Image bietet alle notwendigen Features für den schnellen Einstieg:

docker run -d 
  --name mosquitto 
  -p 1883:1883 
  -p 9001:9001 
  -v mosquitto-data:/mosquitto/data 
  -v mosquitto-log:/mosquitto/log 
  -v mosquitto-config:/mosquitto/config 
  eclipse-mosquitto:2

Konfiguration von Mosquitto

Die Broker-Konfiguration erfolgt über Dateien im /mosquitto/config-Volume. Minimal ist eine mosquitto.conf erforderlich:

persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883
allow_anonymous false
password_file /mosquitto/config/passwordfile

Benutzer und Passwörter setzen

docker exec -it mosquitto mosquitto_passwd -c /mosquitto/config/passwordfile username

Sicherheit und TLS

TLS schützt Datenübertragungen. Zertifikate können aus LetsEncrypt oder internen CA stammen:

listener 8883
cafile /mosquitto/config/ca.crt
certfile /mosquitto/config/server.crt
keyfile /mosquitto/config/server.key

Netzwerk-Isolation

MQTT-Broker sollte nur von den IoT-Geräten oder Services erreichbar sein:

docker network create mqtt-net
docker run -d --name mosquitto --network mqtt-net 
  -v mosquitto-data:/mosquitto/data 
  -v mosquitto-log:/mosquitto/log 
  -v mosquitto-config:/mosquitto/config 
  eclipse-mosquitto:2

Healthchecks und Restart-Policies

Zur Stabilität empfiehlt sich ein Healthcheck:

docker run -d --name mosquitto 
  --network mqtt-net 
  --health-cmd="mosquitto_sub -h localhost -t 'healthcheck' -C 1" 
  --health-interval=30s 
  --health-retries=3 
  -v mosquitto-data:/mosquitto/data 
  -v mosquitto-log:/mosquitto/log 
  -v mosquitto-config:/mosquitto/config 
  eclipse-mosquitto:2

Logging und Monitoring

Logs sind zentral im Volume mosquitto-log abgelegt und können für Monitoring genutzt werden:

docker exec -it mosquitto tail -f /mosquitto/log/mosquitto.log

Backups

MQTT-Persistenzdaten sollten regelmäßig gesichert werden:

docker exec mosquitto sh -c 'cp -r /mosquitto/data /backup/mosquitto_$(date +%F)'

Best Practices zusammengefasst

Mit diesen Maßnahmen lässt sich Mosquitto in Docker stabil, sicher und performant für IoT-Anwendungen betreiben. Durch persistente Speicherung, abgesicherte Kommunikation und Überwachung bleiben Container zuverlässig im Betrieb und unterstützen skalierbare IoT-Architekturen.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version