-
Notifications
You must be signed in to change notification settings - Fork 1
9 ‐ 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
cd /opt/elastic/
wget https://github.com/BktechBrazil/elasticstacktotal/raw/main/find_search.tar.gz
tar zxfv find_search.tar.gz
cd /opt/find_search/
apt install python3.8-venv
cd /opt/
python3 -m venv venv
source venv/bin/activate
cd /opt/find_search/
pip3 install -r requirements.txt
vi core/settings.py
python3 manage.py runserver 0.0.0.0:8000