Mosquitto MQTT Server es un intermediario de mensajes que funciona sobre el protocolo MQTT. MQTT es un protocolo de mensajería ligero que es el estándar ISO para su uso sobre el protocolo TCP/IP. Se utiliza principalmente para comunicarse con dispositivos de Internet de las cosas. Vamos a instalar Mosquitto en un servidor Ubuntu 16.04 y vamos a enviar mensajes desde el software MQTT-spy. Mosquitto es un proyecto de Eclipse y se distribuye bajo licencia EDL. Así que comencemos.
Compilando el servidor Mosquitto MQTT desde la fuente
Para instalar Mosquitto, debemos seguir los siguientes pasos. Primero actualice la lista de fuentes y obtenga las dependencias
apt update
apt-get install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc
Agregue el usuario mosquitto, porque por defecto se ejecuta como no root.
adduser mosquitto
Para mayor comodidad, agregaremos derechos de sudo a este usuario, porque haremos el resto del proceso de instalación como este usuario
usermod -aG sudo mosquitto
Luego iniciaremos sesión como este usuario y cd a su directorio de inicio
su mosquitto
cd
A continuación, descargaremos el código fuente de Mosquitto, la última versión es 1.4.9 al momento de escribir, pero le sugiero que consulte la página de descarga para ver si hay una nueva versión. Así que descarguemos la última versión
wget https://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
Descomprimámoslo y cd en el directorio
tar xvzf mosquitto-1.4.9.tar.gz
cd mosquitto-1.4.9/
Y luego compilamos e instalamos el software
make && sudo make install
Configuración del servidor Mosquitto MQTT
Una vez finalizada la instalación, necesitamos crear una contraseña para el nuevo usuario.
sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-spy
Se le pedirá que cree una contraseña para el nuevo usuario mqtt-spy que usaremos para conectarnos desde el cliente. Eso es diferente al usuario de mosquito, que es el usuario del sistema para ejecutar el servidor mosquitto. Necesitamos agregar permisos a este usuario mosquitto a todos los directorios relevantes
sudo mkdir /var/lib/mosquitto/
sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/
A continuación, debemos crear un archivo de configuración para el servidor Mosquitto MQTT, así que usemos nano para crear un nuevo archivo
sudo nano /etc/mosquitto/mosquitto.conf
Ahí puedes pegar esto
persistence true
persistence_location /var/lib/mosquitto/
persistence_file mosquitto.db
log_dest syslog
log_dest stdout
log_dest topic
log_type error
log_type warning
log_type notice
log_type information
connection_messages true
log_timestamp true
allow_anonymous false
password_file /etc/mosquitto/pwfile
La configuración parece larga, pero agregamos registros más detallados y un archivo de contraseña.
Después de guardar la configuración, ejecutamos ldconfig
sudo ldconfig
Agreguemos el archivo de unidad systemd
sudo nano /etc/systemd/system/mosquitto.service
Pega esto allí:
[Unit]
Description=Insite MQTT Broker
[Service]
ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always
[Install]
WantedBy=multi-user.target
Comencemos el servicio
sudo systemctl start mosquitto.service
Y comprobar su estado
systemctl status mosquitto.service
Para que se inicie en el arranque, haga este comando
sudo systemctl enable mosquitto.service
Configuración de MQTT-Spy y conexión
MQTT-Spy es un cliente basado en Java que usaremos para conectarnos al servidor MQTT. Puede obtenerlo de github, pero tenga en cuenta que debe tener instalado Oracle JDK. NO funciona con OpenJDK. Lo primero que debe hacer después de mirar MQTT-spy es crear una nueva conexión. Agrega la IP de su servidor y el puerto predeterminado 1883.
Luego agrega la contraseña y el nombre de usuario que creamos anteriormente, en mi caso es mqtt-spy y la contraseña es contraseña.
Luego podemos abrir la ventana de terminal en el servidor y escribir el siguiente comando
mosquitto_sub -v -t 'linoxide/topic' -u mqtt-spy -P password
Para explicar las banderas, -v es para verbosidad, -t es para tema seguido de tema entre comillas, -u es para usuario y -P es contraseña. Después de escribir este comando, parecerá que se bloquea, pero luego necesitamos usar MQTT-spy para crear un nuevo tema y enviar un mensaje al mismo tema, como en la imagen a continuación.
Conclusión
Hemos instalado con éxito el servidor Mosquitto MQTT que le permite tener una red de dispositivos IoT conectados a través del protocolo MQTT 3.1. Lo instalamos en Ubuntu en una PC x86 clásica, que es lo que la mayoría de la gente usa para fines de desarrollo y aprendizaje. Para IoT real, querría un dispositivo ARM. Esto es todo por este artículo, gracias por leer.