Skip to content

9 ‐ Observabilidade

inhogoes edited this page May 24, 2024 · 9 revisions

9.1 - O que é a Observabilidade?

A observabilidade é uma abordagem abrangente para monitorar a saúde e o desempenho dos sistemas de TI. No Elastic Stack, a observabilidade é composta por vários componentes integrados que permitem coletar, analisar e visualizar logs, métricas, traces, e mais. A observabilidade ajuda a identificar e resolver problemas rapidamente, garantindo que os sistemas estejam funcionando conforme esperado.

9.1.1 - Logs

Os logs são registros de eventos e mensagens gerados por aplicativos, sistemas operacionais e infraestrutura. No Elastic Stack, os logs são coletados, armazenados e analisados de forma eficiente.

  • Coleta de Logs: Utilizando Beats (como Filebeat) e Logstash, os logs são coletados de diversas fontes e enviados para o Elasticsearch.
  • Armazenamento e Indexação: Os logs são indexados no Elasticsearch, permitindo buscas rápidas e análises detalhadas.
  • Análise e Visualização: Utilizando o Kibana, é possível criar visualizações e dashboards para monitorar e analisar os logs em tempo real.
  • Centralização de Logs: Consolida logs de diferentes sistemas em um único lugar, facilitando a correlação de eventos e a identificação de problemas.

9.1.2 - Infrastructure

O módulo de Infrastructure no Kibana permite monitorar e visualizar métricas de infraestrutura em tempo real.

  • Coleta de Métricas: Utilizando Metricbeat, é possível coletar métricas de sistemas operacionais, servidores, containers, e serviços.
  • Visualizações de Infraestrutura: O Infrastructure UI oferece uma visão unificada da infraestrutura, mostrando o status de hosts, containers e serviços.
  • Mapas de Infraestrutura: Crie mapas que mostram a topologia e a saúde da infraestrutura, facilitando a identificação de gargalos e problemas.

9.1.3 - APM

O APM monitora o desempenho de aplicativos, ajudando a identificar e resolver problemas de performance.

  • Coleta de Traces: Elastic APM coleta dados detalhados sobre transações, tempos de resposta e erros em aplicativos.
  • Visualização de Performance: Utilize o Kibana para visualizar traces, identificar gargalos e analisar a performance dos aplicativos.
  • Integração com Logs e Métricas: Correlacione dados de APM com logs e métricas para uma análise mais completa e contextualizada.
  • Alertas de Performance: Configure alertas para notificar quando houver degradação de performance ou outros problemas críticos.

9.1.4 - Synthetics

O Synthetics monitora a performance e a disponibilidade de aplicativos web através de testes sintéticos.

  • Monitoramento de Uptime: Realize verificações de disponibilidade de sites e serviços web, garantindo que estejam acessíveis e funcionando corretamente.
  • Testes de Navegação: Execute scripts que simulam interações de usuário em sites, verificando a funcionalidade e performance de ponta a ponta.
  • Relatórios de Uptime e Performance: Gere relatórios detalhados sobre o uptime e a performance de aplicativos web, ajudando a identificar e resolver problemas proativamente.

9.1.5 - User Experience

O módulo de User Experience monitora a experiência dos usuários finais ao interagir com aplicativos web.

  • Coleta de Dados RUM (Real User Monitoring): Capture dados reais de usuários navegando em seu site, incluindo tempos de carregamento, interações e erros.
  • Análise de Experiência do Usuário: Visualize métricas como First Contentful Paint (FCP), Largest Contentful Paint (LCP) e outros indicadores de performance de usuário.
  • Identificação de Problemas: Identifique problemas específicos que afetam a experiência do usuário, como tempos de resposta lentos ou erros de JavaScript.
  • Segmentação de Dados: Segmente dados por localização geográfica, tipo de dispositivo, navegador, etc., para uma análise mais detalhada.

9.1.6 - Alerts

Os alertas são essenciais para notificar rapidamente sobre problemas críticos e garantir a resolução rápida.

  • Configuração de Alertas: Configure alertas para monitorar métricas, logs, APM e outros dados. Defina condições específicas que, quando atendidas, disparam alertas.
  • Notificações: Integre alertas com canais de notificação como email, Slack, PagerDuty e outras ferramentas de comunicação.
  • Gestão de Alertas: Monitore e gerencie alertas diretamente no Kibana, incluindo a visualização de alertas ativos, históricos e resolvidos.
  • Automação de Respostas: Utilize alertas para acionar respostas automáticas, como escalonamento de problemas ou execução de scripts de remediação.

9.1.7 - SLOs

SLOs são metas de desempenho que ajudam a medir e gerenciar a qualidade do serviço.

  • Definição de SLOs: Defina objetivos claros para métricas de desempenho, como tempo de resposta, disponibilidade e outras métricas críticas.
  • Monitoramento de SLOs: Utilize o Kibana para monitorar o cumprimento dos SLOs, visualizando se os serviços estão dentro das metas estabelecidas.
  • Relatórios de SLOs: Gere relatórios que mostram o cumprimento dos SLOs ao longo do tempo, ajudando a identificar áreas que precisam de melhoria.

9.1.8 - Cases

O módulo de Cases no Kibana ajuda a organizar e gerenciar incidentes e investigações.

  • Criação de Cases: Crie casos para documentar incidentes, investigações e resoluções. Cada caso pode incluir detalhes sobre o problema, ações tomadas e resultados.
  • Colaboração: Colabore com membros da equipe adicionando comentários e anexando arquivos relevantes aos casos.
  • Rastreamento de Status: Acompanhe o status dos casos, desde a criação até a resolução, garantindo que nenhum problema seja negligenciado.
  • Relatórios de Incidentes: Gere relatórios detalhados sobre incidentes e investigações, facilitando a análise posterior e a melhoria contínua dos processos de resposta a incidentes.

9.2 - Laboratório 1 - Instalando uma aplicação teste

Neste laboratório entenderemos como que podemos configurar o Elastic APM para começar a coletar informações de uma aplicação desejada. Neste caso, estaremos utilizando como exemplo uma aplicação desenvolvida em Python Django, mas existem diversas outras linguagens que o Elastic APM já suporta para a auto instrumentação da sua aplicação.

Instalando a aplicação

   cd /opt/elastic/
   wget https://github.com/BktechBrazil/elasticstacktotal/raw/main/find_search.tar.gz
   tar zxfv find_search.tar.gz

Entrando na aplicação

   cd /opt/find_search/

Instalando e acessando um ambiente virtualizado de python

   apt install python3.8-venv
   cd /opt/
   python3 -m venv venv
   source venv/bin/activate

Iniciando a aplicação no ambiente virtualizado

   cd /opt/find_search/
   pip3 install -r requirements.txt
   vi core/settings.py
   python3 manage.py runserver 0.0.0.0:8000