LINUX

Cómo configurar el servidor Mosquitto MQTT en Ubuntu 16.04

Mosquitto MQTT Server es un intermediario de mensajes que funciona sobre el protocolo MQTT. MQTT es un protocolo de mensajería ligero que es 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 espía MQTT. 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 las fuentes lis 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 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 accederemos 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 te sugiero revisa la página de descarga para ver si hay nueva versión. Así que descarguemos la última versión

wget https://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz

Desempaquetemos 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 realizada 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 del 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, necesitamos crear un archivo de configuración para Mosquitto MQTT Server, así que usemos nano para crear un nuevo archivo

sudo nano /etc/mosquitto/mosquitto.conf

Allí 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

Vamos a agregar 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

Estado de los mosquitos

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. Usted 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.

espía mqtt

Luego agrega la contraseña y el nombre de usuario que hicimos anteriormente, en mi caso es mqtt-spy y la contraseña es contraseña.

contraseña mqtt

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 cuelga, pero luego necesitamos usar MQTT-spy para crear un nuevo tema y enviar un mensaje al mismo tema, como en la imagen de abajo.

MQTT-espía

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 con fines de desarrollo y aprendizaje. Para IoT real, querría un dispositivo ARM. Todo esto es por este artículo gracias por leer.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar