Skip to content

Remote Logger

Home Assistant Remote Logger

Rhizomatics Open Source hacs

Ruff pre-commit.ci status Coverage Tests Github Deploy CodeQL Dependabot Updates




Lauscht auf Home Assistant-Systemprotokollereignisse und sendet strukturierte Protokollereignisse an einen entfernten Syslog- oder OpenTelemetry (OTLP)-Collector. Optional werden weitere Home Assistant-Ereignisse weitergeleitet, z. B. Lebenszyklusereignisse, Dienstaufrufe, Konfigurationsaktualisierungen und Zustandsänderungen.

Beispiel OTEL Stack Trace

Die Protokollstruktur wird vom internen Home Assistant-Ereignis beibehalten, sodass mehrzeilige Protokolle und Stack Traces als einzelne Protokolleinträge erhalten bleiben – im Gegensatz zu Console-Scrapern, die pro Zeile ein Ereignis erstellen. Skriptnamen, Zeilennummern und Versionen werden dabei korrekt erfasst.

Unterstützt wird ausschließlich der Home Assistant-Server selbst mit seinen benutzerdefinierten Komponenten. Protokolle von Apps (ehemals „Add-ins"), HAOS oder dem HA-Supervisor werden nicht als erfassbare Ereignisse bereitgestellt und erfordern daher eine alternative Lösung. Bert Barons LogSpout Home Assistant App deckt diese Fälle ab. Sie kann in Kombination mit Remote Logger verwendet werden, damit Home Assistant gute strukturierte Protokolle hat und alles andere zumindest protokolliert wird.

Installation

Remote Logger ist eine HACS-Komponente, die daher zuerst installiert werden muss. Die Anleitung dazu findet sich unter Getting Started with HACS.

Die Integration wird über die Home Assistant-Integrationsseite installiert und erfordert keine YAML-Konfiguration.

Integration auswählen

Allerdings ist eine YAML-Änderung an der Home Assistant-Integration System Log erforderlich, um die Ereignisweiterleitung für system_log_event zu aktivieren.

yaml title="Home Assistant-Konfiguration" system_log: fire_event: true

Open Telemetry (OTEL)

Protokolle werden gemäß der Open Telemetry Logs-Spezifikation über eine Open Telemetry Protocol-Verbindung (OTLP) gesendet, entweder als Protobuf oder JSON, derzeit ausschließlich über HTTP (gRPC könnte in Zukunft hinzugefügt werden).

OTLP konfigurieren

Weitere Informationen finden sich unter OpenTelemetry Logging.

Protokolleinträge werden gesammelt und gebündelt gesendet.

Syslog

Nachrichten werden im neueren Format RFC5424 mit zusätzlichen strukturierten Daten gemäß OTEL-Taxonomie gesendet (siehe Zusätzliche Attribute).

Syslog kann per TCP oder UDP übertragen werden.

Syslog konfigurieren

Ereignisse

System-Log-Ereignis

Hinweis auf die Anforderung unter Installation, dieses Ereignis zu aktivieren, das standardmäßig nicht ausgelöst wird.

Remote Logger schließt eigene Protokollereignisse aus dem Stream aus, um mögliche Ereignisschleifen zu verhindern. Alternativ stehen Fehlerstatistiken und -meldungen als diagnostische Entitäten zur Verfügung.

Zusätzliche Attribute

Die folgenden zusätzlichen Attribute, die direkt aus dem Home Assistant-Protokollereignis abgeleitet werden, stehen als Syslog-STRUCTURED-DATA-Attribute oder OTEL-Attribute zur Verfügung.

  • code.file.path
  • code.line.number
  • code.function.name (dies ist der logger-Wert von Home Assistant)
  • exception.count
  • exception.first_occurred
  • exception.stacktrace

Die OTEL-Taxonomie wird sowohl für OTEL als auch für Syslog verwendet, da es auf dieser Syslog-Ebene keine standardisierte Taxonomie gibt.

Weitere Ereignisse

Remote Logger kann beliebige Home Assistant-Ereignisse protokollieren und kennt die wichtigsten davon, um lesbarere Meldungen zu erzeugen.

Der Einfachheit halber können vier vordefinierte Ereignis-Bundles aktiviert werden.

Bundle Beschreibung
Lebenszyklus Start- und Stoppereignisse des Home Assistant-Servers
Kernänderungen Laden oder Entladen von Komponenten und Diensten, Konfiguration neu angewendet
Kernaktivität Aktionen, mobile Aktionen, Skripte, ausgeführte Automatisierungen
Zustandsänderungen Zustandsänderungen von Entitäten und Logbucheinträge, ohne Attribute und Kontext um übermäßig große Protokolleinträge zu vermeiden
Vollständige Zustandsänderungen Zustandsänderungen von Entitäten und Logbucheinträge, vollständig und ungekürzt

Das Freitextfeld für Ereignisse kann alternativ verwendet werden, um spezifische Home Assistant-Ereignisse oder andere Ereignisse benutzerdefinierter Komponenten auszuwählen.

Home Assistant-Ereignisse in OpenObserve

Protokoll-Server

Es gibt unzählige Lösungen zum Erfassen, Analysieren, Aggregieren und Speichern von Protokollen.

Eine gut funktionierende Kombination ist Vector und GreptimeDb – schnell, schlank, Open Source, anpassbar und unter Docker lauffähig. Vector unterstützt OTEL-Logging sowie Syslog und bietet gute Remapping-Möglichkeiten zur Feinabstimmung jeder Quelle. Protokolle von Docker-Servern, Firewalls, Unifi-Switches oder anderen Quellen lassen sich dann einfach in einer gemeinsamen Zeitachse zusammenführen, zusammen mit Server- und Netzwerkmetriken.

Diagnostische Entitäten

Home Assistant-Sensoren werden erstellt und aktualisiert, um die Protokollaktivität sowie etwaige Fehler bei der Erzeugung von Protokollmeldungen oder deren Übertragung an entfernte Server zu überwachen.

Diagnostische Entitäten

Rhizomatics Open Source für Home Assistant

HACS

  • AutoArm - Scharf- und Unscharfschalten von Home Assistant-Alarmzentralen automatisch mit physischen Tasten, Anwesenheit, Kalendern, Sonnenstand und mehr
  • Supernotify - Einheitliche Benachrichtigung für einfaches Multi-Kanal-Messaging, einschließlich leistungsstarker Türklingel- und Sicherheitskameraintegration.

Python / Docker

  • Anpr2MQTT - Integration von ANPR/ALPR-Kennzeichenkameras über Dateisystem (NAS/FTP) nach MQTT mit optionaler Bildanalyse und UK DVLA-Integration.
  • Updates2MQTT - Automatische Benachrichtigung per MQTT über Docker-Image-Updates, mit erweiterter Verarbeitung zur Extraktion von Versionen und Release-Notes aus Images sowie der Möglichkeit, Container-Pulls und -Neustarts aus Home Assistant heraus fernzusteuern. Auch verfügbar auf PyPI