Guide: Opsæt din egen MQTT‑broker på din hjemmeserver
Drømmer du om et hjem, der selv justerer varmen, sender besked om vandforbruget og reagerer øjeblikkeligt, når du trykker på en knap? Så er MQTT – og især en egen MQTT-broker – nøglen til din næste niveau af hjemme-automation.
Mange begynder med cloud-tjenester til deres IoT-enheder, men opdagelsen kommer hurtigt: Hvorfor sende følsomme data over Atlanten, når de kan blive hjemme i din egen kælder? Ved at hoste din egen broker får du ikke kun fuld kontrol over privatlivet – du skærer også dyrebare millisekunder af responstiden, undgår månedlige abonnementer og kan tilpasse alt ned til mindste detalje.
I denne guide viser vi trin for trin, hvordan du på under en eftermiddag kan:
- Installere en lynhurtig MQTT-broker på din Raspberry Pi eller hjemmeserver
- Hærdningen med TLS, adgangskontrol og smarte ACL-regler
- Finpudse topic-strukturen, så dine pumper, temperaturfølere og automationsflows spiller perfekt sammen
- Teste, overvåge og udvide din opsætning – helt uden at knække budgettet
Uanset om du er ny i IoT-verdenen eller allerede har et dusin ESP32-sensorer i gang, vil du her få praktiske anvisninger og bedste praksis, der gør din bolig både smartere og mere selvstændig. Klar til at tage kontrollen hjem? Så scroll videre – din personlige MQTT-broker venter.
Hvorfor sætte en egen MQTT-broker op?
MQTT (Message Queuing Telemetry Transport) er et letvægts-protokol designet til at sende beskeder på ustabile eller båndbreddebegrænsede netværk. I stedet for at enhederne kommunikerer direkte med hinanden, sender de beskeder til en broker, som distribuerer dem til de klienter, der har subscribe’t til de relevante topics. Denne publish/subscribe-model betyder, at sensorer, styreenheder og dashboards kan være fuldstændigt adskilte, men stadig udveksle data i realtid.
Fordele ved at hoste selv
- Privatliv og datasuverænitet — Al trafik forbliver på dit lokale netværk, så følsomme målinger som rumtemperatur, vandforbrug eller bevægelsesdata lander ikke i en sky-tjeneste.
- Fuld kontrol — Du bestemmer brugere, adgangskontrol og opdateringsfrekvens. Ingen pludselige ændringer i abonnement eller servicebetingelser.
- Lav latency — Lokale beskeder tager millisekunder, hvilket gør dine automations mere responsive og giver færre udfald, hvis internetforbindelsen går ned.
- Skalerbarhed til husbehov — En Raspberry Pi eller hjemmeserver kan uden problemer håndtere hundredevis af topics og enheder.
Typiske hjemmebrugsscenarier
- Varmefølere og termostater
Rumtemperatur og sætpunkter publiceres tilhome/livingroom/temperature, mens gulvvarmepumper lytter påhome/heating/command. - Vandmåling og lækagealarmer
En vandmåler sender pulstællinger, mens en lækagesensor publicerer en Last Will i tilfælde af strømsvigt. - Cirkulations- og drænpumper
MQTT-styrede relæer tænder/slukker baseret på f.eks. udendørstemperatur eller tidsplaner fra Home Assistant. - Automationsflows og scene-styring
Node-RED abonnerer påhome/+/statusfor at bygge regler som “hvis dør åbnes efter kl. 23, tænd natlys”. - Energiovervågning
Målinger fra solcelle-inverter, varmepumpe og el-bil oplader kombineres i realtime og sendes til graf- og alarmsystemer.
Ved at køre en egen broker binder du alle disse datakilder sammen på din platform og lægger fundamentet for stabile, fremtidssikre hjemautomationer.
Forudsætninger: hardware, netværk og forberedelser
Inden du kaster dig ud i selve installationen, er det værd at sikre, at fundamentet er i orden. En MQTT-broker kan godt køre på næsten hvad som helst, men et solidt setup giver færre overraskelser senere.
Hardware
- Raspberry Pi 3/4 eller lignende SBC
• 1 GB RAM er nok til et lille hjemmenetværk, men 2-4 GB giver plads til dashboards og andre services.
• Brug et pålideligt microSD-kort (Industrial eller A2-rated) eller endnu bedre en lille SSD via USB. - Hjemmeserver/NAS
• x86-maskiner (Intel NUC, Proxmox-klynge, Synology med Docker) klarer nemt +10 000 meddelelser/sek.
• Vælg minimum 2 CPU-kerner og 2 GB RAM for at have luft til TLS-kryptering og logning. - Lager & backup
• Sørg for daglig backup af/etc/mosquitto, bruger-database, certifikater og evt. vedvarende beskeder (persistence).
• Gem konfiguration i Git eller på NAS, så rollback er hurtigt.
Operativsystem
- Debian/Ubuntu Server – langtidssupport, store repos og mange guides.
- Raspberry Pi OS (Lite) – let, men hold øje med pakkeversioner.
- Alpine Linux – minimalistisk til Docker-hosts.
- Uanset distro: opdater regelmæssigt (
unattended-upgradeseller tilsvarende).
Netværksopsætning
- Fast IP
• Tildel statisk IP eller mindst en DHCP-reservation, så klienter altid kan finde broker-en. - Porte
• 1883/tcp – MQTT u/kryptering (LAN).
• 8883/tcp – MQTT over TLS (anbefalet).
• 8083/8084 – WebSocket-varianter (hvis du aktiverer det). - NTP
• Korrekt tid er afgørende for TLS-certifikater og logfejlfinding: aktivér timesyncd eller chrony. - Firewall
• På Debian/Ubuntu:ufw allow 8883/tcp comment "MQTT TLS".
• Luk ALT andet ned, især hvis maskinen senere skal eksponeres til internettet. - Lokal DNS
• Brug fx pi-hole eller dnsmasq til et nemt alias:mqtt.home.lan→ 192.168.1.10.
• Undgå at konfigurere klienter med rå IP-adresser; det gør fremtidige flytninger smertefrie. - Kun LAN eller også ekstern adgang?
• Kun LAN: hurtigst, færrest angrebspunkter, ingen port-forward.
• Ekstern adgang: kræver TLS, stærke adgangskoder (eller mTLS) og evt. VPN eller reverse proxy.
Planlægning før du går videre
- Lav en kort liste over alle enheder, der skal bruge MQTT (sensorer, pumper, Home Assistant osv.).
- Afgør om de kører ren TCP, TLS eller WebSocket.
- Sæt backup-rutine og automatisk opdatering op inden produktion.
- Test netværkslatency og throughput – især hvis du har batteridrevne sensorer, hvor hver ms tæller.
Når ovenstående punkter er afklaret, er du klar til at vælge selve broker-softwaren og begynde installationen.
Vælg broker og arkitektur
Før du trykker install, er det værd at tage et kort kig på de mest udbredte open-source MQTT-brokere og på, hvordan de passer ind i din hjemme- eller små-erhvervsløsning.
Populære open-source brokere
- Mosquitto – den “klassiske” reference-implementation fra Eclipse.
- Styrker: Lille memory-footprint (< 2 MB), næsten ingen afhængigheder, let at sætte op på alt fra Raspberry Pi til VPS.
- Begrænsninger: Ikke indbygget web-UI, enkelt-node fokus (clustering kræver ekstern løsning), plugins i C gør udvidelser tungere.
- Anvendelse: Perfekt til få hundrede enheder og beskeder pr. sekund – typisk nok til et dansk parcelhus med sensorer, pumper og Home Assistant.
- EMQX – feature-monsteret fra EMQ.
- Styrker: Web-UI, integreret dashboard, ACL via SQL-lignende regler, WebSockets/HTTP API, clustering i én linje konfig.
- Begrænsninger: Større footprint (≈ 150 MB RAM), flere bevægelige dele (Erlang VM), licens-skift ved > 1000 forbindelser.
- Anvendelse: Når du vil køre flere hjem, små SMV installationer eller holde fremtids-døren åben for million-skala.
- HiveMQ Community Edition – Java-baseret, Enterprise-features light.
- Styrker: Stabilitet, velafprøvet i industri, fuld MQTT 5-understøttelse, ry for lav latenstid trods JVM.
- Begrænsninger: 1000 klienter maksimum i CE, højere RAM-krav (≥ 512 MB anbefalet), visse plugins bag betal-mur.
- Anvendelse: God mellemvej hvis du har brug for MQTT 5 og vil lære enterprise-workflow uden at betale – endnu.
- NanoMQ – ultralet bro fra EMQ (C-baseret).
- Styrker: Kilobyte-størrelse, optimeret til embedded boards, kan agere edge-bridge til større broker.
- Begrænsninger: Færre features (ingen indbygget ACL, clustering i beta), dokumentation mindre moden.
- Anvendelse: ESP-32, OpenWRT-router eller anden mikro-gateway ved f.eks. solceller i udhuset.
Vigtige evalueringskriterier
- Performance & skalerbarhed: Hvor mange samtidige klienter/topic-skriv skal den kunne sluge? Kig på brokerens benchmarks – og dit faktiske behov.
- Adgangskontrol (ACL): Skal du begrænse device-A til kun at skrive
varme/stue/#? Undersøg om ACL går på topic-niveau, IP og/eller certifikat-felt. - WebSocket & API: Kører du Node-RED i browseren eller vil du lave en React-dashboard? WebSocket gør livet nemt.
- Clustering & High Availability: Ikke must-have til parcelhus, men fint hvis du senere splitter sensorer over flere VLAN eller vil have zero-downtime.
- Plugins & eksterne integrationer: LDAP, InfluxDB, Prometheus metrics – jo flere out-of-the-box hooks, jo mindre kludearbejde.
Driftsarkitektur: Bare metal vs. Container
Der er to dominerende måder at køre en MQTT-broker på i et hjemmenetværk:
- Bare metal / systemd-service
- + Mindre overhead, bruger færre ressourcer – ideelt til Raspberry Pi Zero 2 W.
- + Lettere adgang til hardware (serielle porte, GPIO for UPS-signal osv.).
- − Sværere at isolere og rulle tilbage; opgraderinger kræver manuel pakke-styring.
- Container (Docker/Podman) + evt. docker-compose
- + Få linjer YAML, hermetisk konfiguration, nem flytning til ny hardware.
- + Mulighed for multi-arch billeder (arm64/amd64) og CI-baserede auto-opdateringer.
- − Ekstra abstraktionslag, lidt højere RAM; kræver volumes for vedvarende data.
Log- og datapladsering (persistens)
- Konfiguration: Gem
/etc/mosquitto/conf.d/eller container-volume i git – versionsstyring er guld, når du tweaker ACL midt om natten. - Certifikater: Adskil mappen for TLS-nøgler (eks.
/opt/mosquitto/certs) og giv kun mosquitto-brugeren læse-ret. - Data: Persisterede sessions og retained beskeder skrives typisk til
mosquitto.db. Læg den på SSD eller ramdisk med backup til NAS for hurtig recovery. - Logs: Rotér med
logrotateeller Docker-driver; hold maksimum 14 dage lokalt og ship ældre logs til syslog-server eller Loki.
Med ovenstående overvejelser i baghovedet kan du nu vælge den broker og det deploy-setup, som bedst matcher dit netværk, dit ambitionsniveau – og ikke mindst den tid, du har lyst til at bruge på vedligehold. Resten af guiden tager udgangspunkt i Mosquitto på Debian, men tip-bokse markerer forskelle for EMQX og Docker-miljøer.
Installation trin for trin
Der findes mange måder at få en MQTT-broker i luften på, men for de fleste hjemmeinstallationer lander man på enten en “native” pakkeinstallation eller et container-setup. Nedenfor gennemgår vi begge metoder trin for trin.
1. Pakkeinstallation på debian/ubuntu
-
Opdater systemet
sudo apt update && sudo apt -y upgrade -
Installer Mosquitto og klientværktøjer
sudo apt -y install mosquitto mosquitto-clientsMosquitto opretter automatisk en systemd-service (
mosquitto.service) og kører som brugermosquitto. -
Tjek servicestatus
systemctl status mosquittoDu bør se active (running). Hvis ikke, kig i
/var/log/mosquitto/mosquitto.log. -
Standardstier (kan være nyttige at kende)
Formål Sti Konfiguration /etc/mosquitto/*.confData / persistens /var/lib/mosquitto/Logfiler /var/log/mosquitto/Systemd-service /lib/systemd/system/mosquitto.service -
Opret din egen konfigurationsfil
Opret en ny fil, fx
/etc/mosquitto/conf.d/local.conf, så du ikke piller vedmosquitto.conf.listener 1883allow_anonymous true # Midlertidigt - slå fra senere!persistence truepersistence_location /var/lib/mosquitto/Genindlæs konfig:
sudo systemctl restart mosquitto -
Første test
# Terminal 1mosquitto_sub -h localhost -t "test/hej"# Terminal 2mosquitto_pub -h localhost -t "test/hej" -m "Velkommen til MQTT"Dukker beskeden op i Terminal 1, er din broker live.
2. Kørsel i docker/podman (compose)
-
Forbered mapper og bruger
sudo useradd -r -s /usr/sbin/nologin mqttsudo mkdir -p /opt/mqtt/{config,certs,data,log}sudo chown -R mqtt:mqtt /opt/mqtt -
Minimal
mosquitto.confpersistence truepersistence_location /mosquitto/data/log_dest file /mosquitto/log/mosquitto.loglistener 1883allow_anonymous trueGem den som
/opt/mqtt/config/mosquitto.conf. -
docker-compose.ymlversion: "3.9"services: mosquitto: image: eclipse-mosquitto:2 container_name: mosquitto restart: unless-stopped user: "1883:1883" # Mosquitto kører som UID/GID 1883 i containeren volumes: - /opt/mqtt/config:/mosquitto/config - /opt/mqtt/data:/mosquitto/data - /opt/mqtt/log:/mosquitto/log ports: - "1883:1883" - "9001:9001" # WebSocket (hvis aktiveret senere) -
Start broker
cd /opt/mqttdocker compose up -d # eller: podman compose up -dTjek status:
docker compose logs -f mosquitto -
Verificér som før med
mosquitto_pub/sub
3. Hærd grundstrukturen fra starten
- Skift
allow_anonymous truetilfalse, og opret brugere vha.mosquitto_passwd. - Planlæg placering af certifikater (
/opt/mqtt/certs) – det gør migrering til TLS meget lettere. - Overvej at mappe ekstra logvolumen til syslog, hvis du allerede samler logs centralt.
- Tag en backup af konfig og data (retained + persistent sessions) – fx med
rsynceller et snapshot i din backup-løsning.
Når installationen er testet og kører stabilt, er du klar til næste skridt: at lukke af for anonym adgang, aktivere TLS og definere rettigheder per topic – alt sammen i de kommende afsnit.
Sikkerhed: kryptering og adgangskontrol
En MQTT-broker er kun så sikker som den konfiguration du giver den. Heldigvis er det relativt ligetil at hæve barren kraftigt – også hjemme i teknikskabet.
1. Kryptering med tls
Uanset om du kun kører på LAN, bør trafikken krypteres. Så er du beskyttet mod både nysgerrige brugere på Wi-Fi og fremtidige planer om ekstern adgang.
- Let’s Encrypt: Gratis, automatiseret og ideelt hvis brokerens hostname er offentligt routet (f.eks.
mqtt.mitdomæne.dk). Brugcertbotelleracme.shtil at hente/fornye certifikaterne automatisk. - Egen CA: Hvis brokeren kun skal tilgås internt, kan du køre din egen Certificate Authority med fx
easy-rsa. Fordelene er fuld kontrol og ingen afhængighed af eksterne tjenester.
# mosquitto.conf (uddrag)listener 8883cafile /etc/mosquitto/certs/ca.crtcertfile /etc/mosquitto/certs/server.crtkeyfile /etc/mosquitto/certs/server.keyrequire_certificate false # Sæt 'true' ved mTLStls_version tlsv1.2
2. Slå anonym adgang fra
Standard-installationen af Mosquitto lader anonyme klienter forbinde på port 1883. Det bør deaktiveres:
# mosquitto.confallow_anonymous falsepassword_file /etc/mosquitto/passwd
3. Brugere og adgangskoder
- Opret en dedikeret systembruger til brokeren:
sudo adduser --system mosquitto - Lav selve MQTT-brugerne med hashed kodeord:
sudo mosquitto_passwd -c /etc/mosquitto/passwd ha_coresudo mosquitto_passwd /etc/mosquitto/passwd tasmota01
4. Finmaskede acl-regler
Lad aldrig enheder frit læse/skriv alt. Med en Access Control List kan du give præcise rettigheder:
# /etc/mosquitto/acluser ha_coretopic readwrite #user tasmota01topic read tasmota01/#topic write cmnd/tasmota01/#user esp_watertopic write tele/watermeter/#
Indsæt ACL-filen i mosquitto.conf:
acl_file /etc/mosquitto/acl
5. Mtls til kritiske noder
Har du temperaturfølere i fyrrummet eller vandmåleren i brønden? Brug mutual TLS. Her skal klienten præsentere et certifikat, som din CA har signeret, før brokeren accepterer forbindelsen.
# mosquitto.conf (tillæg)require_certificate true
6. Netværkshygiejne
- Firewall: Åbn kun de nødvendige porte (1883/8883). På Linux:
sudo ufw allow 8883/tcp. - DMZ eller VLAN: Placer IoT-enheder på et adskilt netværk og tillad kun MQTT-trafik ind til brokeren.
- fail2ban: Overvåg Mosquitto-loggen for brute-force-forsøg og bann IP’er automatisk.
- Minimal eksponering: Skal brokerens TCP-port virkelig være viderevideres fra routeren? Ofte er svaret nej. Brug i stedet VPN (WireGuard/OpenVPN) hvis du vil tilgå den udefra.
7. Regelmæssig vedligehold
Opdater pakkerne, roter logfiler, og revider ACL’en når nye enheder kommer til. Sæt en kalenderpåmindelse hver 3. måned – dine fremtidige nattesøvne vil takke dig.
Med disse tiltag er din hjemme-MQTT-broker enkel at administrere, men solidt sikret mod både tilfældige og målrettede angreb.
Konfiguration og bedste praksis
Et konsistent topic-hierarki gør det lettere at subscribe selektivt, versionere dine integrationer og undgå misforståelser.
- Brug et fast top-niveau — f.eks.
husellervt(VarmeTeknik). Det giver mulighed for senere at bridge til andre brokere uden navnekollisioner. - Hierarki:
<sted>/<zone>/<enhed>/<måling>
Eksempel:hus/kælder/varmefyr/temperatur. - Undgå mellemrum og specialtegn; brug små bogstaver og
-eller_som separatorer. - Skil kommando og status ad:
hus/stue/lampe/cmd← kommandoer
hus/stue/lampe/state← feedback - Versionér ved behov med et ekstra niveau:
v1/,v2/. - Brug Wildcards bevidst (
hus/+/temperatur) og undgå dem i publicerende enheder.
Qos: Balance mellem latency og robusthed
| QoS | Garantier | Typiske brugsscenarier |
|---|---|---|
| 0 (at most once) | Ingen bekræftelse, lavest latency | Hyppige sensordata, hvor et tabt målepunkt er OK |
| 1 (at least once) | Broker kvitterer, kan give dubletter | Kommandoer (pumpe on/off), kritiske statussignaler |
| 2 (exactly once) | Handshake i to trin, tungest | Betalings-/faktureringsdata; sjældent i hjemmet |
Start med QoS 0 og hæv kun niveauet hvor det giver reel værdi. Husk at blandede QoS-niveauer øger RAM-forbrug og disk-I/O på brokeren.
Retained beskeder
- Benyttes til sidst kendte værdi, så en ny klient straks modtager data.
- Velegnet til konfiguration (
homeassistant/<device>/config) og langsomme datapunkter somfirmware_version. - Slet en retained besked ved at publicere en tom payload med flaget
retainsat. - Undgå retained på hurtigt-skiftende topics (f.eks.
motion) — det fylder og forvirrer.
Lwt – Last will and testament
Med LWT kan du automatisk indikere at en enhed er offline hvis MQTT-forbindelsen dør uventet.
mosquitto_pub -h broker -t hus/garage/sensor/status \ -m "online" -r \ --will-topic hus/garage/sensor/status \ --will-message "offline" --will-retain \ --will-qos 1
- Sæt beskeden
"online"som retained ved hver (re)connect. - Anvend QoS 1, så status når sikkert frem.
- I Home Assistant kan en
availability_topickobles direkte til sensoren.
Persistente sessions
Hvis en enhed sover eller har ustabil Wi-Fi, kan du sætte clean_session false (eller clean_start 0 i MQTT v5). Broker gemmer så uafleverede QoS 1/2-beskeder, til klienten vågner igen. Vær opmærksom på:
- Højere server-load og diskforbrug.
- Brug specifikke client-ids pr. enhed; dubletter overskriver hinanden.
Websocket-endpoint
Et WebSocket-interface gør det nemt at debugge i browseren og integrere med web-apps.
- Aktivér i
mosquitto.conf:
listener 9001protocol websockets
- Brug
wss://(TLS) hvis du blotter porten uden for LAN. - MQTT Explorer, Grafana og Tasmota-console kan alle tale WebSocket.
Bridging til andre brokere / skyen
- En bridge videresender valgte topics til f.eks. en ekstern cloud-service eller en sekundær broker i sommerhuset.
- Vælg outbound- og/eller inbound-topics og tilføj et præfix for at undgå loops.
connection klit_feriehusaddress 10.42.0.5:1883topic hus/# out 0 vt/remote/topic vt/remote/# in 0start_type automatictry_private true
Hold øje med loop detection i loggen, og sikre forbindelsen med TLS-certifikater.
Basale performance-tweaks
- Disk-I/O: Placer
persistence_locationpå SSD og tag backup afmosquitto.db. - Memory: Begræns
max_inflight_messagesogmax_queued_messagestil det realistiske behov. - Network tuning: Sæt
tcp_nodelay truefor lavere latency på LAN. - Logniveau: Kør med
log_type error warningtil daglig og hæv kun tildebugmidlertidigt. - TLS-handshake: Genbrug certifikatkæden i både broker og reverse-proxy, så du kun har ét sted at forny.
- Opgrader rettidigt: Nye versioner bringer ofte markante ydelsesforbedringer og sikkerheds-patches.
Med disse retningslinjer står din MQTT-broker stærkt, både hvad angår struktur, driftsikkerhed og fremtidig udvidelse.
Test, integration og drift
1. Hurtigfunktionstest
Når brokeren kører, er første skridt at sikre, at publish og subscribe virker lokalt.
# Åben to terminaler på serveren eller en klient-PC# Terminal 1 - lytmosquitto_sub -h broker.lan -p 1883 -t 'vat/test' -v# Terminal 2 - sendmosquitto_pub -h broker.lan -p 1883 -t 'vat/test' -m 'Hello MQTT'
Modtager du straks beskeden i terminal 1, er grundfunktionaliteten på plads. Kører du TLS på port 8883, tilføjes flagen -p 8883 --capath /etc/ssl/certs -u USER -P PASSWORD.
2. Grafisk inspektion med mqtt explorer
- Download klienten (Win/macOS/Linux).
- Opret forbindelse til
mqtt://broker.lan:1883ellermqtts://broker.lan:8883. - Se hierarkiet “live”, send testpayloads og valider retained flag, QoS osv.
MQTT Explorer er guld værd, når du vil tjekke om LWT-beskeder, persistente sessions eller ACL’er opfører sig korrekt.
3. Integrationer
| Platform | Opsætning | Tip |
|---|---|---|
| Home Assistant | Tilføj mqtt: i configuration.yaml eller brug “MQTT Integration” i UI. Angiv host, port og bruger. |
Slå “Enable discovery” til – ESPHome/Tasmota enheder dukker automatisk op. |
| Node-RED | Installer node-red-contrib-mqtt-broker eller peg noder mod ekstern broker-URL. | Brug separate input/output-noder for tydeligere flows. |
| ESPHome | I esphome.yaml: mqtt: sektion med broker-IP, port, bruger & password. |
Sæt birth_message og will_message fra starten for stabil tilstedeværelses-tracking. |
| Tasmota | Web-UI → Configuration → MQTT. Indtast host, port, topic-prefix, user/pass. | Skift SetOption19 0 hvis du ikke vil bruge Home-Assistant discovery. |
4. Fejlfinding
- Logniveauer: I
/etc/mosquitto/mosquitto.confkan du sættelog_typetil error, warning, notice eller debug. Brug midlertidigtdebugog kørjournalctl -u mosquitto -f. - ACL-hits: Tilføj
log_type aclfor at se afviste forbindelser. - QoS-problemer: Test med forskellige QoS-værdier (
0/1/2) og bekræft i MQTT Explorer, at beskeder leveres som forventet. - Netværkskontrol: Kør
nmap -p 1883,8883 broker.lanfor at sikre, at portene er åbne internt men ikke på WAN-interfacet.
5. Overvågning & metrics
Mange brokere, fx Mosquitto fra v2.0+, eksponerer $SYS-topics:
mosquitto_sub -t '$SYS/#' -v
Her kan du aflæse uptime, antal forbindelser, bag-queue osv. Eksporter dem til:
- Prometheus via mqtt_exporter og visualisér i Grafana.
- Telegraf → InfluxDB → Chronograf/Grafana.
6. Backupstrategi
- Konfiguration:
/etc/mosquitto/*.conf - Certifikater:
/etc/letsencrypt/live/eller din egen CA-sti. - Data: Hvis du bruger persistence, tag kopi af
/var/lib/mosquitto/
Kør daglige rsync eller inkluder stierne i din eksisterende borgbackup/Veeam/Time Machine-strategi.
7. Opdateringsrutiner
- Sæt automatiske sikkerhedsopdateringer (
unattended-upgrades) men pin broker-pakken hvis du vil teste manuelt før major releases. - Ved Docker: kør
watchtowereller CI-workflow, men test altid i et staging-tag først. - Gem ændringer i config i Git – så kan du hurtigt rulle tilbage.
8. Skalering & høj tilgængelighed
Til et almindeligt hjemmenet er single-node nok, men planlæg for vækst:
- Clustering: EMQX og HiveMQ understøtter indbygget klynge; Mosquitto kan bridge mellem noder.
- Keep-alives: Sænk
keepalivefra 60 s til fx 20 s, hvis du vil opdage nedetid hurtigere. - Failover-DNS: Lad en sekundær broker lytte på samme CNAME og brug client-side “broker-list” i kritiske enheder.
- Persistens & replicering: Brug delt NFS/GlusterFS eller database-backends, hvis du skal sikre, at events ikke tabes ved node-skifte.
Med ovenstående test, integrationer og driftsprocedurer er din egen MQTT-broker klar til at køre stabilt – året rundt – som hjertet i dit Varme, Afløb & Teknik-smarthome.