ADR-0002 · Loki single-binary sobre filesystem con retención de 30 días¶
- Estado: aceptado
- Decisores: Hugo Quintero (único autor del repo)
- Fecha de la decisión: no registrada. Implementada el 2026-03-24
(commit
eb41f8e, "Se agrego Loki para recoleccion y monitoreo de logs").
Contexto y problema¶
Los logs de las aplicaciones (PM2 del OMS, Laravel del Integrador) se revisaban entrando por SSH a cada servidor. Se necesitaba correlacionar logs con métricas e incidentes en Grafana, con el menor costo operativo posible: una sola VM, sin bucket ni base de datos adicional que mantener.
Opciones consideradas¶
- Loki en modo single-binary (
replication_factor: 1, ring en memoria), almacenamientofilesystemen un volumen Docker, retención por compactor. - Loki con object storage (GCS) y componentes separados.
- Stack ELK / OpenSearch.
No hay registro escrito de la evaluación.
Decisión¶
Opción 1, versión fijada grafana/loki:3.0.0, esquema tsdb v13, índice
por 24 h, retention_period: 30d con compactor.retention_enabled: true,
límites de ingesta 8 MB/s (burst 16 MB). Sin autenticación
(auth_enabled: false): la protección la da la capa de exposición pública.
Los colectores remotos hacen push por loki.compulandia.com.py; Grafana lo
consume como datasource Loki provisionado.
Consecuencias¶
Positivas¶
- Un contenedor y un volumen; sin costos de object storage.
- Retención automática alineada con la de Prometheus (30 días).
- Los tableros de incidentes del OMS y del Integrador combinan LogQL y PromQL.
Negativas / deuda asumida¶
- Sin réplica: si se pierde el volumen
loki_datase pierden los logs. No hay backup del volumen documentado. - El disco de la VM devops absorbe todo el crecimiento de logs; solo lo
limita
retention_periody el rate limit de ingesta. No hay alerta de disco específica para Loki (la reglaDiscoCasiLlenocubre la VM si su node_exporter está scrapeado, cosa que hoy no ocurre: la VM devops no figura encloud-nodes). - Sin multi-tenant ni autenticación propia: cualquier cliente que atraviese la capa pública puede escribir.