Utilisation du disque par les logs Mosquitto

Salut à tous, spécialement @cicoub13 et @pierre-gilles,

J’ai eu une alerte sur mon instance Gladys (mini-pc), car l’espace disque était faible.
En investiguant, c’est causé par un conteneur.

Ce conteneur correspond à eclipse-mosquitto, utilisé par le service Zigbee2MQTT ou par MQTT, je ne suis pas certain.
Cela est confirmé par le fichier d’info à la source de ce dossier :

En grattant un peu plus loin, un redémarrage du conteneur n’a rien changé. En fait, c’est un fichier unique qui utilise toute la place :

/var/lib/docker/containers/9991e6bed47295b41c61b190cfb4168c0a2fe282b561e4afa950ceb8a2dbf781/9991e6bed47295b41c61b190cfb4168c0a2fe282b561e4afa950ceb8a2dbf781-json.log

Ce fichier de log utilise 24 Go !

Voici un extrait :

{"log":"1668743198: Sending PUBLISH to mqttjs_85adae46 (d0, q0, r0, m0, 'zigbee2mqtt/capteurQualitéDeLair', ... (35 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.13707785Z"}
{"log":"1668743198: Received PUBLISH from mqttjs_85adae46 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (283 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.650861947Z"}
{"log":"1668743198: Sending PUBLISH to gladys-main-instance-362751 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (283 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.650892565Z"}
{"log":"1668743198: Sending PUBLISH to gladys-main-instance-372063 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (283 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.650919128Z"}
{"log":"1668743198: Sending PUBLISH to NodeRed-6dda341ee7a029cb (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (283 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.650951475Z"}
{"log":"1668743198: Sending PUBLISH to mqttjs_85adae46 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (283 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.651049516Z"}
{"log":"1668743198: Received PUBLISH from mqttjs_85adae46 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (135 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.651070441Z"}
{"log":"1668743198: Sending PUBLISH to gladys-main-instance-362751 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (135 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.651075885Z"}
{"log":"1668743198: Sending PUBLISH to gladys-main-instance-372063 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (135 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.651112656Z"}
{"log":"1668743198: Sending PUBLISH to NodeRed-6dda341ee7a029cb (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (135 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.651137601Z"}
{"log":"1668743198: Sending PUBLISH to mqttjs_85adae46 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (135 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.651298518Z"}
{"log":"1668743198: Received PUBLISH from mqttjs_85adae46 (d0, q0, r1, m0, 'zigbee2mqtt/capteurQualitéDeLair', ... (35 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.651313521Z"}
{"log":"1668743198: Sending PUBLISH to gladys-main-instance-362751 (d0, q0, r0, m0, 'zigbee2mqtt/capteurQualitéDeLair', ... (35 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.651318495Z"}
{"log":"1668743198: Sending PUBLISH to gladys-main-instance-372063 (d0, q0, r0, m0, 'zigbee2mqtt/capteurQualitéDeLair', ... (35 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.651322586Z"}
{"log":"1668743198: Sending PUBLISH to NodeRed-6dda341ee7a029cb (d0, q0, r0, m0, 'zigbee2mqtt/capteurQualitéDeLair', ... (35 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.651328966Z"}
{"log":"1668743198: Sending PUBLISH to mqttjs_85adae46 (d0, q0, r0, m0, 'zigbee2mqtt/capteurQualitéDeLair', ... (35 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.651354167Z"}
{"log":"1668743198: Received PUBLISH from mqttjs_85adae46 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (283 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.693765258Z"}
{"log":"1668743198: Sending PUBLISH to gladys-main-instance-362751 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (283 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.693813636Z"}
{"log":"1668743198: Sending PUBLISH to gladys-main-instance-372063 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (283 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.693829505Z"}
{"log":"1668743198: Sending PUBLISH to NodeRed-6dda341ee7a029cb (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (283 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.69383429Z"}
{"log":"1668743198: Sending PUBLISH to mqttjs_85adae46 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (283 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.693881662Z"}
{"log":"1668743198: Received PUBLISH from mqttjs_85adae46 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (127 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.693935993Z"}
{"log":"1668743198: Sending PUBLISH to gladys-main-instance-362751 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (127 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.693942686Z"}
{"log":"1668743198: Sending PUBLISH to gladys-main-instance-372063 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (127 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.693996451Z"}
{"log":"1668743198: Sending PUBLISH to NodeRed-6dda341ee7a029cb (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (127 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.694010852Z"}
{"log":"1668743198: Sending PUBLISH to mqttjs_85adae46 (d0, q0, r0, m0, 'zigbee2mqtt/bridge/logging', ... (127 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.694042749Z"}
{"log":"1668743198: Received PUBLISH from mqttjs_85adae46 (d0, q0, r1, m0, 'zigbee2mqtt/capteurQualitéDeLair', ... (27 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.694107082Z"}
{"log":"1668743198: Sending PUBLISH to gladys-main-instance-362751 (d0, q0, r0, m0, 'zigbee2mqtt/capteurQualitéDeLair', ... (27 bytes))\n","stream":"stderr","time":"2022-11-18T03:46:38.694133106Z"}

Correction à prévoir ?

S’agissant probablement d’un « bug », il faudrait forcer la « vidange » de ce fichier tous les jours pendant la sauvegarde de Gladus par exemple.

Merci pour l’alerte.
On pourrait réduire le log_type pour retenir que les warning/error.
Je ne vois pas d’option pour réduire la rétention des logs, donc le nettoyage serait à développer par nous :neutral_face:

Sur l’image raspberry je défini un réglage par défaut dans la conf docker

Je te propose de modifier ta conf docker, de delete le log et redémarrer le daemon docker.

3 « J'aime »

Effectivement il manque l’option "–log-opt max-size=10m " dans le docker run des intégration MQTT (et peut-être Zigbee2mqtt aussi), comme on fait avec le container Gladys ( Installation avec Docker | Gladys Assistant )

Il faut le rajouter, c’est un problème je suis d’accord!

Issue créée:

2 « J'aime »

J’ai fait un 1er correctif pour MQTT :

2 « J'aime »

Merci @AlexTrovato pour la PR, j’ai testé et ça marche bien de mon côté, j’ai mergé :pray:

Pour info, les containers existant seront automatiquement relancé avec le bon paramètre à la prochaine mise à jour de Gladys, et ça cleanera automatiquement les logs existantes.

2 « J'aime »

@pierre-gilles j’ai fait la même pour zigbee, mais celle-ci je ne peut pas la tester, car il faut une clé zigbee pour créer les containers.

1 « J'aime »

Tu peux créer une image docker ? Je ferai le test

Tu trouveras le nom de l’image dans la description de la PR sur github :wink:
Depuis elle devrait avoir été générée.

2 « J'aime »

Merci @AlexTrovato ! J’attend le retour de @cicoub13 sur la partie fonctionnelle

Tu voudrais une clé USB Zigbee @AlexTrovato ?

Salut,
Pour le développement c’est vrai que ce serait plus simple que je sois équipé d’une clé et au moins un capteur, surtout que j’envisage d’autres changements, comme pouvoir se connecter à un z2m distant.
Et ça allergera Vonox, il pourra récupérer son environnement pour lui :wink:

2 « J'aime »

Ou comment permettre de controler deux maisons à distance pour le coup !

1 « J'aime »

C’était du spare @AlexTrovato t’inquiète pas

Je peux t’envoyer une clef zigbee2mqtt, j’ai une dont je me sert pas.

Trop bien le Z2M distant :star_struck:

Merci @Tlse-vins ! :pray: Je vous laisser vous débrouiller entre vous pour la clé?

Pour les devices, tu voudrais un ou plusieurs devices @AlexTrovato ? Tu voudrais quoi idéalement ? Le père Noël Gladys Assistant peut passer avec un peu de retard :stuck_out_tongue:

Ahah super, on dira la mère Noël !! :heart:

Je pense qu’un actionneur type prise et un capteur de température (ou multi capteur) feront un bon starter kit.
Mais si on a une idée pour des intégrations plus complexes, ça peut être l’occasion.

@AlexTrovato Je te propose ça pour la prise:

Comme ça t’as la mesure de la consommation

Pour un capteur température/humidité, tout est en rupture de stock en ce moment, j’avais vu celui là mais pas dispo avant fin février:

Sinon j’ai trouvé un produit un peu « marrant » et qui rend les tests facile vu que tu peux cliquer dessus:

Je pense qu’on le gère pas en plus donc ça peut-être sympa :slight_smile:

Sinon tu peux regarde sur cette recherche si tu vois un truc utile: Soldes Domadoo capteurs Zigbee en stock :wink:

Les prises ça renvoie une valeur toutes les minutes voire plus en fonction de la consommation. Pratique aussi pour avoir des valeurs en continue.

C’est une une CC2652R ZZh que j’ai, si tu veux que je te l’envoie, en MP donne moi ton adresse.

Elle est top celle là !