Introduzione
Mosquitto è un broker di messaggi open source (licenza EPL / EDL) che implementa il protocollo MQTT. Mosquitto è leggero ed è adatto per l'uso su tutti i dispositivi. Il protocollo MQTT fornisce un metodo leggero per eseguire la messaggistica utilizzando un modello di pubblicazione / sottoscrizione. Ciò lo rende adatto alla messaggistica Internet of Things, ad esempio con sensori a bassa potenza o dispositivi mobili come telefono o microcontrollers.
Il progetto Mosquitto fornisce anche una libreria C per l'implementazione dei client MQTT e i client MQTT della riga di comando mosquitto_pub e mosquitto_sub molto popolari.
In questo tutorial, vedremo come installare Mosquitto su Ubuntu 18.04 LTS.
Se il vostro intento è installare il Mosquitto su di un server in remoto continuate a leggere, altrimenti saltate il primo paragrafo "Connessione al Server" e leggere il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:
ssh root@IP_DEL_SERVER
Successivamente sarà necessario inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:
ssh VOSTRO_UTENTE@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Installare Mosquitto Broker
Per installare Mosquitto Broker consiglio l'aggiunta del repository ufficiale per essere sicuri di utilizzare l'ultima versione disponibile.
Aggiungere il repository ufficiale di Mosquitto:
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
Dovrebbe essere già stato avviato l'aggiornamento dell'indice dei pacchetti, in caso contrario, aggiornarlo con questo comando:
sudo apt-get update
Installare Mosquitto:
sudo apt-get install mosquitto
Installare Mosquitto Clients:
sudo apt-get install mosquitto-clients
Mosquitto dovrebbe essere già attivo, per verificare lo stato:
sudo service mosquitto status
Dovreste visualizzare un messaggio di output simile al seguente:
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
Loaded: loaded (/etc/init.d/mosquitto; generated)
Active: active (running) since Thu 2019-08-22 00:00:21 CEST; 1s ago
Docs: man:systemd-sysv-generator(8)
Process: 28799 ExecStop=/etc/init.d/mosquitto stop (code=exited, status=0/SUCCESS)
Process: 29113 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 2299)
CGroup: /system.slice/mosquitto.service
└─29119 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Aug 22 00:00:21 TEST-SERVER-1 systemd[1]: Starting LSB: mosquitto MQTT v3.1 message broker...
Aug 22 00:00:21 TEST-SERVER-1 mosquitto[29113]: * Starting network daemon: mosquitto
Aug 22 00:00:21 TEST-SERVER-1 mosquitto[29113]: ...done.
Aug 22 00:00:21 TEST-SERVER-1 systemd[1]: Started LSB: mosquitto MQTT v3.1 message broker.
Per fermare Mosquitto:
sudo service mosquitto stop
Per avviare Mosquitto:
sudo service mosquitto start
Per riavviare Mosquitto:
sudo service mosquitto restart
Se si desidera visualizzare i messaggi di controllo sulla console, è necessario avviare manualmente il broker mosquitto con il seguente comando:
mosquitto -v
Dovreste visualizzare un messaggio di output simile al seguente:
1566424688: mosquitto version 1.6.4 starting
1566424688: Using default config.
1566424688: Opening ipv4 listen socket on port 1883.
1566424688: Opening ipv6 listen socket on port 1883.
Avviare Mosquitto con un file di configurazione
Per avviare mosquitto usando un file di configurazione usare il seguente comando:
mosquitto -c nome_file
Il file di configurazione di default mosquitto.conf si trova nella seguente directory:
/etc/mosquitto/
È una buona idea creare una copia di questo file prima di modificarlo.
Abilitare i Log
Abilitare i log è utile per la risoluzione dei problemi.
La scrittura dei logs è già abilitata nel file di configurazione predefinito, quindi è sufficiente avviare mosquitto con questo file di configurazione.
Fermare Mosquitto:
sudo service mosquitto stop
Avviare Mosquitto con un file di configurazione, esempio con il file di default:
mosquitto -c /etc/mosquitto/mosquitto.conf
È inoltre possibile utilizzare un'opzione della riga di comando -v per abilitare i logs:
mosquitto -v
Avviare molteplici Mosquitto Broker
È possibile configurare un broker per l'ascolto su più porte, ma per creare più broker con le proprie configurazioni, sarà necessario avviare più istanze di Mosquitto.
Avviare Mosquitto in ascolto sulla porta 1883:
mosquitto -p 1883
Avvia Mosquitto come daemon in ascolto sulla porta 1884:
mosquitto -p 1884 -d
Avviare Mosquitto come demone e utilizzare un file di configurazione diverso da quello di default mosquittio_2.conf:
mosquitto -c /etc/mosquitto/mosquittio_2.conf -d
Comandi Linux utili per fermare Mosquitto quando viene eseguito come demone.
Recuperare il PID di Mosquitto con il seguente comando:
ps -aux | grep mosquitto
Oppure:
pgrep mosquitto
Fermare (uccidere) il processo (sostituire PID con il numero del processo):
kill -9 PID
Conclusione
In questo tutorial abbiamo visto come installare e utilizzare Mosquitto Broker su Ubuntu 18.04 LTS.