Mosquitto sur Raspberry Pi refuse la connexion après avoir modifié les paramètres du journal


12

Dans mes efforts continus pour que mon Raspberry Pi commande mes affaires, j'ai mis en place un courtier Mosquitto MQTT. Dans les paramètres de base, tout s'est assez bien passé.

Je pouvais poster des messages de test avec la commande de publication et les recevoir avec la commande d'abonnement. J'ai ensuite décidé d'augmenter le niveau de journalisation et de modifier le fichier mosquitto.conf comme suit. La version avec essentiellement toute la section journal a commenté les travaux. L'autre ne le fait pas.

Je l'ai réduit à la ligne avec le fichier journal.

$ 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

Le fichier existe et appartient à mosquitto:mosquittol'utilisateur qui exécute le service.

Le message très utile que j'obtiens lorsque j'essaie de me connecter est le suivant:

mosquitto_pub -h localhost -t thisisme -m 5
Error: Connection refused

À présent, je suis sûr que le service meurt d'une mort silencieuse.

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

J'utilise Raspbian GNU / Linux 8 (jessie) avec les packages mosquitto suivants:

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]

Autre commentaire demandé des informations:

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

Le seul fichier journal dans / var / log qui est modifié est le auth.log de mon sudo.

Qu'est-ce que j'ai cassé?


Y a-t-il quelque chose à quoi écrire /var/log/mosquitto/mosquitto.log?
Aurora0001

1
@ Aurora0001 rien relatif à cette tentative de connexion, non
Helmar

Quel OS? Quelle version de moustique?
Ghanima

@Ghanima a ajouté l'info
Helmar

Pouvez-vous essayer de le restaurer dans l'ancien fichier de configuration et de vérifier? Très stupide: consultez le journal d'état du
moustique

Réponses:


8

Une façon de déboguer cela serait d'exécuter manuellement moustique avec les mêmes options que votre système d'initialisation utilise, puis regardez la sortie. Par exemple:

mosquitto -v -c <path to config file>

L'ajout -vgarantit que vous disposez d'une journalisation détaillée, quels que soient les paramètres du fichier de configuration.


3
Cela a aidé, apparemment, il y a un deuxième mosquitto.conf dans / etc / mosquitto qui comprenait celui que j'utilisais dans /etc/mosquitto/conf.d/. Ce premier fichier avait déjà cet ensemble de fichiers journaux standard. Ainsi, la création d'une valeur d'erreur: Duplicate "log_dest file". ce qui a empêché le service de démarrer correctement. D'une manière ou d'une autre, cette erreur ne s'est pas produite lors de l'utilisation de la routine de démarrage de service habituelle.
Helmar

6

Sur Arch Linux (4.4.37-1-ARCH) avec mosquitto 1.4.10-2et un fichier journal / chemin d'accès existant avec des autorisations en tant que telles, je ne peux pas reproduire cette erreur.

/var/log/mosquitto $ ls -l
-rw-r--r-- 1 mosquitto root 7832 Jan 5 18:15 mosquitto.log

Si les autorisations du fichier journal diffèrent cependant, ou s'il n'existe pas et que l'autorisation des répertoires ne permet pas à moustique d'y écrire, le démarrage du démon du courtier échoue. Ce qui mène à Error: Connection refusedla publication ou à l'inscription de sujets. Au moins le service ne meurt pas d'une mort silencieuse mais l'annonce bien dans le syslog.

En bref, avec le répertoire /var/log/mosquittodétenu et accessible en écriture par l'utilisateur du moustique, une log_dest file [...]ligne dans la configuration du moustique fonctionne très bien.


6

Le répertoire / fichier journal doit appartenir à l' mosquittoutilisateur ou à l'utilisateur que vous avez configuré dans le fichier et le groupe conf. J'ai essayé avec deux fichiers conf un avec log_dest file /var/log/mosquitto/mosquitto.loget un avec la destination du journal dans le fichier.

Sur mon serveur, Mosquitto fonctionne avec l' mosquittoutilisateur.

Avec log_dest file /var/log/mosquitto/mosquitto.logappartenant à l' rootutilisateur ne fonctionne pas avec une erreur d'état du service. Cela pourrait probablement être le cas pour vous également. Vérifiez service statusaprès avoir ajouté log_dest.

J'ai essayé de changer la propriété du /var/log/mosquittodossier en mosquitto.

sudo chown -R mosquitto:mosquitto /var/log/mosquitto

Puis a commencé le service. Ça fonctionne bien maintenant.


J'avais le propriétaire du fichier auparavant, maintenant j'ai également créé un groupe et changé les autorisations comme suggéré, mais pas de chance.
Helmar

@Helmar hmm! cela est étrange. Après avoir changé de groupe, avez-vous redémarré ou démarré le service?
bravokeyl

@Helmar Pouvez-vous vérifier à nouveau si (vous avez créé) le répertoire de destination du journal existe?
bravokeyl

Le fichier et le répertoire existent et appartiennent à mosquitto: mosquitto
Helmar
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.