Grafana + Loki: cómo utilizar un sistema de agregación de logs

Quería explorar la agregación de logs con Grafana y Loki, así que me decidí a crear un pequeño homelab para aprender. En este caso te traigo una novedad y en vez de ser un post normal, he grabado el proceso y he hecho un vídeo para poder enseñártelo a tí.

He simulado todo el proceso en mi máquina local utilizando docker y docker-compose. Con ellos levanto varios servicios: grafana para la visualización, loki como fuente de datos para la agregación de logs, un nginx como servidor web para generar algunos logs de ejemplo, y finalmente promtail para enviar los logs a loki.

→ Github: albersola/tutorials - Repositorio con el fichero docker-compose.yml y la configuración que he utilizado.

Te lo enseño todo en el siguiente vídeo.

¿Qué es la agregación de logs?

La agregación de logs es el proceso de reunir y consolidar registros de eventos generados por múltiples fuentes, como aplicaciones, servidores y sistemas, en un único repositorio centralizado. Esto permite un acceso más eficiente a los registros para realizar un análisis, o supervisarlos, ante cualquier situación: monitorización de patrones, detección y resolución de problemas, rendimiento, seguridad…

Imagina que tienes un servidor. Puedes acceder mediante SSH y revisar manualmente los logs. Este proceso puede ser bastante tedioso cuando comienzas a gestionar múltiples servidores y/o aplicaciones, o si el volumen de los datos comienza a aumentar.

¿Qué es Grafana?

Grafana es una herramienta de código abierto ampliamente utilizada en el mundo de la tecnología de la información para la visualización y monitorización de datos, especialmente diseñada para crear paneles interactivos y gráficos informativos que permiten a los administradores de sistemas y desarrolladores supervisar y analizar el rendimiento de aplicaciones y sistemas en tiempo real. Te permite graficar datos desde diferentes fuentes de datos, así como crear alertas.

→ Grafana labs.

¿Qué es Loki?

Grafana Loki, por otro lado, es un complemento de Grafana que se enfoca en la recopilación y búsqueda de logs. Loki permite almacenar y consultar registros de manera eficiente, lo que facilita el diagnóstico de problemas y la búsqueda de información relevante en registros masivos de manera ágil y escalable, como puede ser un entorno de máquinas virtuales o contenedores orquestados por kubernetes.

→ Grafana Loki.

¿Qué es NGINX?

NGINX es un popular servidor web de código abierto que también funciona como un servidor proxy inverso (reverse proxy) y balanceador de carga. Es ampliamente utilizado para servir contenido web, gestionar el tráfico y mejorar el rendimiento de sitios web y aplicaciones, ofreciendo una combinación de alta velocidad, seguridad y flexibilidad. En el ejemplo lo utilizo para simular algunas peticiones web desde el navegador y generar un log con los accesos.

→ NGINX.

Video

Watch the video