IntermediárioPro1h 15min
Logs centralizados com Loki + Promtail
Uma aplicação de exemplo gera logs JSON continuamente; o Promtail coleta, o Loki indexa e o Grafana consulta.
Você aprende LogQL na prática: filtrar por texto, parsear JSON, montar taxa de erros por minuto e acompanhar logs ao vivo.
O que você vai praticar
- Entender o fluxo coleta, indexação e consulta de logs
- Escrever consultas LogQL com filtros e parse de JSON
- Transformar logs em métricas com rate() no Grafana
O que vem no pacote
docker-compose.yml
services:
loki:
image: grafana/loki:3.1.0
ports:
- "3100:3100"
promtail:
image: grafana/promtail:3.1.0
volumes:
- ./promtail-config.yml:/etc/promtail/config.yml:ro
- logs:/var/log/app:ro
command: -config.file=/etc/promtail/config.yml
depends_on:
- loki
grafana:
image: grafana/grafana:11.1.0
ports:
- "3000:3000"
environment:
GF_SECURITY_ADMIN_USER: admin
GF_SECURITY_ADMIN_PASSWORD: malabs
depends_on:
- loki
# Aplicação de exemplo que gera logs continuamente
gerador:
image: alpine:3.20
command: >
sh -c 'i=0; while true; do
i=$$((i+1));
nivel="info"; [ $$((i % 7)) -eq 0 ] && nivel="warn"; [ $$((i % 13)) -eq 0 ] && nivel="error";
echo "{\"ts\":\"$$(date -Iseconds)\",\"nivel\":\"$$nivel\",\"msg\":\"requisicao $$i processada\",\"rota\":\"/api/pedidos\"}" >> /var/log/app/app.log;
sleep 1;
done'
volumes:
- logs:/var/log/app
volumes:
logs:Este lab pede o seu token do MA Labs
Cole o token (disponível no seu painel) na variável MALABS_TOKEN do .env do pacote. Sem um token válido, o lab recusa iniciar.