https://youtu.be/rMvu5lUK7-I?si=Ux3ZByfZChmE68CT
En este post vamos a instalar Grafana Loki, una solución para la gestión y almacenamiento de logs que permite recopilar, consultar y monitorizar registros de manera eficiente. Lo instalaremos utilizando Docker Compose, aunque su capacidad y escalabilidad pueden ir mucho más allá. Sin embargo, para el sistema de logs que queremos montar y el volumen que manejaremos, no necesitaremos una escalabilidad horizontal.
Las configuraciones de MinIO y Memcached que son requeridas para lanzar Grafana Loki se explican y detallan en el post de Grafana Mimir. Además del fichero .env
que también está referenciado en el mismo post.
name: i40sys_observability
include:
- ./compose-minio.yml
- ./compose-memcached.yml
services:
loki:
labels:
- logs.agent.grafana.com/log-format=json
depends_on:
minio:
condition: service_healthy
image: grafana/loki:${LOKI_VERSION:-latest}
volumes:
- ${PWD}/config/loki:/etc/loki
command:
- -config.file=/etc/loki/monolithic-mode-logs.yaml
- -target=all
- -config.expand-env=true
env_file:
- .env
healthcheck:
test: [ "CMD-SHELL", "wget --no-verbose --tries=1 --spider <http://localhost/ready> || exit 1" ]
interval: 10s
timeout: 5s
retries: 10
networks:
proxy-network:
observability:
aliases:
- loki-memberlist
name: observability
include:
- ./compose-mimir.yml
- ./compose-loki.yml
networks:
proxy-network:
name: services
external: true
observability:
name: observability
El archivo runtime.yaml en Grafana Loki se utiliza para establecer configuraciones en tiempo de ejecución. Permite ajustar parámetros sin reiniciar el servicio, útil para administrar recursos y controlar el comportamiento de diferentes inquilinos en un entorno multi-tenant.
# This file can be used to set overrides or other runtime config.
overrides:
"fake": # limits for anonymous that the whole cluster enforces
ingestion_rate_mb: 1500000
max_streams_per_user: 100000
max_chunks_per_query: 100000
"anonymous": # limits for anonymous that the whole cluster enforces
ingestion_rate_mb: 1500000
max_streams_per_user: 100000
max_chunks_per_query: 100000
El archivo define una sección overrides
con configuraciones específicas para dos inquilinos (tenants): "fake"
y "anonymous"
.
ingestion_rate_mb: 1500000
max_streams_per_user: 100000
max_chunks_per_query: 100000