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¶
- ../concepts/centralized-logging-stack — el patrón (Loki + Promtail + Grafana).
- ../analysis/q5-observability-stack-v1 — síntesis para el setup del usuario.
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.logy 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.