DevOps: agregação de logs
Este curso trata da agregação de logs para uma aplicação Rails que roda em vários containers e máquinas. Ele parte da configuração de logs de produção que já existe e passa de linhas em prosa para eventos JSON estruturados. Mostra como levar o request id até os jobs em segundo plano e como um agente tira os logs de cada host. Depois examina como labels, retenção em camadas e amostragem afetam o custo de armazenamento. Também cobre o que nunca registrar, como tratar dados pessoais e uma configuração final que junta as partes.
O que você vai aprender
- ✓Escrever eventos de log em JSON com nomes de evento estáveis e campos nomeados
- ✓Levar o request id das requisições web até os jobs em segundo plano
- ✓Enviar logs por um agente no host, e não pela aplicação
- ✓Controlar o custo de armazenamento com poucos labels, retenção em camadas e amostragem por requisição
- ✓Manter credenciais e dados pessoais fora dos logs
- ✓Configurar os logs do Rails com lograge e um helper compartilhado de eventos
Quando o tail -f para de funcionar
Num servidor, depurar é kamal app logs -f e ler. Funciona, é rápido, e para de funcionar num momento específico e reconhecível: quando responder o que aconteceu com aquela requisição exige saber qual de seis máquinas a atendeu.
Ler a aula completa grátis →Currículo
7 aulasQuando o tail -f para de funcionar
Por que tail -f deixa de servir em várias máquinas e quais quatro decisões de log o app acerta.
Logs estruturados: de prosa para dado
Como trocar linhas em prosa por eventos JSON com lograge, nomes de evento estáveis, campos nomeados e níveis consistentes.
Correlação: seguindo uma requisição
Como levar o request id até os jobs e registrar identificadores de negócio em vez de dados pessoais.
Tirando os logs da máquina
Por que o app só escreve no STDOUT enquanto um agente no host interpreta, enriquece e envia os logs.
Guardando e buscando sem uma conta alta
Como estimar volume, manter labels de baixa cardinalidade, escalonar a retenção e amostrar por requisição, nunca por linha.
O que registrar, e o que nunca registrar
Quais segredos nunca vão para os logs, por que registrar ids em vez de dados pessoais e onde ocultar.
Juntando tudo: uma configuração de logs
Uma configuração completa de logs para este app, do lograge e de um helper compartilhado até a retenção em camadas.