Ayuda

Preguntas habituales y tropiezos típicos. Si la respuesta no está aquí, escríbanos: la dirección figura al pie de la página.

Primeros pasos

¿Cuánto cuesta el broker?

Nada. El broker es gratuito, no hay límites de dispositivos, mensajes, suscripciones ni servidores, no se necesitan claves de licencia y no se recopila telemetría.

¿Qué sistemas se admiten?

Debian y Ubuntu (un paquete en el repositorio APT), Windows 10 y 11 x64 (un .exe listo para usar) y compilaciones de Linux para amd64, arm64 y armhf que se ejecutan a mano en cualquier distribución, incluida Raspberry Pi.

¿Qué más tengo que instalar?

Nada. El binario está enlazado estáticamente y no necesita entorno de ejecución, ni libc, ni base de datos externa: el estado se guarda en SQLite en Go puro dentro del propio broker.

¿Adónde voy después de instalar?

El panel espera en http://su-servidor:8567. El acceso por defecto es admin con la contraseña admin; cámbiela en la sección Perfil nada más iniciar sesión por primera vez.

¿Qué puertos están abiertos por defecto?

1883 para MQTT sobre TCP, 8883 para MQTT sobre TLS y 8567 para el panel web y MQTT sobre WebSocket en /mqtt. Los puertos se cambian en config.json o con opciones de línea de órdenes.

Conexión de dispositivos

Un dispositivo no conecta: «not authorized». ¿Qué ocurre?

Lo más probable es que esté usando las credenciales del administrador del panel. Son cosas distintas: el administrador solo gestiona la interfaz web, mientras que los dispositivos se conectan con cuentas aparte de la sección Usuarios. Cree allí un usuario y conéctese con ese nombre y contraseña.

El cliente conecta pero no ve mensajes.

Compruebe los permisos. Las ACL deniegan por defecto: sin una regla de permiso explícita no hay acceso. Asegúrese de que el usuario tenga, para ese filtro de topic, una regla con acceso read o readwrite y de que esté por encima de las reglas de denegación: las reglas se comprueban de arriba abajo hasta la primera coincidencia.

¿Cómo doy a un dispositivo acceso solo a su propia rama?

Añada una regla con el filtro $u/# y acceso readwrite. El comodín $u se convierte en el nombre del cliente conectado, así que una sola regla vale para todos: cada dispositivo ve únicamente su rama. El panel tiene un botón «Rama propia» para esto.

¿Puedo permitir el acceso anónimo?

Sí, con un interruptor específico en Ajustes → Broker. Tenga en cuenta que a los clientes anónimos se les niega todo el espacio de nombres $, incluido $SYS.

¿Por qué suscribirse a # no muestra $SYS?

Lo exige la especificación: los comodines no alcanzan los topics que empiezan por $. Para leer las estadísticas hace falta una regla explícita del tipo $SYS/#. Además, en los ajustes del broker hay un interruptor global de $SYS.

¿Cómo me conecto desde un navegador?

Mediante MQTT sobre WebSocket: la dirección ws://su-servidor:8567/mqtt con el subprotocolo mqtt. No hace falta ninguna pasarela aparte, porque el WebSocket va en el mismo puerto que el panel.

Seguridad y TLS

El cliente se queja del certificado al conectar a 8883.

En el primer arranque el broker genera un certificado autofirmado: válido para pruebas, pero los clientes no confían en él. Para un sistema en producción indique su propio certificado en el bloque tls de la configuración (los campos cert y key) y reinicie el broker.

¿Cómo cambio la contraseña del administrador?

En la sección Perfil. La nueva contraseña se escribe en config.json como resumen: en el archivo no queda ninguna contraseña en claro.

He olvidado la contraseña del administrador.

Detenga el broker, elimine el campo passwordHash del bloque auth de config.json y ponga en su lugar "password": "su-nueva-contraseña". En el siguiente arranque el broker calcula el resumen y borra del archivo el valor en claro.

El panel es accesible desde Internet, ¿pasa algo?

La instalación estándar de Linux deja el panel escuchando solo en 127.0.0.1 y lo publica a través de nginx, donde es fácil añadir HTTPS y restricciones de acceso. Exponer el puerto 8567 directamente no es buena idea.

¿Cómo doy acceso a la API a otro sistema?

Ajustes → API: cree un token bearer. Se muestra una sola vez y solo se guarda su resumen. Si el sistema solo necesita estadísticas, marque «solo lectura»: entonces únicamente pasarán GET, HEAD y OPTIONS.

Carga y fiabilidad

Un dispositivo inunda el broker de mensajes. ¿Qué hago?

Active los limitadores en Ajustes → Broker: mensajes por segundo, ráfaga y bytes por segundo. Se aplican por conexión. Excederlos no corta la conexión ni pierde mensajes: el broker lee el socket más despacio y el emisor se frena solo.

Un topic concreto es ruidoso, pero el cliente por lo demás va bien.

Es un caso para Reglas → Límites por topic. Una regla por patrón reduce el flujo a un ritmo conservando el último valor, o descarta el topic por completo. Un sensor que emite diez veces por segundo pasa a un mensaje por segundo, y será la lectura más reciente.

¿Qué sobrevive a un reinicio del broker?

Los mensajes retenidos, las sesiones persistentes con sus suscripciones y colas sin conexión, las negociaciones QoS inacabadas y los mensajes diferidos. Las sesiones limpias no se guardan: por especificación mueren con la conexión.

¿Se admite el clustering?

No. El broker está diseñado como un proceso único. Para enlazar varios brokers está el puente, que reenvía topics entre servidores en ambos sentidos.

¿Cómo veo lo que está pasando ahora mismo?

La sección Tráfico muestra un flujo en directo de mensajes y eventos del broker, con filtro y pausa, y el Resumen ofrece gráficas de ritmo, salud de la máquina y un flujo de eventos. Los datos llegan por WebSocket.

Mantenimiento

¿Cómo actualizo el broker en Debian o Ubuntu?

Junto con el resto del sistema: sudo apt-get update && sudo apt-get upgrade. No hace falta nada más, y los ajustes y los datos quedan intactos.

¿Cómo traslado la configuración a otro servidor?

Ajustes → Importar y exportar: descargue el archivo en el servidor antiguo y súbalo en el nuevo. Ajustes, usuarios y reglas se llevan consigo.

¿Dónde están los datos y los registros?

Los datos están en el directorio data junto al binario (en Linux, /opt/elxmqttbroker): broker.db, users.json y los certificados. En Linux los registros van a journald: journalctl -u elxmqttbroker -f.

¿Cómo sé qué versión se está ejecutando?

La versión, el número de compilación y la fecha están grabados en el binario: aparecen al pie de la barra lateral, en la sección Acerca de y al ejecutar elxmqttbroker -version.

¿Puedo desactivar la persistencia del estado?

Sí, con persistence: false en config.json. Entonces todo se guarda solo en memoria y se pierde al reiniciar, lo que tiene sentido en bancos de pruebas.

¿No ha encontrado la respuesta?

Escríbanos: intentaremos ayudarle y ampliar esta sección.

serjaru@gmail.com Consultar la documentación