Guía de Instalación de Apache Mosquitto: Configurando un Servidor MQTT en tu Sistema

solo como introducción MQTT (Message Queuing Telemetry Transport) es un protocolo de mensajería diseñado para la comunicación entre dispositivos en redes con ancho de banda limitado o conexiones inestables, como en el contexto de la Internet de las Cosas (IoT). Fue creado por Andy Stanford-Clark de IBM y Arlen Nipper de Arcom (ahora Eurotech) en 1999, y desde entonces ha ganado una amplia aceptación en la comunidad de desarrollo de IoT.

Apache Mosquitto es un popular servidor MQTT de código abierto que proporciona una plataforma robusta para la comunicación entre dispositivos en la Internet de las Cosas (IoT). En esta guía, te mostraré cómo instalar y configurar Mosquitto en tu sistema para que puedas comenzar a construir tus propias aplicaciones de IoT o notificaciones en general.

Paso 1: Instalación de Mosquitto

Primero, necesitas instalar Mosquitto en tu sistema. Los pasos específicos pueden variar dependiendo del sistema operativo que estés utilizando. Aquí tienes instrucciones para algunos sistemas comunes:

  • Ubuntu/Debian:
    • sudo apt update sudo apt install mosquitto mosquitto-clients
  • Raspberry Pi (Raspbian):
    • sudo apt update sudo apt install mosquitto mosquitto-clients
  • CentOS/RHEL:arduino
    • sudo yum install epel-release
    • sudo yum install mosquitto
  • macOS (con Homebrew):
    • brew install mosquitto
  • Windows: Puedes descargar el instalador desde el sitio web oficial de Mosquitto y seguir las instrucciones de instalación https://mosquitto.org/download/.

Paso 2: Configuración de Mosquitto

Una vez que Mosquitto esté instalado, puedes comenzar a configurarlo según tus necesidades. El archivo de configuración principal de Mosquitto se encuentra típicamente en /etc/mosquitto/mosquitto.conf en sistemas basados en Unix o C:\Program Files\mosquitto\mosquitto.conf en sistemas Windows.

Aquí hay algunos ajustes comunes que puedes querer realizar en el archivo de configuración:

  • Puerto de Escucha: Especifica en qué puerto Mosquitto escuchará las conexiones entrantes. El puerto predeterminado es 1883.
  • Autenticación: Configura la autenticación para restringir el acceso al servidor MQTT.
  • Control de Acceso: Define políticas de control de acceso para limitar qué clientes pueden publicar y suscribirse a determinados temas.

Asegúrate de revisar la documentación oficial de Mosquitto para obtener más detalles sobre la configuración avanzada.

Paso 3: Iniciar el Servidor Mosquitto

Una vez que hayas realizado tus ajustes de configuración, puedes iniciar el servidor Mosquitto ejecutando el siguiente comando en tu terminal:

mosquitto

Esto iniciará el servidor MQTT y comenzará a escuchar las conexiones entrantes en el puerto especificado en tu archivo de configuración.

para que el servicio este disponible desde la red publica debo cambiar las siguientes entradas en el archivo mosquitto.conf

listener [puerto] [ip local]

ejemplo:

listener 1883 192.168.1.25

también

allow_anonymous true

Basado en la documentación del Mosquitto, se configuro ciertos parámetros en el archivo para que pueda atender las peticiones desde la IP pública, a continuación, el listado de configuraciones aplicadas para levantar el servidor:

  1. El parámetro -v, hacer que la comunicación del servidor en la consola sea verbosa, es decir muestre todo el detalle de lo que pasa.
  2. El parámetro -c, se utiliza para cargar configuración personalizadas típicamente en el archivo mosquitto.conf, para este caso los datos utilizados fueron los siguientes:

listener 1883 192.168.1.25

allow_anonymous true

el servicio puede correr automáticamente y lo puede verificar en el listado de servicios de windows si esta plataforma windows

Pero si deseo una revisión verbosa del servidor Mosquito lo hare ejecutando manualmente el siguiente comando desde la consola del sistema operativo

mosquitto.exe -v -c mosquitto.conf

Obtenemos el siguiente resultado:

Paso 4: Probar mi implementación

Para probar que el servicio esta disponible desde internet se puede usar lo siguiente:

https://www.yougetsignal.com/tools/open-ports/

Un esquema grafico de como puede funcionar la arquitectura de MQTT en general seria el gráfico a continuación:

Conclusión

Ahora tienes un servidor Mosquitto completamente funcional instalado y configurado en tu sistema. Puedes comenzar a conectar dispositivos y construir aplicaciones IoT utilizando MQTT como tu protocolo de comunicación.

Consultar la documentación oficial de Mosquitto y explorar sus características adicionales para aprovechar al máximo tu servidor MQTT.

¡Espero que esta guía te haya sido útil para instalar Apache Mosquitto en tu sistema y comenzar a probar esta poderosa herramienta!

Referencias

https://mosquitto.org/documentation/