Grafana Loki es una herramienta que crear un panel para indexar los logs de sus sistemas y visualizarlos en un Tablero de Grafana. Grafana Loki en si no indexa el contenido de los logs, sino que sólo indexa las etiquetas de los mismos.
En este caso, usaremos Promtail, que al igual que Prometheus, es un recolector de registros para Loki que envía las etiquetas de los registros a Grafana Loki para su indexación.
Instalación de Grafana
Para instalar Grafana, tenéis este otro tutorial con todo los detalles dependiendo el sistema operativo que uséis.
Para CentOS / Red Hat y derivadas:

Para Debian / Ubuntu y derivadas:

Instalación de Grafana Loki
Ahora procedemos a instalar Grafana Loki siguiendo estos pasos. Lo primero es ir a la web de Releases y descargar el paquete de la última versión de Loki, mientras se escribe este tutorial es la versión v.2.8.1
.
wget https://github.com/grafana/loki/releases/download/v2.8.1/loki-linux-amd64.zip
Descomprimimos el binario y lo movemos:
unzip loki-linux-amd64.zip
mv loki-linux-amd64 /usr/local/bin/loki
Y revisamos que funciona correctamente mostrando la versión:
# loki --version
loki, version 2.8.1 (branch: HEAD, revision: dd763dcff)
build user: root@5da030531423
build date: 2023-04-24T20:55:11Z
go version: go1.20.1
platform: linux/amd64
Lo siguiente será configurar el fichero de configuración así como algunos directorios para que funcione correctamente Loki.
mkdir -p /data/loki
Creamos el fichero /etc/loki-local-config.yaml
y añadimos el siguiente contenido:
# nano /etc/loki-local-config.yaml
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
max_transfer_retries: 0
schema_config:
configs:
- from: 2018-04-15
store: boltdb
object_store: filesystem
schema: v11
index:
prefix: index_
period: 168h
storage_config:
boltdb:
directory: /data/loki/index
filesystem:
directory: /data/loki/chunks
limits_config:
enforce_metric_name: false
reject_old_samples: true
reject_old_samples_max_age: 168h
chunk_store_config:
max_look_back_period: 0s
table_manager:
retention_deletes_enabled: false
retention_period: 0s
Ahora creamos el servicio para Loki con SystemD, creamos el fichero con el siguiente contenido:
# nano /etc/systemd/system/loki.service
[Unit]
Description=Loki service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/loki -config.file /etc/loki-local-config.yaml
[Install]
WantedBy=multi-user.target
Y recargamos los demonios y lo iniciamos:
systemctl daemon-reload
systemctl start loki.service
systemctl enable loki.service
Instalación de Promtail
Ahora procedemos a instalar Promtail siguiendo estos pasos. Lo primero es ir a la web de Releases y descargar el paquete de la última versión de Promtail, mientras se escribe este tutorial es la versión v.2.4.1
.
wget https://github.com/grafana/loki/releases/download/v2.4.1/promtail-linux-amd64.zip
Descomprimimos el binario y lo movemos:
unzip promtail-linux-amd64.zip
mv promtail-linux-amd64 /usr/local/bin/promtail
Y revisamos que funciona correctamente mostrando la versión:
# promtail --version
promtail, version 2.4.1 (branch: HEAD, revision: f61a4d261)
build user: root@9cbe2f86250f
build date: 2021-11-08T13:05:10Z
go version: go1.16.2
platform: linux/amd64
Creamos el fichero /etc/promtail-local-config.yaml
y añadimos el siguiente contenido:
# nano /etc/promtail-local-config.yaml
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /data/loki/positions.yaml
clients:
- url: http://localhost:3100/loki/api/v1/push
scrape_configs:
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: syslog
__path__: /var/log/syslog*log
- targets:
- localhost
labels:
jobs: apache
__path__: /var/log/apache2/*log
Ahora creamos el servicio para Promtail con SystemD, creamos el fichero con el siguiente contenido:
# nano /etc/systemd/system/promtail.service
[Unit]
Description=Promtail service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/promtail -config.file /etc/promtail-local-config.yaml
[Install]
WantedBy=multi-user.target
Y recargamos los demonios y lo iniciamos:
systemctl daemon-reload
systemctl start promtail.service
systemctl enable promtail.service
Cómo configurar Loki en Grafana
Accedemos a Grafana por la interfaz web y vamos a Configuration > Data Sources y seleccionamos Loki y rellenamos los datos como en la captura:

Verifica que la configuración funciona correctamente haciendo clic en Save & Test.

Visualizar logs en Grafana
Ahora solo tenemos que ir al apartado de Explorer y seleccionar arriba la fuente de datos Loki y filtrar por los logs que hayamos configurado:

Si seleccionáis un Job configurado, podréis visualizar los datos:

Comentarios