Broker Kuska MQTT¶
El broker esta hecho para que se despliegue mediante Docker, de esta forma evitamos la complejidad de hacer configuraciones manuales y cosas así.
¿Como desplegar el broker?¶
Como mencioné antes, este brocker funciona con Docker y mas precisamente con docker compose, así que se debe contar con una instalación de este programa en el lugar donde se requiera instalar.
Hay un articulo para hacer la instalación de docker que me parece que lo explican muy bien.
Cómo instalar y usar Docker en Ubuntu 20.04
Aquí hay otro articulo para los que usan windows
Install Docker Desktop on Windows
Pasos a seguir para un despliegue correcto¶
-
Clonar repositorio
Información
Recuerden que si quieren hacer cambios en el repositorio original deben hacer un Fork de este proyecto y luego usar la url con ssh git@gitlab.com:llapanku-kuska/server.git
-
Crea una carpeta llamada mosquitto en una ruta conocida y agregar la siguiente estructura
Esta estructura es necesaria para configurar el comportamiento del broker. dentro de la carpeta config/
se debe crear un archivo mosquitto.conf
y se agrega la siguiente configuración
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883 0.0.0.0 # Esto se debe cambiar si se agregar man niveles de seguridad
allow_anonymous true # Esto tambien
- Dentro del repositorio que ejecuta el comando
Esto despliega el contenedor con una base de datos MongoDB y un broker Mosquitto
Comprobar funcionamiento¶
La IP del broker debe ser la IP de tu computadora mas el puerto 1883
Si tienes un sensor publicando en el topic sensor/temp
podrás ver este menaje en la terminal
Agregar seguridad al Broker Kuska¶
Esto es interesante, porque puede controlar quien puede acceder a tu broker MQTT y de esta forma evitar sabotajes como los que tuve yo en mi broker libre.
En el archivo mosquitto.conf
cambiamos la linea allow_anonymous
y agregamos una nueva linea para el administrador de claves, finalmente el archivo mosquitto.conf
quedaría de la siguiente forma.
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
password_file /mosquitto/config/passwords #Nueva línea agregada
listener 1883 0.0.0.0
allow_anonymous false #Cambiado a False
Una vez hecho esto se crea un archivo llamado passwods
dentro de la carpeta config
Luego se genera un nuevo usuario con el siguiente comando
docker run --rm -v ~/mosquitto/config:/mosquitto/config eclipse-mosquitto mosquitto_passwd -b /mosquitto/config/passwords usuario1 password1
Se debe nos movemos a la ultima versión en el repositorio
Actualizamos en archivo .env
con los valores de usuario y password que has creado antes.
Verificar que funciona¶
Reinicia todos los contenedores
Ahora para poder conectarte al broker debes usar el usuario y password que has creado.
También puedes ejecutar para hacerlo desde la terminal
Bueno esto es todo lo necesario para desplegar este broker, los datos enviados se estarían almacenando en una base de datos mongodb, disponible de forma remota o local si lo has hecho en tu dispositivo personal.
Si necesitas ayuda con el despliegue del broker puedes comentar en el grupo de Telegram