FolioPierEstudos de TI

Revisão de logs

Nota 15 de 16 · 14 min de leitura
Nesta página
  1. Erros comuns
  2. Checklist antes de abrir o log
  3. Checklist da leitura de uma operação
  4. Checklist de uma integração
  5. Checklist das contagens e das comparações
  6. Checklist do banco, do Windows e da rede
  7. Checklist da linha do tempo e do registro
  8. Glossário
  9. Para continuar estudando
  10. Referências

Este capítulo reúne o conteúdo de logs para revisão: os erros mais comuns, os checklists de atendimento, o glossário, as referências e perguntas que misturam vários assuntos.

Erros comuns

  • Ler só a mensagem final. As etapas anteriores da mesma operação podem explicar o encadeamento, e a primeira anomalia encontrada é um ponto de investigação, e não uma causa automática.
  • Ignorar a data, o fuso e os relógios. O Z indica o UTC, a conversão para o -03:00 subtrai três horas e pode mudar o dia, e os relógios diferentes alteram a ordem aparente.
  • Ordenar pelo horário errado. Um coletor pode mostrar o momento do recebimento, e não o do evento na origem, e a conversão do fuso não corrige um relógio adiantado.
  • Concluir que não há registro sem conferir o período. A rotação pode deixar o evento em um arquivo anterior ou dividir a operação entre dois arquivos.
  • Editar o arquivo ativo ou a única cópia coletada. O material fica preservado, e as transformações acontecem em uma cópia de trabalho.
  • Acompanhar uma ocorrência nova em uma cópia estática. A cópia não recebe as linhas novas, e o acompanhamento usa o arquivo que continua sendo gravado.
  • Tratar a ausência de uma linha como prova da ausência do evento. O programa pode não registrar a etapa, o trecho pode estar incompleto, e a mensagem pode estar em outro arquivo.
  • Concluir o resultado só pelo Enviado, pelo Recebido ou pelo HTTP 200. Os marcadores dependem do programa, e o resultado técnico e o conteúdo da resposta são lidos conforme o contrato.
  • Ligar o pedido e a resposta pela proximidade das linhas. As tarefas simultâneas intercalam os registros, e a operação e a tentativa ligam a conversa.
  • Formatar a mensagem com o prefixo do log ou sobre o original. O formatador recebe só o conteúdo, em uma cópia, e o original continua sendo a evidência.
  • Remover à mão as barras de um JSON escapado. O texto interno é interpretado em uma segunda etapa, e a remoção manual pode alterar o valor.
  • Extrair só as linhas que contêm um termo. O filtro pode descartar o resto de um registro de várias linhas ou uma etapa necessária ao contexto.
  • Confundir linhas de erro com operações afetadas. Uma tentativa pode produzir vários registros, e uma operação pode ter várias tentativas.
  • Remover duplicadas sem normalizar. Os campos variáveis são normalizados em uma cópia separada, com os códigos e as condições que distinguem os tipos de erro preservados.
  • Repetir uma operação sem confirmar a tentativa anterior. O fornecedor ou o banco pode ter processado algo cujo resultado não chegou ao cliente.
  • Tratar os erros 1205 e 1213 da mesma forma. O 1205 desfaz, por padrão, só o comando que esperava, e o 1213 desfaz a transação escolhida como vítima.
  • Comparar o log do MySQL com o Windows sem conferir o fuso. O MySQL 5.1 grava a hora local sem o fuso, e, a partir do 5.7, o padrão das mensagens é o UTC.
  • Atribuir uma causa física pelo ping. O ping observa o ICMP em sondagens, e a falha ou a resposta dele não aponta, sozinha, o cabo nem a estabilidade da aplicação.
  • Contar as perdas do ping só pelo texto Esgotado. As outras mensagens de falha ficam de fora, e os títulos e as estatísticas não são tentativas.
  • Tratar o ID 41 como prova de falta de energia. O evento é gravado na inicialização seguinte e registra só o encerramento incorreto.
  • Filtrar os eventos só pelo nível Crítico. A parada de um serviço ou o início de uma manutenção podem estar em outros níveis.
  • Compartilhar o log sem preparar o trecho. As senhas, os tokens e os dados sensíveis são mascarados na versão compartilhada, com o contexto necessário mantido.

Checklist antes de abrir o log

  • O relato identifica a operação, a data, o horário, o fuso, a máquina e um código útil para a busca?
  • A origem inicial corresponde à pergunta do atendimento?
  • Os arquivos disponíveis cobrem o período, inclusive os de rotação?
  • A origem e o momento da coleta estão anotados, com uma cópia preservada?
  • O início, o fim, os filtros e as lacunas da coleta estão declarados?

Checklist da leitura de uma operação

  • A mesma operação e a mesma tentativa foram acompanhadas, sem ligar linhas só pela proximidade?
  • A primeira anomalia disponível e o contexto anterior e posterior foram lidos?
  • Os registros de várias linhas foram preservados completos?
  • Os fusos e as possíveis diferenças entre os relógios foram considerados?
  • O campo usado na linha do tempo é o horário do evento ou o da coleta?

Checklist de uma integração

  • O significado do Enviado e do Recebido naquele programa está conhecido?
  • O resultado técnico e o resultado de negócio foram lidos conforme o contrato?
  • A mensagem formatada veio de uma cópia, sem o prefixo do log, com o original preservado?
  • Uma operação de resultado desconhecido teve a situação consultada antes de qualquer repetição?
  • O trecho para o fornecedor traz os identificadores e as tentativas, com os dados sensíveis mascarados?

Checklist das contagens e das comparações

  • A expressão regular foi testada em ocorrências conhecidas?
  • A frequência tem o período, os terminais e a unidade de contagem definidos?
  • A normalização preservou os códigos de erro e a ligação com as linhas originais?
  • A comparação usou uma operação parecida, no mesmo ambiente, quando disponível?

Checklist do banco, do Windows e da rede

Banco de dados

  • O comando que falhou, o código e a mensagem completa foram lidos juntos?
  • O horário do log de erros do MySQL foi interpretado conforme a versão?

Windows e rede

  • O ID do evento foi lido junto com a fonte, o canal e a descrição?
  • Os eventos foram exportados com a máquina, o canal, o período e os filtros anotados?
  • O teste de rede registrou a origem, o destino, os parâmetros e o horário com o fuso?

Checklist da linha do tempo e do registro

  • Cada origem tem o período coberto, o fuso e a forma de coleta registrados?
  • Os registros estão ligados por identificadores, e a ordem entre as origens é confiável?
  • O atendimento separa a observação, a hipótese e a confirmação?
  • O próximo teste tem a origem, o destino, a janela e os resultados que separam as hipóteses?

Glossário

  • Base64: a representação de bytes como texto, usada para incluir arquivos em mensagens, sem nenhuma criptografia.
  • Bloco: o conjunto de linhas de um mesmo registro, como uma mensagem formatada ou uma pilha de chamadas.
  • Codificação: a regra que liga os caracteres aos bytes, como o UTF-8 e o Windows-1252.
  • Coletor: o sistema que recebe e guarda os registros de várias origens.
  • Contexto: os campos que distinguem uma operação das outras, como o terminal, o documento e a tentativa.
  • Cópia de trabalho: a cópia do material que recebe os filtros, as ordenações e as formatações.
  • Cópia preservada: a cópia do material coletado mantida sem nenhuma alteração.
  • Correlação: a ligação de registros de origens diferentes pelo contexto e pelo tempo.
  • Enviado: o marcador que o programa grava para o pedido, no momento definido pelo próprio programa.
  • Escape: a forma de escrever um caractere especial dentro de um texto, como a barra antes das aspas em um JSON.
  • Expressão regular: o padrão de busca de texto, com a sintaxe e as opções definidas pela ferramenta.
  • Formatar: organizar a apresentação de uma mensagem com linhas e recuos, em uma cópia, sem mudar o original.
  • Fronteira de palavra: o limite de uma expressão regular que impede encontrar só uma parte de um código mais longo.
  • Fuso horário: a diferença entre a hora local e o UTC.
  • ID do Evento: o número de um evento do Windows, lido junto com a fonte, o canal e a descrição.
  • Kernel-Power 41: o evento gravado na inicialização depois de um encerramento incorreto do Windows.
  • klogg: o leitor gratuito para a pesquisa em logs muito grandes.
  • Linha do tempo: a sequência de registros de várias origens, com os horários originais e as conversões.
  • Log: o conjunto de registros de eventos, em geral com a data e a hora, produzidos por um programa ou componente.
  • Log de erros do MySQL: o registro da inicialização, do desligamento, da recuperação e dos erros do servidor.
  • log_timestamps: a variável do MySQL, a partir do 5.7, que define o fuso das mensagens do log, com o UTC como padrão.
  • Macro: a sequência de ações gravada para repetição.
  • Marcador: a marca colocada em uma linha encontrada, usada para copiar ou remover as linhas marcadas.
  • Monitoramento: o recurso do editor que atualiza a visualização quando o arquivo aberto muda.
  • Nível de gravidade: a classificação que o programa dá à mensagem, como DEBUG, INFO, AVISO, ERRO ou CRÍTICO.
  • Normalizar: substituir os campos variáveis de uma mensagem para agrupar as ocorrências do mesmo tipo.
  • ObservedTimestamp: o campo do modelo do OpenTelemetry com o momento em que o coletor recebeu o registro.
  • Pilha de chamadas: a sequência de chamadas ligada a uma exceção, chamada em inglês de stack trace.
  • Primeira anomalia: o primeiro aviso, erro, repetição ou falta de etapa encontrado antes do sintoma.
  • Recebido: o marcador que o programa grava para a resposta, no momento definido pelo próprio programa.
  • Registro de várias linhas: o registro que continua nas linhas seguintes, em geral sem o prefixo de data e hora.
  • Resultado de negócio: o que aconteceu com a operação solicitada, como o benefício autorizado ou recusado.
  • Resultado desconhecido: a situação de uma operação cujo efeito o cliente não confirmou, diferente de uma recusa.
  • Resultado técnico: a resposta da chamada, como o código HTTP ou uma exceção.
  • Resumo criptográfico: o valor calculado sobre os bytes de um arquivo, como o SHA-256, que mostra se duas cópias são iguais.
  • Rotação de log: a troca do arquivo de registros por data ou por tamanho.
  • Select-String: o comando do PowerShell que pesquisa texto em arquivos, com a opção de contexto.
  • SpanId: o identificador de uma etapa dentro de um percurso de processamento.
  • Tail: a leitura do fim de um arquivo e das linhas acrescentadas a ele.
  • Timestamp: o campo do modelo do OpenTelemetry com o horário informado pela origem.
  • TraceId: o identificador de um percurso de processamento entre componentes.
  • UTC: o Tempo Universal Coordenado, a referência dos fusos, indicado por Z ou por +00:00.
  • WinMerge: o programa gratuito que compara arquivos lado a lado.

Para continuar estudando

  • Centralização de logs: o envio dos registros de vários computadores para um coletor, como no protocolo syslog.
  • Logs estruturados: os registros em JSON por linha, com campos fixos para a busca e para a contagem.
  • Observabilidade: os logs, as métricas e o rastreamento distribuído, com o modelo do OpenTelemetry.
  • Sincronismo de relógios: o NTP, as fontes de horário e o efeito do desvio dos relógios sobre os registros.
  • Retenção e auditoria: o tempo de guarda dos registros, a proteção contra alterações e as exigências de segurança.

Referências

As referências a seguir reúnem as especificações da internet, a documentação da Microsoft, do MySQL e das ferramentas de leitura e os guias de gestão de logs que apoiam o conteúdo de logs. O material está em inglês.

Logs e coleta

Tempo e preservação

Ferramentas de leitura

Integrações e mensagens

Banco de dados

Windows e rede

No suporte

Qualquer leitura de log passa por quatro perguntas:

  • qual pergunta do atendimento o material precisa responder, e qual origem a responde;
  • qual período, qual operação e qual tentativa estão sendo acompanhados;
  • quais campos e quais horários ligam os registros, com o fuso e os relógios considerados;
  • o que foi observado, o que é hipótese e o que falta para confirmar a causa.

Com essas perguntas, a análise chega a uma conclusão que outro técnico consegue conferir.

Para guardar

  • O log contém o que o programa registrou, e a ausência de uma linha não prova a ausência do evento.
  • O sistema, as integrações, o banco, o Windows e os testes de rede observam partes diferentes do ambiente.
  • A data completa, o fuso, os relógios e os identificadores permitem ligar os registros com segurança.
  • A primeira anomalia ajuda a investigar o encadeamento, mas não é, automaticamente, a causa.
  • Os filtros, a formatação e o agrupamento ajudam quando preservam o original e o contexto.
  • As contagens dizem se medem correspondências, linhas, registros, tentativas ou operações.
Às 09:10 do dia 1º de outubro, o caixa 01 mostrou Venda não autorizada. Um log em UTC tem um Enviado às 12:09:58, sem Recebido no trecho. O que conferir antes de concluir?

Na data do exemplo, 12:09:58 em UTC corresponde a 09:09:58 em -03:00, um horário compatível que não identifica, sozinho, a operação. O terminal, o identificador e a tentativa ligam o Enviado à venda, e o arquivo e o trecho completos mostram se existe uma exceção. A falta do Recebido significa que a resposta não foi localizada nesse material, e a situação da operação é consultada antes de qualquer repetição.

O caixa 01 perde a conexão com o banco algumas vezes por dia. Quais origens cruzar e o que procurar?

No log do programa ou no registro de erros da aplicação, as operações e os horários das falhas. No ping gravado com a data e o fuso, as falhas de ICMP no mesmo período, lembrando que ele não testa o MySQL. No log de erros do MySQL, as paradas, as inicializações e as mensagens de conexão, com o horário interpretado conforme a versão. No Windows do servidor da loja, os reinícios e os eventos dos serviços e dos dispositivos. Os horários são ligados com os relógios considerados, e cada hipótese fica com os registros que a sustentam.

Centenas de respostas HTTP 401 começaram às 14:00 de ontem. Que hipótese esse padrão orienta e o que verificar?

O padrão torna relevante a conferência de uma mudança de credencial, da validade dela, da autenticação das chamadas e das alterações próximas daquele horário, como uma configuração ou uma atualização. Os registros da obtenção ou da renovação do token e as respostas completas da mesma operação e da mesma tentativa entram na leitura. A repetição confirma a frequência registrada, mas não prova, sozinha, qual mudança causou a falha de autenticação.

O log de erros do MySQL 5.7 do servidor da loja mostra a inicialização às 12:10:08Z, e o Visualizador de Eventos mostra o Kernel-Power 41 às 09:10:06. Os dois registros são do mesmo reinício?

Provavelmente. O Z indica o UTC, padrão do log de erros a partir do MySQL 5.7, e a conversão dá 09:10:08 em -03:00, dois segundos depois do evento do Windows, que aparece na hora local. A data, o servidor e a configuração da variável log_timestamps confirmam a ligação. Mesmo ligados, os dois registros mostram o reinício e a recuperação, e não a causa da interrupção.

Publicado a partir do Obsidian · FolioPier