LogFiles explodieren

  • Guten Morgen,



    ich hatte nach einem Neustart meines raspberry das Problem, dass homebridge nicht mehr hoch kam. Ich habe dann gemerkt, dass die Logfile


    /var/log/homebridge.log und .err


    jeweils mehr al 2GB groß waren. Ich habe sie gelöscht und alles ist gut, homebridge startet wieder.


    Die neuen Log-Files werden aber auch ziemlich schnell groß, ich habe auch einige Geräte (Fritz! und Shelly) eingebunden. Kann ich irgendwo den Log-Level senken, damit die Files nicht so schnell so groß werden?

    • Hilfreich

    Die neuen Log-Files werden aber auch ziemlich schnell groß, ich habe auch einige Geräte (Fritz! und Shelly) eingebunden. Kann ich irgendwo den Log-Level senken, damit die Files nicht so schnell so groß werden?

    Linux-Betriebssysteme bieten oft einen Mechanismus an, der Logfiles automatisch nach einer bestimmten Zeit oder bei einer bestimmten Größe automatisch komprimiert und nach einer Weile löscht. Dieser Mechanismus heißt logrotate.


    Dabei handelt es sich um ein Programm, das man auf ein oder mehrere Logs ansetzen kann und das je nach Konfiguration entweder

    • ein Log nach einem bestimmten Zeitraum komprimiert (beispielsweise alle vier Tage) oder
    • ein Log bei einer bestimmten Größe komprimiert (beispielsweise, wenn es größer als 100 MB ist)

    Beispielsweise wird dabei wird das Log /var/log/homebridge.log in /var/log/homebridge.log.1 umbenannt. Danach wird es mit gzip komprimiert und heißt dann /var/log/homebridge.log.1.gz. Gleichzeitig wird ein neues, leeres /var/log/homebridge.log angelegt, damit die Homebridge weiter loggen kann.


    Ist der Augenblick gekommen, dass das Log erneut zu groß oder zu alt wird, wird /var/log/homebridge.log.1.gz in /var/log/homebridge.log.2.gz umbenannt und danach passiert dann das gleiche wie im vorherigen Absatz beschrieben.


    Gleichzeitig werden diese komprimierten Logs aufbewahrt, entweder

    • für einen bestimmten Zeitraum (beispielsweise 28 Tage) oder
    • bis eine bestimmte Anzahl von komprimierten Logs vorhanden ist

    Danach werden sie gelöscht. Ein Blick mit ls -l /var/log zeigt solche komprimierten Logs an. Konfiguriert wird das in /etc/logrotate.d.


    sudo nano /etc/logrotate.d/homebridge


    Ein leerer Editor wird angezeigt. Dort hineinschreiben:

    Das sollte (und ich habe es nicht ausprobiert) die beiden Logs täglich rotieren, sieben komprimierte Dateien aufheben und dann löschen. Sollte eine Größe von 100 MB erreicht werden, bevor 24 Stunden vergangen sind, dann werden die Logs halt schon früher als daily rotiert.


    Abspeichern und das war es auch schon. Der Befehl logrotate -d /etc/logrotate.d/homebridge zeigt an, was passieren würde, wenn das Betriebssystem ihn automatisch ausführt.


    Stefan

  • Nö... leider doch nicht... :-(((


    Heute Morgen um 6:25 Uhr wurde das homebridge.err wegrotiert. Das hat gefunzt. Leider ist die Homebridge dann stehen geblieben, eine neue homebridge.err wurde nicht angelegt. Der Neustart hat aber sofort funktioniert.


    Spannend ist mein ursprüngliches Problem: Warum wächst mein Error-Log inner halb von 4 Tagen auf 100 MB an?


    Hier mal ein kurzes Beispiel aus meiner homebridge.err... davon habe ich ohne Ende im Log:


    [2019-12-29 22:05:40] [Fritz!Box] Fritz!Box session renewal failed

    [2019-12-29 22:05:40] [Fritz!Box] < getBatteryCharge failed

    Unhandled rejection getBatteryCharge failed

    Unhandled rejection getBatteryCharge failed

    [2019-12-29 22:05:40] [Fritz!Box] Fritz!Box session renewal failed

    [2019-12-29 22:05:40] [Fritz!Box] < getBatteryCharge failed

    Unhandled rejection getBatteryCharge failed

    Unhandled rejection getBatteryCharge failed

    [2019-12-29 22:05:40] [Fritz!Box] Fritz!Box session renewal failed

    [2019-12-29 22:05:40] [Fritz!Box] < getBatteryCharge failed

    Unhandled rejection getBatteryCharge failed

    Unhandled rejection getBatteryCharge failed

    [2019-12-29 22:05:40] [Fritz!Box] Fritz!Box session renewal failed

    [2019-12-29 22:05:40] [Fritz!Box] < getBatteryCharge failed

    Unhandled rejection getBatteryCharge failed

    Unhandled rejection getBatteryCharge failed

    [2019-12-29 22:05:40] [Fritz!Box] Fritz!Box session renewal failed

    [2019-12-29 22:05:40] [Fritz!Box] < getBatteryCharge failed

    Unhandled rejection getBatteryCharge failed

    Unhandled rejection getBatteryCharge failed

    Sun, 29 Dec 2019 21:05:42 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:42 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:43 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:44 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:45 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:45 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:45 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:49 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:49 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:50 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:50 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:50 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:51 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:52 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:52 GMT CoAP Server no cached entry found, emit request to upper layer

    Sun, 29 Dec 2019 21:05:53 GMT CoAP Server no cached entry found, emit request to upper layer

  • [2019-12-29 22:05:40] [Fritz!Box] Fritz!Box session renewal failed

    Da kann ich nicht helfen. Ich habe keine Fritz!Box.


    postrotate
    /usr/bin/killall -HUP homebridge
    endscript

    Ersetze /usr/bin/killall -HUP homebridge durch den Befehl, mit dem du deine Homebridge neustartest.

  • ...das war es leider auch nicht...


    Heute Morgen um 6:25 Uhr scheint der Logrotate dienst gelaufen zu sein. Das homebridge.log wurde wegrotiert aber kein neues angelegt. In meiner App wird homebridge als "nicht bereit" angezeigt, der Prozess scheint aber zu laufen bzw. tatsächlich neu gestartet worden zu sein-


    Die Ausgabe von ps -ef:


    root 6460 6396 0 06:25 ? 00:00:00 /bin/sh /etc/cron.daily/logrotate

    root 6461 6460 0 06:25 ? 00:00:00 /usr/sbin/logrotate /etc/logrotate.conf

    root 6462 6461 0 06:25 ? 00:00:00 sh -c /usr/bin/killall homebridge homebridge -U /root/.homebridge logrotate_script /var/log/homebridge.log

    root 6464 6462 5 06:25 ? 00:06:23 homebridge

    root 6487 6464 0 06:25 ? 00:00:13 homebridge-config-ui-x



    Hat noch jemand eine Idee?

  • Statt weiter an den Symptomen herumzudoktern, lass uns doch mal versuche zum „root-cause“ zurückzukommen. Was für ein Fritzbox Plugin nutzt Du denn da? es gibt ja mehrere. Poste vielleicht mal Dein Konfig, Passwörter etc ausgexxxt.


    Poste das bitte als CODE, das lässt sich leichter lesen. Das machst Du indem du hier im Editor das drittletzte Icon drückst und dann den Inhalt dort hinein kopierst.


    Wann hat das angefangen? hast Du kürzlich irgendwas geändert? Plugins upgedated?

    Was ist denn da Batteriebetrieben, das er den Batteriestand lesen will aber nicht kann?

    3 Mal editiert, zuletzt von bubffm ()

  • Ich nutze das

    Homebridge Fritz

    homebridge-fritz v0.8.0


    hier meine config.json, ist - glaube ich - recht übersichtlich ;)

  • Ich nutze das Homebridge Fritz

    homebridge-fritz v0.8.0


    Ok, ich würde Dir empfehlen, das hier zu nutzen: https://www.npmjs.com/package/homebridge-fritz-platform


    Wird Top gepflegt, konfiguriert sich mehr oder weniger selbst und von explodierenden Logs hab ich auch noch nichts gehört/gelesen :saint:


    Der Entwickler ist hier im Forum aktiv und es gibt ein ausführliches Thread hier: homebridge-fritz-platform

  • Hi,



    danke für den Hinweis. Das löst das Problem aber leider auch nicht... Ich habe jetzt einige Stunden mit meiner Homebridge verbracht. Das alte homebridge-fritz deinstalliert und das homebridge-fritz-plattform installiert. Bierfür musste ich noch node.js auf 10.15.3 updaten...


    Soweit alles erfolgreich.


    Das homebridge.err produziert aber alleine durch den Start ein 637 KB File, in dem ich beim besten Willen keine Fehler finde. Es schein in einem verbose- oder debug-Loglevel eingestellt zu sein, aber wo kann ich das ändern? Das homebridge.log ist sehr klein (ca. 12 KB).


    Hier ein kurzer Ausschnitt, damit ihr ein Gefühl habt, was da so geloggt wird:


    ...und das immer wieder...


    By the way: Ist es richtig, dass ich im fritz-plattform-Plugin alle smarthome-devices manuell in die config.json eintragen muss? Das andere konnte die Geräte selbständig auslesen.

  • Nach welcher Anleitung hast Du denn die Homebridge mal aufgesetzt? Nach der Anleitung hier in Smartapfel?


    Sieht definitv sehr merkwürdig aus, aber die Fritzbox Fehler scheinen weg zu sein. Die „CoAP“ Fehlermeldungen sagen mir garnichts. Hast du da MQTT oder sowas laufen?


    Ich hab keine FritzSmarthomeDevices (mehr) aber wenn ich mich recht entsinne musst Du die einzeln eingaben. Aber die Anleitung für das Plugin ist eigentlich recht ausführlich. Da mal reinschauen.

    Einmal editiert, zuletzt von bubffm ()

  • Hi... ich habe heute den faulen Neujahrstag genutzt um meine homebridge komplett neu aufzusetzen. Jetzt funzt alles, wie es soll.


    Danke an alle, die geholfen haben und ich wünsche euch ein erfolgreiches und gesundes 2020