Home Assistant: Logging einrichten und aufräumen
Von Home Assistant werden die Protokolle der Anwendung in einer eigenen Datei gespeichert. Je nach Anzahl der eingebundenen Geräte können da schon einige MB pro Tag zusammenkommen. Zusätzlich wird der Verlauf der unterschiedlichen Zustände in von der der Recorder-Komponente in der Home Assistant Datenbank aufgezeichnet. Insgesamt können sich da einige Daten ansammeln. Damit das Dateisystem nicht voll geschrieben wird, kann die Home Assistant Installation aber etwas angepasst werden.
1| Logrotate aktivieren
Wird Home Assistant in einem Python Virtual Environment ausgeführt und per systemctl
gestartet, so kann zusätzlich auch noch ein Log-Rotating aktiviert werden. Dazu muss beim Start der Parameter --log-rotate-days <LOG_ROTATE_DAYS>
mit angegeben werden. Sollen die Logs der letzten 5 Tage aufgehoben werden, so sollte das Start-Up-Script ungefähr folgende Zeile enthalten:
ExecStart=/srv/homeassistant/bin/hass -c "/home/%i/.homeassistant" --log-rotate-days 4
2| Recorder-Datenbank manuell bereinigen
In den Developer Tools von Home Assistant kann ein Purge der Recorder-Datenbank angestoßen werden .Wird dabei der Parameter repack
auf true
gesetzt, so wird die Datenbank dabei zusätzlich bereinigt und neu geschrieben.
Damit habe ich beispielsweise meine Datenbank von 1,7 GB auf 1,3 GB reduzieren können. Wenn das immer noch zu viel ist, so kann der Wert für die keep_days
natürlich noch verringert werden, so dass die Historie zusätzlich verkürzt wird. Dadurch konnte ich meine Recorder-DB beispielsweise auf xxx MB minimiert werden.
Hinweis: Wird der Service ausgeführt, so ist etwas Geduld angesagt. Je nach Größe der Datenbank kann es auch einige Stunden dauern bis der Purge-Vorgang abgeschlossen ist.
3| Recorder-Konfiguration anpassen
Damit die Datenbank gar nicht erst so groß wird, kann in der configuration.yaml
bestimmte Geräte von der Zustandsaufzeichnung ausgenommen werden. Welche Parameter dafür zur Verfügung stehen ist auf der Seite der Recorder-Integration ausführlich beschrieben.
Ich habe bei mir die Parameter auto_purge
und purge_keep_days
entsprechend angepasst und zusätzlich einige Devices und Domänen aus der Protokollierung herausgenommen:
recorder:
auto_purge: true
purge_keep_days: 5
exclude:
domains:
- updater
- media_player
entities:
- sensor.terra_i2c_internal
- sensor.terra_i2c_external
Kommentare