Loki¶
Descripción¶
Loki es un sistema de agregación de logs diseñado para ser altamente disponible y escalable. Se integra perfectamente con Grafana para visualización.
Configuración¶
loki:
image: grafana/loki:latest
container_name: loki
volumes:
- ./loki-config.yml:/etc/loki/loki-config.yml
command: -config.file=/etc/loki/loki-config.yml
environment:
VIRTUAL_HOST: loki.seekdev.com
VIRTUAL_PORT: 3100
LETSENCRYPT_HOST: loki.seekdev.com
LETSENCRYPT_EMAIL: jgarcia@seek.pe
ports:
- "3100:3100"
networks:
- sonarnet
Configuración de Loki¶
El archivo loki-config.yml define la configuración:
auth_enabled: false
server:
http_listen_port: 3100
ingester:
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 5m
chunk_retain_period: 30s
schema_config:
configs:
- from: 2020-05-15
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
storage_config:
boltdb_shipper:
active_index_directory: /tmp/loki/boltdb-shipper-active
cache_location: /tmp/loki/boltdb-shipper-cache
cache_ttl: 24h
shared_store: filesystem
filesystem:
directory: /tmp/loki/chunks
compactor:
working_directory: /tmp/loki/boltdb-shipper-compactor
shared_store: filesystem
limits_config:
reject_old_samples: true
reject_old_samples_max_age: 168h
Logs de Servicios¶
SonarQube¶
# En docker-compose.yml
sonarqube:
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
WireMock¶
# En docker-compose.yml
wiremock:
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
Consultas en Grafana¶
Logs de SonarQube¶
Errores de WireMock¶
Logs por nivel¶
Retención de Logs¶
Configurar retención en loki-config.yml:
Alertas de Logs¶
Configurar alertas para:
- Errores críticos
- Servicios caídos
- Patrones de error recurrentes
- Logs de seguridad