En mis esfuerzos continuos para que mi Raspberry Pi comandara mis cosas, configuré un corredor Mosquitto MQTT. En la configuración base, todo salió razonablemente bien.
Podría publicar mensajes de prueba con el comando de publicación y recibirlos con el comando de suscripción. Luego decidí subir el nivel de registro y modifiqué el archivo mosquitto.conf de la siguiente manera. La versión con la sección de registro esencialmente comentada funciona. El otro no.
Lo reduje a la línea con el archivo de registro.
$ diff mosquitto.conf mosquitto.conf.old
408,410c408,410
< #log_dest file /var/log/mosquitto/mosquitto.log
---
> log_dest file /var/log/mosquitto/mosquitto.log
El archivo existe y es propiedad mosquitto:mosquittodel usuario que ejecuta el servicio.
El mensaje muy útil que recibo cuando intento con el registro es el siguiente:
mosquitto_pub -h localhost -t thisisme -m 5
Error: Connection refused
Por ahora, estoy seguro de que el servicio muere una muerte silenciosa.
$ sudo service mosquitto status
● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker
Loaded: loaded (/etc/init.d/mosquitto)
Active: active (exited) since Fri 2017-01-06 11:16:38 CET; 4min 24s ago
Process: 2222 ExecStop=/etc/init.d/mosquitto stop (code=exited, status=0/SUCCESS)
Process: 2230 ExecStart=/etc/init.d/mosquitto start (code=exited, status=0/SUCCESS)
Jan 06 11:16:38 T-Pi mosquitto[2230]: Starting network daemon:: mosquitto.
Jan 06 11:16:38 T-Pi systemd[1]: Started LSB: mosquitto MQTT v3.1 message broker.
Estoy ejecutando Raspbian GNU / Linux 8 (jessie) con los siguientes paquetes mosquitto:
libmosquitto1/stable,now 1.3.4-2 armhf [installed,automatic]
mosquitto/stable,now 1.3.4-2 armhf [installed]
mosquitto-clients/stable,now 1.3.4-2 armhf [installed]
python-mosquitto/stable,now 1.3.4-2 all [installed]
Más comentarios solicitan información:
ls -ld /var /var/log /var/log/mosquitto /var/log/mosquitto/mosquitto.log
drwxr-xr-x 11 root root 4096 Sep 23 06:02 /var
drwxr-xr-x 8 root root 4096 Jan 6 21:07 /var/log
drwxr-xr-x 2 mosquitto mosquitto 4096 Jan 5 14:36 /var/log/mosquitto
-rw-r--r-- 1 mosquitto mosquitto 14233 Jan 6 21:07 /var/log/mosquitto/mosquitto.log
El único archivo de registro en / var / log que se modifica es el auth.log de mi sudo.
¿Qué rompí?
fuente

/var/log/mosquitto/mosquitto.logen absoluto?Respuestas:
Una forma de depurar esto sería ejecutar mosquitto manualmente con las mismas opciones que usa su sistema de inicio, luego observe la salida. Por ejemplo:
Agregar
-vasegurará que tenga un registro detallado, independientemente de la configuración del archivo de configuración.fuente
En Arch Linux (4.4.37-1-ARCH) con
mosquitto 1.4.10-2y un archivo de registro / ruta existente con permisos como tal, no puedo reproducir este error.Sin embargo, si los permisos del archivo de registro difieren, o no existe y el permiso de los directorios no permite que mosquitto escriba en él, el inicio del intermediario daemon falla. Lo que lleva a
Error: Connection refusedtemas de publicación o suscripción. Al menos el servicio no muere de muerte silenciosa pero lo anuncia bien en el syslog.En resumen, con el directorio que
/var/log/mosquittoposee y puede escribir el usuario de mosquitto, unalog_dest file [...]línea en la configuración de mosquitto funciona bien.fuente
El directorio / archivo de registro debe ser propiedad del
mosquittousuario o del usuario que ha configurado en el archivo y grupo conf. Intenté con dos archivos conf, uno con outlog_dest file /var/log/mosquitto/mosquitto.logy otro con el destino de registro para el archivo.En mi servidor, Mosquitto se está ejecutando con el
mosquittousuario.Con
log_dest file /var/log/mosquitto/mosquitto.logpropiedad delrootusuario no funciona con error de estado del servicio. Probablemente este sea el caso para usted también. Verifiqueservice statusdespués de agregar log_dest.Intenté cambiar la propiedad de la
/var/log/mosquittocarpeta amosquitto.Entonces comenzó el servicio. Funciona bien ahora.
fuente