Loki
Agregador de logs del cluster. Recibe los logs que le envía Alloy (pods +
journald de nodos) y los sirve para consulta vía Grafana.
Resumen
Loki en modo single-binary (un único proceso: ingester + querier + compactor),
adecuado para el volumen modesto del homelab. Los logs persisten en un PVC de
Longhorn con retención de 30 días (a diferencia del Loki legacy, que era efímero
en /tmp).
Estado
| Campo |
Valor |
| Estado |
Operativo |
| Argo CD Application |
loki |
| Namespace |
monitoring |
Despliegue
| Campo |
Valor |
| Método |
Helm chart |
| Chart / imagen |
loki@7.3.0 (app 3.6.12) |
| Origen |
https://grafana.github.io/helm-charts |
| Config en el repo |
clusters/luka/apps/loki/application.yaml |
Red
| Campo |
Valor |
| Service |
loki (ClusterIP :3100) |
| IP |
— |
| URL interna |
— (sin HTTPRoute; acceso intra-cluster) |
| URL externa |
— |
| TLS |
— |
Acceso y usuarios
- Sin autenticación (acceso solo intra-cluster). Las consultas se hacen desde
Grafana (datasource
Loki).
Configuración
deploymentMode: SingleBinary (1 réplica).
- Retención:
limits_config.retention_period: 720h (30d) + compactor.retention_enabled: true
compactor.delete_request_store: filesystem (obligatorio al activar retención).
auth_enabled: false, replication_factor: 1.
- Index
tsdb con filesystem storage (PVC). chunksCache/resultsCache desactivados.
- Higiene de logs (reduce el ruido auto-generado, ver runbook del operador):
structuredConfig.server.log_level: warn — sin log de cada query.
gateway.verboseLogging: false — sin access log nginx de cada push.
lokiCanary.extraArgs: ["-interval=1m"] — canary cada minuto en vez de cada segundo.
Almacenamiento
- PVC Longhorn
10 Gi (single-binary, SC por defecto): index + chunks.
Dependencias
- Depende de: k3s, Longhorn.
- Usado por: Alloy (write), Grafana (datasource).
Backup y recuperación
- Re-desplegable desde Git; los logs no se backupean (retención 30d). Backup
off-host a R2: pendiente (posible mejora futura).
Monitorización
- Pendiente (ServiceMonitor propio del chart, cuando se habilite el scraping de apps).
- Ruido propio (catalogado):
context canceled del querier/scheduler y
reached tail max duration limit al cancelar tails de Grafana Live. Cosmético.
Consulta y catálogo de ruido: docs/runbooks/operador-plataforma.md.
Referencias
Notas / TODO
loki.structuredConfig (no table_manager): la retención en tsdb la aplica el compactor.
- Sin multi-tenancy ni simple-scalable (YAGNI para el homelab).