Saltar a contenido

Source: Centralized Log Management con HA + Loki + Grafana

Guía con docker-compose y configs reales para enviar logs de HA a Loki, visualizar en Grafana, y crear alertas LogQL proactivas. Ejemplo central: detectar Zigbee motion sensor que se desconecta intermitentemente vía count_over_time({...component="...zha", level="ERROR"} |= "failed to connect"[15m]) > 2.

Por qué entró al wiki

  • Pregunta guía Q5 core: stack de observabilidad concreto y deployable.
  • Habilita Q10 (agente AI): el agente lee logs vía LogQL para diagnosticar; sin Loki + queries declarativas, el agente está ciego.
  • Habilita "no tinkering": alerts proactivas detectan rotura antes que el usuario lo note.

Páginas derivadas

Take-aways

Stack y deployment

  • Loki: log aggregation engine. Config en YAML, retention configurable (default 30 días en la guía).
  • Promtail: scrapes /var/log/home-assistant.log y otros, ships a Loki. Filter en source si querés reducir noise.
  • Grafana: visualization + alerting. Data source = Loki.
  • Todo deployable como containers (docker run / compose) — fit perfecto con el setup mini-PC propuesto.

LogQL queries útiles (templates)

# Todos los errores HA en ventana móvil
count_over_time({job="homeassistant", level="ERROR"}[5m]) > 0

# Zigbee connection errors específicamente (catch intermittent glitches)
count_over_time({job="homeassistant", component="homeassistant.components.zha", level="ERROR"} |= "failed to connect"[15m]) > 2

# Filtro por componente
{job="homeassistant", component="homeassistant.components.zha"}

# Búsqueda libre
{job="homeassistant"} |= "device disconnected"

Patrón "proactive monitoring"

"Search across all logs, create custom dashboards, set up alerts for critical events."

Vs el patrón reactivo de "abrir HA UI y scrollear logs cuando algo falla".

Tuning de noise

  • En HA logger: subir/bajar level por component (ej. ZHA → debug temporalmente).
  • En Promtail pipeline_stages: drop reglas por regex (ej. drop DEBUG de ESPHome).

Citas

  • "Transform from a reactive debugging process into a proactive, insightful monitoring strategy."

  • Retention recommended default: 30 días.

Abierto / gaps

  • Templates de Grafana dashboards específicos para smart home — sin JSON listo, hay que armar.
  • Patrón equivalente para Z2M logs (no HA logs) — Z2M loguea distinto. Necesitamos un Promtail job aparte.
  • Patrón para ESPHome logs centralizados — cada device tiene su propio output.
  • Integración con el agente AI (Q10): cómo se le pasa al agente "una query LogQL como contexto" para diagnosticar.