Hoe kunnen we helpen?

Print

Hoe een Cloud MQTT Broker installeren op een VPS (Virtual Private Server)

 

Deze tutorial is handig voor het opzetten van een Cloud MQTT Broker op een VPS (Virtual Private Server) voor het testen en implementeren van je MQTT-projecten.

Met dit type MQTT-broker ben je onafhankelijk, is de beschikbaarheid 99,99% en zijn de kosten zeer betaalbaar.
De kosten van een VPS zijn ongeveer 1€ tot 4€ /maand. Wij gebruiken die van Ionos. (en selecteer Servers > VPS Hosting)

Je kunt ook kiezen voor een kant-en-klare MQTT Broker op internet of een Android app zoals MQTT Broker (om te testen).

Test onze MQTT Broker

Voordat je begint, kun je onze MQTT Broker testen met een uptime van 99,99% (beschikbaarheid)

  • Installeer op je Widnows pc een MQTT-client: MQTT Explorer
  • Stel een nieuwe verbinding in
  • Host = aceautomation.ddns.net of 101b7a0.online-server.cloud
  • Poort = 1883
  • Gebruikersnaam = aceautomation
  • Wachtwoord = (Neem contact met ons op om het te verkrijgen – Deze MQTT server is een test broker voor onze klanten, niet voor permanent gebruik)
  • Maak verbinding!

Selecteer de juiste VPS van uw provider naar keuze

De kosten van een VPS zijn ongeveer 1€ tot 4€ /maand. Je kunt een account openen bij Ionos en kiezen voor VPS cloud hosting.

  • Linux (Debian of vergelijkbaar)
  • CPU: 1 vCore of meer, RAM: 0,5 Go of meer, SSD: 10 Go of meer

Firewall-beleid

Voeg via het Dashboard van je VPS de TCP-poort 1883toe voor de MQTT Broker

De andere poorten zijn standaard aanwezig. Je hebt TCP-poort 22 nodig voor SSH-toegang. De andere poorten worden niet gebruikt.

Maak verbinding met de VPS Server via SSH

U kunt PuTTY als SSH-client gebruiken om verbinding te maken.
Voer uw Hostnaam of IP en 22 als poort in en maak verbinding.
De login (root of admin ?) en het wachtwoord zijn die van uw VPS provider.

Installeer MQTT Broker

Laten we de Mosquitto MQTT Broker installeren.

Voer de commando’s in:
sudo apt update
sudo apt install -y mosquitto

De MQTT broker service zal automatisch starten nadat de installatie is voltooid.

Installatiestatus van Mosquitto Broker

Voer de volgende commando’s in: sudo systemctl status mosquitto om de Mosquitto MQTT installatie te controleren: Controleer of het pakket“Loaded: …” en“Active: …”is

Optioneel: Test lokaal de Mosquitto Broker

Als je wilt, kun je ook de mosquitto client installeren. Dit kan handig zijn om de MQTT broker op de server zelf te testen.

  • Voer de commando’s in: sudo apt-get install mosquitto-clients en bevestig installatie
  • Open een tweede commandoregelinterface (CLI) met PuTTY
    • abonneer je op een testonderwerp met de naam “mymqtttesttopic” door in te voeren: mosquitto_sub -h localhost -t mymqtttesttopic
    • Publiceer vervolgens een bericht vanaf de andere terminal: mosquitto_pub -h localhost -t mymqtttesttopic -m "Verzonden vanuit mijn eigen MQTT Broker"
    • Als de installatie goed werkt, zal de subscribe terminal het bericht ontvangen:

Mosquitto stoppen, starten en herstarten

De MQTT broker service is automatisch gestart nadat de installatie was voltooid, maar het is handig om deze commando’s te kennen, vooral na het wijzigen van het Mosquitto configuratiebestand:

Stop de MQTT Server service: sudo systemctl stop mosquitto
Start de MQTT Server service: sudo systemctl start mosquitto
Herstart de MQTT Server service: sudo systemctl restart mosquitto

Beveilig de MQTT Server

MQTT Server leest configuratie-informatie van de volgende locatie: /etc/mosquitto/conf.d

Maak een default.conf aan in de directory:

sudo nano /etc/mosquitto/conf.d/default.conf

Je bent in een teksteditor. Het zal je misschien vragen om je wachtwoord voor SSH-gebruiker

Plak de onderstaande informatie om anonieme verbindingen uit te schakelen en Mosquitto toe te staan geldige referenties uit het bestand /etc/mosquitto/passwd te lezen:

allow_anonymous false
wachtwoordbestand /etc/mosquitto/passwd
luisteraar 1883

  • [Ctrl] [X]
  • [Y]
  • [Enter] om het bestand op te slaan in /etc/mosquitto/conf.d/default.conf

Een wachtwoord toevoegen aan de MQTT-broker

Vervang USER door je gebruikersnaam in deze commando’s en voer ze uit:

sudo mosquitto_passwd -c /etc/mosquitto/passwd USER

Het zal twee keer om het nieuwe wachtwoord vragen

Herstart de mosquitto service om de nieuwe wijzigingen te laden:

sudo systemctl restart mosquitto

Verbind een MQTT-client

Je kunt MQTT Explorer gebruiken als MQTT-client

Host = IP-adres of DNS-hostnaam
Poort = 1883
Gebruikersnaam = GEBRUIKER die je in het vorige deel hebt gekozen
Wachtwoord = WACHTWOORD dat je ook hebt gekozen in het vorige deel

Meerdere gebruikers toevoegen zonder dat ze elkaars onderwerpen kunnen zien

Voor elke gebruiker

Gebruiker2 toevoegen :


sudo mosquitto_passwd /etc/mosquitto/passwd user2

Aanmaken van het ACL (Access Control List) bestand. Dit bestand definieert wat elke gebruiker mag doen


sudo nano /etc/mosquitto/acl_file

Voeg deze regels toe:

user user2
onderwerp lezen schrijven user2/#

Hierdoor kan elke gebruiker alleen onderwerpen lezen en schrijven die beginnen met hun gebruikersnaam.

  • [Ctrl] [X]
  • [Y]
  • [Enter] om het bestand op te slaan in /etc/mosquitto/acl_file
De configuratie van Mosquitto wijzigen

Wijzig de hoofdconfiguratie:

sudo nano /etc/mosquitto/mosquitto.conf

Voeg deze regels toe of wijzig ze:

allow_anonymous false
wachtwoord_bestand /etc/mosquitto/passwd_bestand
acl_bestand /etc/mosquitto/acl_bestand

Dit vertelt Mosquitto om je wachtwoord- en ACL-bestanden te gebruiken en anonieme toegang niet toe te staan.

Herstart de MQTT Server service:

sudo systemctl restart mosquitto