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 [email protected]_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 [email protected]_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 [email protected]_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.