Cómo configurar un Broker MQTT paso a paso

MQTT, o Message Queuing Telemetry Transport, es un protocolo de comunicación entre máquinas que permite el intercambio de mensajes y comandos entre dispositivos de forma segura y sencilla. Es un protocolo estándar y muy utilizado en la comunicación entre máquinas. Otra área donde también está muy presente es en la conectividad de IoT (Internet de las Cosas). Surgió en los años 90 para sustituir al HTTP que, a pesar de ser muy famoso a nivel mundial, presentaba diversos problemas de seguridad y confiabilidad. 

En este blog vas a entender qué es el protocolo, cómo funciona y cómo instalarlo de la mejor manera. 

Cómo funciona la comunicación en un protocolo MQTT 

En un Protocolo MQTT, la publicación y la recepción de datos se realizan a través de un tipo de servidor llamado Broker. 

Toda la comunicación se da a través de tópicos, que es el lugar o dirección a la que se enviará el mensaje. Los dispositivos que envían mensajes son los publishers, que publican en esos tópicos. Los dispositivos que desean recibir estos mensajes se suscriben a esa dirección y se llaman subscribers. 

Así, siempre que un dispositivo publica un mensaje en un tópico, todos los que están siguiendo ese tópico reciben el mensaje. El Broker sólo hace esa conexión entre quien publica y quien está interesado, no altera ni almacena la información, sólo la reenvía. 

Esta forma de comunicación es simple, rápida y muy eficiente, ideal para aplicaciones con sensores, automatización industrial o dispositivos conectados a Internet (IoT). 

Los tipos de brokers más utilizados son Mosquitto, EMQX, HiveMQ y VerneMQ. 

Requisitos previos 

Antes de iniciar la configuración de un broker MQTT, es importante garantizar que se cumplan algunos requisitos previos. 

Necesitarás un entorno con acceso administrativo al sistema operativo, ya sea Linux, Windows u otro, para realizar la instalación y configuración de los servicios. Además, es esencial que el equipo o servidor tenga una conexión de red estable, ya que el broker será responsable de gestionar las comunicaciones entre clientes y dispositivos. 

Para entornos de producción, también se recomienda una infraestructura mínima con buen rendimiento de procesamiento y memoria, especialmente si el broker va a gestionar un gran volumen de conexiones simultáneas. 

Instalación paso a paso 

Con los requisitos previos listos, es hora de pasar a la configuración del broker MQTT. En esta guía utilizaremos Mosquitto, uno de los brokers MQTT más populares y ampliamente adoptados en el mercado, como ejemplo práctico. 

El proceso incluye etapas esenciales como la instalación del broker, ajustes de configuración básicos (puerto de comunicación, autenticación de usuarios y permisos de acceso), además de configuraciones de seguridad utilizando cifrado TLS/SSL. 

También mostraremos cómo realizar pruebas de publicación y suscripción de mensajes para garantizar que el broker esté funcionando correctamente. 

Por último, abordaremos cómo monitorear logs y acompañar el estado de las conexiones para mantener la operación segura y eficiente. 

En Linux (Ubuntu/Debian), abre el terminal y ejecuta los siguientes comandos: 

sudo apt update
sudo apt install mosquitto mosquitto-clients 

En Windows, accede al sitio oficial de Mosquitto (https://mosquitto.org/download/) y descarga el instalador compatible con tu versión del sistema operativo. Sigue las instrucciones del asistente de instalación. 

Después de la instalación, es posible ajustar el archivo de configuración principal, que generalmente se encuentra en /etc/mosquitto/mosquitto.conf (Linux) o en la carpeta de instalación (Windows). 

Los principales ajustes incluyen: 

Puerto de comunicación: el predeterminado es 1883 para conexiones sin TLS; 

Creación de usuarios y contraseñas: para habilitar la autenticación, crea un archivo de contraseñas con el comando: 

sudo mosquitto_passwd -c /etc/mosquitto/passwd usuario 

Luego, agrega la configuración al archivo .conf: 

allow_anonymous false
password_file /etc/mosquitto/passwd 

Control de acceso (ACL): define quién puede publicar o suscribirse a tópicos específicos. 

Para entornos de producción, se recomienda habilitar la comunicación cifrada. Esto garantiza que los datos transmitidos no sean interceptados por terceros. Para ello, es necesario: 

Generar un certificado digital (o adquirir uno de una autoridad certificadora); 

Agregar las siguientes líneas al archivo mosquitto.conf: 

listener 8883
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/server.crt
keyfile /etc/mosquitto/certs/server.key 

El puerto 8883 es el predeterminado para conexiones MQTT seguras. 

Con el broker configurado y en ejecución, puedes probar la comunicación utilizando clientes MQTT: 

Para publicar un mensaje: 

mosquitto_pub -h localhost -t «test/topic» -m «Hola, MQTT!» 

Importante 

Esta prueba debe hacerse en la misma computadora con dos instancias del terminal abiertas, precisamente porque se está utilizando -h (host) como localhost. Es decir, sólo la máquina podrá comunicarse consigo misma. 

Para que otros dispositivos conectados en la misma red se comuniquen con el broker, se debe añadir el siguiente código al archivo «mosquitto.conf»: 

listener 1883 

Al incluir el código se abrirá el puerto de comunicación para que cualquier dispositivo con IP válida en la red pueda conectarse al broker. Hecho esto, se debe ejecutar en el terminal el siguiente código: 

mosquitto -c «Ruta\al\mosquitto.conf» -v 

Se debe especificar la ruta del archivo mosquitto.conf para ejecutar con las configuraciones realizadas. 

Hecho esto, el broker funcionará y cualquier dispositivo que esté en la misma red podrá conectarse utilizando la IP de la computadora (siempre que la red no tenga el puerto bloqueado por firewall). 

Para suscribirse a un tópico: 

mosquitto_sub -h localhost -t «test/topic» 

Si la configuración está correcta, al publicar el mensaje, aparecerá inmediatamente en el terminal del cliente que esté suscrito al tópico. 

Por último, acompaña los registros de operación del broker para garantizar que todo esté funcionando correctamente. En Linux, puedes acceder a los logs con: 

tail -f /var/log/mosquitto/mosquitto.log 

Esta práctica ayuda a identificar problemas de conexión, errores de autenticación y comportamiento de los clientes conectados. 

La importancia de una buena configuración 

La configuración correcta de un broker MQTT es fundamental para garantizar un flujo de datos seguro, eficiente y estable en aplicaciones de comunicación industrial, IoT y automatización. Como vimos a lo largo de este contenido, con pocos pasos es posible instalar y configurar un broker como Mosquitto, habilitar la autenticación, aplicar cifrado y monitorear las conexiones de forma práctica. 

Al invertir tiempo en una configuración adecuada y adoptar buenas prácticas como el control de acceso y el monitoreo de logs, tu operación estará preparada para soportar un gran volumen de mensajes y garantizar la integridad y confiabilidad de la información transmitida. 

Si tu empresa trabaja con monitoreo continuo de temperatura y humedad, integración de sensores o comunicación de datos críticos, dominar MQTT y mantener un broker bien configurado puede marcar la diferencia para la seguridad y eficiencia de tus procesos. 

Si aún tienes dudas sobre las configuraciones, contacta con el soporte de NOVUS y conoce cómo implementar un sistema completo de monitoreo integrado a tu broker MQTT.