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




Home Assistantのシステムログイベントを監視し、構造化されたログイベントをリモートの SyslogまたはOpenTelemetry(OTLP)コレクターに送信します。ライフサイクルイベント、サービス呼び出し、設定更新、状態変化など、他のHome Assistantイベントをオプションで転送することもできます。

OTELスタックトレースの例

ログ構造はHome Assistantの内部イベントから保持されるため、複数行のログやスタックトレースは単一のログエントリとして保存されます。コンソールスクレーパーとは異なり、1行につき1イベントを作成することなく、スクリプト名、行番号、バージョンが正確に記録されます。

サポート対象はHome Assistantサーバー本体とそのカスタムコンポーネントのみです。アプリ(以前は「アドイン」と呼ばれていた)、HAOS、またはHAスーパーバイザーのログはキャプチャ可能なイベントとして提供されないため、別の解決策が必要です。Bert BaronのLogSpout Home Assistant Appがこれらをカバーします。Remote Loggerと組み合わせて使用することで、Home Assistantが優れた構造化ログを持ち、それ以外もすべて少なくとも記録されるようになります。

インストール

Remote LoggerはHACSコンポーネントのため、まずGetting Started with HACSの手順に従ってHACSをインストールしてください。

このインテグレーションはHome Assistantのインテグレーションページからインストールでき、YAMLの設定は不要です。

インテグレーションを選択

ただし、system_log_eventのイベント転送を有効にするため、Home AssistantのSystem LogインテグレーションのYAMLを変更する必要があります。

yaml title="Home Assistantの設定" system_log: fire_event: true

Open Telemetry(OTEL)

ログはOpen Telemetry Logs仕様に従い、Open Telemetry Protocol(OTLP)接続を通じてProtobufまたはJSON形式で送信されます。現在はHTTPのみ対応です(将来的にgRPCが追加される可能性があります)。

OTLPの設定

詳細はOpenTelemetry Loggingを参照してください。

ログレコードはまとめてバッチ送信されます。

Syslog

メッセージはOTELタクソノミーを使用した追加の構造化データ(追加属性を参照)とともに、新しいRFC5424形式で送信されます。

SyslogはTCPまたはUDPで送信できます。

Syslogの設定

イベント

システムログイベント

このイベントはデフォルトでは発火しないため、インストールの有効化要件に注意してください。

Remote Loggerはイベントループの発生を防ぐため、自身のログイベントをストリームから除外します。代わりに、エラーの統計とメッセージは診断エンティティとして利用できます。

追加属性

Home Assistantのログイベントから直接取得された以下の追加属性が、SyslogのSTRUCTURED-DATA属性またはOTEL属性として提供されます。

  • code.file.path
  • code.line.number
  • code.function.name(Home Assistantのlogger値)
  • exception.count
  • exception.first_occurred
  • exception.stacktrace

SyslogのこのレベルではOTELタクソノミーに標準的な対応物がないため、OTELとSyslogの両方でOTELタクソノミーが使用されます。

その他のイベント

Remote Loggerは任意のHome Assistantイベントを記録でき、より読みやすいメッセージを作成するためにコアイベントを把握しています。

利便性のため、4つの事前定義されたイベントバンドルを有効にできます。

バンドル 説明
ライフサイクル Home Assistantサーバーの起動・停止イベント
コア変更 コンポーネントやサービスのロード・アンロード、設定の再適用
コアアクティビティ アクション、モバイルアクション、スクリプト、オートメーション実行
状態変化 エンティティの状態変化とログブックエントリ(大量のログを避けるため属性・コンテキストなし)
完全な状態変化 エンティティの状態変化とログブックエントリ(完全・未加工)

フリーフォームのイベントボックスを代替として使用し、特定のHome Assistantイベントやカスタムコンポーネントのイベントを選択することもできます。

OpenObserveのHome Assistantイベント

ログサーバー

ログのキャプチャ、分析、集約、保存には無数のソリューションがあります。

うまく機能する組み合わせはVectorGreptimeDbです。高速、軽量、オープンソース、カスタマイズ可能で、Dockerで動作します。VectorはOTELロギングとSyslogをサポートし、各ソースを細かく調整するための優れたリマッピング機能を備えています。その後、DockerサーバーやファイアウォールやUnifiスイッチなどあらゆるソースのログをサーバー・ネットワークメトリクスとともに1つのタイムラインに集約することが容易になります。

診断エンティティ

Home Assistantのセンサーが作成・更新され、ログアクティビティを監視するとともに、ログメッセージの生成やリモートサーバーへの送信中に発生したエラーも追跡します。

診断エンティティ

Home Assistant向けRhizomaticsオープンソース

HACS

  • AutoArm - 物理ボタン、在宅検知、カレンダー、太陽位置などを使用してHome Assistantのアラームコントロールパネルを自動的にアーム・ディスアームする
  • Supernotify - ドアベルやセキュリティカメラの強力な統合を含む、簡単なマルチチャンネルメッセージングのための統合通知。

Python / Docker

  • Anpr2MQTT - ファイルシステム(NAS/FTP)経由でANPR/ALPRナンバープレートカメラをMQTTに接続し、オプションの画像分析とUK DVLA連携を提供。
  • Updates2MQTT - Dockerイメージの更新をMQTT経由で自動通知。イメージからバージョンやリリースノートを抽出する高度な処理と、Home Assistantからコンテナのリモートプル・再起動オプションも提供。PyPIでも利用可能。