Sobes.tech
Middle

Conte-nos sobre sua experiência com análise de logs.

sobes.tech IA

Resposta da IA

A análise de logs foi utilizada para depuração, monitorização e pesquisa das causas raízes de incidentes.

Principais cenários de utilização:

  • Procura de defeitos: Identificação de erros, avisos e exceções geradas nos logs da aplicação, servidor ou base de dados.
  • Diagnóstico de desempenho: Análise do tempo de resposta, carga de CPU, consumo de memória a partir dos logs de sistemas de monitorização ou das próprias aplicações.
  • Investigação de incidentes: Reconstrução da cronologia de eventos que levaram a uma falha, com base nos logs de diferentes componentes do sistema.
  • Monitorização do estado do sistema: Configuração de alertas para eventos-chave ou erros nos logs.
  • Análise do comportamento do utilizador: Acompanhamento da sequência de ações do utilizador com base nos logs de pedidos à API ou ao servidor web.

Ferramentas e abordagens:

  • Editores de texto e utilitários de linha de comandos: Para projetos pequenos ou análise local, usou grep, awk, sed em sistemas Linux/Unix.
  • Sistemas centralizados de logging: Trabalhou com ELK stack (Elasticsearch, Logstash, Kibana), Grafana Loki. Estes sistemas permitem recolher logs de diferentes fontes, armazená-los centralizadamente, indexá-los e visualizá-los. Usar Kibana ou Grafana para criar dashboards e buscas interativas nos logs era rotina.
  • Logging estruturado: Incentivou as equipas de desenvolvimento a usar formatos de logs que facilitam o parsing (por exemplo, JSON), adicionando um ID de correlação para ligar pedidos entre serviços.
  • Monitorização e alertas: Configurou regras em sistemas de monitorização (Prometheus) e logging (ELK, Grafana) para enviar notificações em caso de erros críticos ou excesso de avisos nos logs.

Exemplo de uso do ELK para procurar erro:

  1. Identificação do incidente (por exemplo, uma reclamação de utilizador).
  2. Acesso ao Kibana, seleção do índice de logs correspondente.
  3. Inserção de palavras-chave ou filtros (por exemplo, ID de utilizador, hora do pedido, nome do microserviço).
  4. Pesquisa pelo campo level: ERROR ou level: WARNING.
  5. Análise do stacktrace e logs circundantes para determinar o contexto do erro e identificar o módulo ou função que causou a falha.
{
  "@timestamp": "2023-10-27T10:30:00.123Z",
  "level": "ERROR",
  "message": "Falha na conexão à base de dados",
  "service": "user-service",
  "correlation_id": "abc-123",
  "error": {
    "type": "SQLException",
    "message": "Conexão recusada",
    "stacktrace": "..." // Aqui estará o stacktrace completo
  },
  "user_id": "user-xyz"
}

A análise de logs é uma parte crítica do processo de teste e suporte do produto, permitindo identificar e localizar rapidamente os problemas.