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