Festplattennutzung durch Mosquitto-Logs

Hallo zusammen, besonders @cicoub13 und @pierre-gilles,

Ich habe eine Warnung auf meiner Gladys-Instanz (Mini-PC) erhalten, weil der Speicherplatz knapp war.
Bei der Untersuchung stellte sich heraus, dass dies durch einen Container verursacht wurde.

image

Dieser Container entspricht eclipse-mosquitto, der vom Dienst Zigbee2MQTT oder von MQTT verwendet wird, ich bin mir nicht sicher.
Dies wird durch die Info-Datei am Ursprung dieses Ordners bestätigt:

Beim genauen Hinsehen hat ein Neustart des Containers nichts geändert. Tatsächlich ist es eine einzige Datei, die den gesamten Speicherplatz belegt:

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

Diese Logdatei belegt 24 GB!

Hier ist ein Auszug:

{"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"}

Sollte eine Korrektur vorgesehen werden?

Da es sich wahrscheinlich um einen „Bug“ handelt, müsste die „Leerung“ dieser Datei täglich während des Backups von Gladys erzwungen werden.

Danke für den Hinweis.
Man könnte den log_type auf warning/error reduzieren.
Ich sehe keine Option, um die Log-Retention zu reduzieren, also müsste die Bereinigung von uns entwickelt werden :neutral_face:

Auf dem Raspberry-Bild habe ich eine Standardkonfiguration in der Docker-Konfiguration definiert

https://github.com/GladysAssistant/gladys-pi-gen/blob/master/gladys/00-docker-install/files/daemon.json

Ich schlage vor, dass du deine Docker-Konfiguration änderst, das Log löschst und den Docker-Daemon neu startest.

Tatsächlich fehlt die Option "–log-opt max-size=10m " im docker run der MQTT-Integration (und vielleicht auch bei Zigbee2mqtt), wie wir es mit dem Gladys-Container machen (https://gladysassistant.com/de/docs/installation/docker/)

Man muss sie hinzufügen, das ist ein Problem, ich stimme zu!

Issue erstellt:

Ich habe einen ersten Fix für MQTT gemacht:

Danke @AlexTrovato für den PR, ich habe es getestet und es funktioniert auf meiner Seite gut, ich habe gemerged :folded_hands:

Zur Info, die bestehenden Container werden automatisch mit dem richtigen Parameter beim nächsten Update von Gladys neu gestartet, und das wird automatisch die bestehenden Logs bereinigen.

@pierre-gilles Ich habe das Gleiche für Zigbee gemacht, aber das hier kann ich nicht testen, weil man einen Zigbee-Schlüssel braucht, um die Container zu erstellen.

Kannst du ein Docker-Image erstellen? Ich werde es testen.

Du findest den Namen des Bildes in der Beschreibung des PR auf GitHub :wink:
Seitdem sollte es generiert worden sein.

Danke @AlexTrovato! Ich warte auf die Rückmeldung von @cicoub13 zum funktionalen Teil

Möchtest du einen Zigbee-USB-Stick @AlexTrovato?

Hallo,
Für die Entwicklung wäre es tatsächlich einfacher, wenn ich einen Schlüssel und mindestens einen Sensor hätte, besonders da ich weitere Änderungen plane, wie die Möglichkeit, sich mit einem entfernten z2m zu verbinden.
Und das würde Vonox entlasten, er könnte seine Umgebung wieder für sich selbst zurückbekommen :wink:

Oder wie man zwei Häuser aus der Ferne steuern kann!

Das war doch nur Spaß @AlexTrovato, mach dir keine Sorgen

Ich kann dir einen Zigbee2mqtt-Adapter schicken, ich habe einen, den ich nicht benutze.

Toll, das entfernte Z2M :star_struck:

Danke @Tlse-vins! :folded_hands: Darf ich euch den Schlüssel untereinander ausmachen lassen?

Bei den Geräten, möchtest du ein oder mehrere Geräte @AlexTrovato? Was würdest du dir idealerweise wünschen? Der Weihnachtsmann Gladys Assistant kann mit etwas Verspätung vorbeikommen :stuck_out_tongue:

Ahah super, das wird die Mutter aller Weihnachtsgeschenke!! :heart:

Ich denke, ein Steckdosen-Aktuator und ein Temperatursensor (oder Multisensor) wären ein guter Starter-Kit.
Aber wenn wir eine Idee für komplexere Integrationen haben, könnte das eine Gelegenheit sein.

@AlexTrovato Ich schlage dir das für die Steckdose vor:

Damit hast du den Verbrauch im Blick.

Für einen Temperatur-/Feuchtigkeitssensor ist im Moment alles ausverkauft, ich hatte diesen hier gesehen, aber er ist erst ab Ende Februar verfügbar:

Ansonsten habe ich ein etwas „lustiges“ Produkt gefunden, das die Tests erleichtert, da du darauf klicken kannst:

Ich glaube, wir unterstützen das nicht, aber es könnte trotzdem nett sein :slight_smile:

Ansonsten kannst du hier nachschauen, ob du etwas Nützliches findest: Domadoo Zigbee-Sensoren im Angebot und auf Lager :wink:

Die Steckdosen geben alle Minuten oder sogar häufiger einen Wert zurück, je nach Verbrauch. Praktisch auch, um kontinuierliche Werte zu haben.

Ich habe eine CC2652R ZZh, falls du sie haben möchtest, schick mir deine Adresse per PN.

Die ist Spitze!