Infraestrutura, nuvem e DevOps · Misto

Logs: armazenar corretamente e encontrar rápido

Em uma linha: Um bom log é estruturado, identificado com um ID de requisição, guardado por um tempo definido e livre de informações pessoais que não têm motivo de estar lá.

Estrutura

Campos, não frases: hora, nível, serviço, versão, identificador de requisição, identificador de usuário mascarado e um evento. Assim dá para filtrar e agregar em vez de buscar texto.

Níveis usados com coerência: erro para o que precisa de atenção, aviso para o que é excepcional mas tratado, info para eventos de negócio, debug só em desenvolvimento.

Quanto guardar

Logs são um item de custo significativo. Guarde detalhado por pouco tempo, agregado por mais tempo e um arquivo barato para o que a conformidade exige. Defina isso uma vez, senão decide sozinho — para cima.

O que não escrever

Senhas, tokens, números de cartão, números de identidade e conteúdo de mensagens privadas. Um log é um banco de dados em todos os sentidos, com menos controles — por isso um vazamento dele é especialmente comum.

Indo mais fundo

Adicione um identificador de requisição gerado na borda e passado para todos os componentes e para a resposta ao usuário. Quando um cliente reporta um erro com um identificador, a investigação começa na linha certa — em vez de varrer milhões de linhas em torno de uma hora estimada.