Dicas gerais para interpretar logs de erros [closed]

4

Ler arquivos de log pode ser bastante frustrante, pois, por natureza, o conteúdo deles diz muito sobre o desenvolvedor que os escreveu como o problema em si.

Você tem dicas de propósito geral para interpretar os registros de erros (por exemplo: "google é seu amigo" ou "algum erro codes ocorrem mais que outros "ou" lembram que avisos e erros são muito diferentes ")?

    
por username 24.05.2009 / 00:31

7 respostas

5

Permita que os desenvolvedores resolvam problemas de produção de vez em quando. Isso fará maravilhas para o seu registro. :)

    
por 24.05.2009 / 00:33
5

Sobre uma situação comum específica quando você tem tudo isso ao mesmo tempo: (1) um problema em um ambiente distribuído (2) uma pilha enorme de informações de depuração espalhadas por servidores cooperativos e diferentes arquivos de log (3) não documentação para interpretar os logs (4) nada no google (5) nenhum indício (6) jogadores de pingue-pongue em vez de suporte do fornecedor.

  • Antes de mais nada, certifique-se de que o horário esteja sincronizado em todo o ambiente (ntp). Se não estiver, esqueça de tentar descobrir as relações entre os hosts de seus arquivos de log.
  • Não escolha um "erro" aleatório de um registro aleatório para culpar. Leia o log em ordem cronológica, lembrando que a linha "error" pode ser resultado da operação normal do software e sempre esteve lá.
  • Compare os registros da operação adequada com os logs da situação do problema. Em que ponto eles deixam de corresponder? (vimdiff pode ser útil)
  • Se durante os casos de teste você tiver a funcionalidade para inserir suas próprias mensagens de log personalizadas, use-a. (como logger no syslog)
  • Na análise, se você se pegar alternando entre muitos logs enormes, tentando capturar o fluxo de ação - tente mesclar os logs. (Use sed para colocar o tempo na primeira coluna. Use cat + sort para mesclar vários arquivos. E, claro, grep -viE para filtrar linhas desnecessárias.)
por 16.06.2009 / 23:37
2

Meu hábito com os registros do servidor é: revise-os regularmente e investigue / resolva os problemas que encontrar. Eu faço isso de forma proativa - não esperando até que os usuários estejam uivando sobre uma interrupção do sistema. A principal razão pela qual isso é eficaz, realmente se resume a alguns ditados antigos:

Um ponto no tempo economiza nove. Obviamente, se você está resolvendo problemas enquanto eles são pequenos, você está à frente da curva, e os usuários / administradores terão menos razões para gritar com você; isso é bom.

A prática leva à perfeição. Eu acho que esta é a maior vantagem para o administrador de sistema. Ao entrar lá regularmente e ler proativamente os registros, você está ganhando experiência e familiaridade. Você está aprendendo o que significam essas mensagens de log crípticas - e quais são triviais, e quais são um grande negócio. O processo de investigar mensagens que você não compreende imediatamente (que em princípio serão muitas delas!) Ensina muito sobre o funcionamento do sistema operacional e dos aplicativos executados nele.

Normalmente, quando eu obtenho um novo sistema para gerenciar, ele terá alguns erros no log, muitos deles recorrendo regularmente. O administrador anterior, muitas vezes dá de ombros com algo para o efeito de "não tenho certeza do que se trata, mas os usuários nunca se queixaram, então eu não considerei quebrado o suficiente para corrigir!"

Meu objetivo com esses sistemas é revisitar os logs semanalmente até que eu tenha resolvido ou entendido cada novo erro que surge; em seguida, relaxe minhas revisões de registros para mensais. Logs limpos são mais fáceis de ler!

    
por 24.05.2009 / 01:19
2

Um bom programa suporta níveis de registro . E geralmente os logs são inúteis sem timestamps.

A maioria das distribuições de linux vem com uma ferramenta de logwatch; aprenda a usá-lo e configure suas configurações de ignorar. O truque é definir o limite de dor adequadamente, de modo que nada crítico seja ignorado, mas não tão spam que os administradores escrevam regras de e-mail para arquivar e ignorar o correio do logwatch.

    
por 24.05.2009 / 03:01
1

Eu não acredito que qualquer sugestão de propósito geral possa ser feita para interpretar os registros de erros, exceto que você deve pesquisar cada erro caso a caso, por exemplo. com o Google ou lendo fonte, para compreendê-lo.

Para manipular algo como syslog, especialmente ao agregar muitas máquinas, uma sugestão de propósito geral pode ser feita. Mantenha uma lista de padrões para ignorar e uma lista de padrões para alertar imediatamente. Gere um relatório diário que exclua as mensagens "ignorar". (Ou até mesmo assistir o arquivo de log em tempo real, excluindo as mensagens ignoráveis). Use este relatório para adicionar à lista de ignorados e à lista de alertas. Para padrões identificados como erros reais, envie um alerta para administradores em tempo real. Idealmente, sua lista de ignorados deve ser minuciosa o suficiente para que você possa ler as mensagens que estão por vir, e sua lista de alertas deve ser simples o suficiente para que você possa investigar cada um dos quais você está sendo alertado. Ser capaz de lidar com inundações de alertas de um sistema quebrado que você não pode corrigir imediatamente. Vale a pena manter dois níveis adicionais de padrões - aqueles que valem a pena serem analisados, mas que provavelmente não serão um problema, e aqueles que valham a pena alertar, mas não atrapalhar alguém.

Não fazer isso em um ambiente Unix é provavelmente a única supervisão mais significativa (onerosa e prejudicial).

    
por 24.05.2009 / 00:33
1

Consulte a documentação sobre os arquivos de log que os desenvolvedores entregaram junto com o aplicativo.

O que? Não há documentação? Hora de uma AttitudeAdjustmentTool

Mais seriamente, documentar arquivos de log e como interpretá-los precisa ser uma das tarefas dos desenvolvedores. O trabalho deles não é feito quando o código é feito, quando as pessoas da operação podem executar o aplicativo e mantê-lo em execução, e isso significa documentação, reuniões de entrega, design para gerenciamento etc.

    
por 24.05.2009 / 19:45
1

Não faça suposições sobre arquivos de log.

Os formatos de campo precisam ser verificados. Por exemplo: são datas dd / mm / aa ou mm / dd / aa? são campos numéricos decimal, hexadecimal, octal ou outra coisa? Os timestamps são consistentes (outros mencionaram a importância de sincronizar o tempo entre os dispositivos: verifique se ele foi sincronizado ou se sabe qual seria a origem de um timestamp e corrija-o)?

Todos os dispositivos / processos são registrados no mesmo nível de log e para onde você esperaria?

O registro é consistente entre diferentes revisões do mesmo software? (verificar se as saídas de log são consistentes com as versões anteriores e a documentação deve estar na lista para testar novas revisões de software, mas pode ser ignorada)

    
por 30.07.2009 / 16:55