1 ‐ Introdução a Observabilidade - tornis/elastic-observability GitHub Wiki
1. O que é Observabilidade?
Introdução: A observabilidade é um atributo fundamental dos sistemas de software modernos, derivado do campo da engenharia de controle. Ela se refere à capacidade de compreender e inferir o estado interno de um sistema a partir de seus dados externos (logs, métricas e traces).

Conceitos-chave:
- Dados de Sinais: Logs, métricas e traces são os pilares da observabilidade. Logs fornecem registros imutáveis de eventos, métricas oferecem uma visão quantitativa do estado do sistema ao longo do tempo, e traces mapeiam o percurso das transações ou workflows através de diversos serviços.
- Contexto e Correlação: Observabilidade não é apenas sobre coletar dados, mas também sobre a capacidade de correlacioná-los para obter insights sobre o comportamento do sistema.
- Proatividade e Reatividade: Observabilidade permite identificar problemas antes que eles afetem significativamente os usuários, bem como diagnosticar falhas já ocorridas.
1.1 O que a Observabilidade resolve?
Desafios Endereçados:
- Complexidade de Sistemas Modernos: Com a ascensão de microserviços, contêineres e computação em nuvem, os sistemas tornaram-se mais complexos. A observabilidade ajuda a entender esses sistemas multifacetados.
- Detecção de Problemas e Resolução: Ela permite a rápida detecção e solução de problemas, reduzindo o tempo de inatividade e melhorando a experiência do usuário.
- Otimização de Desempenho: Além de resolver problemas, a observabilidade permite otimizar o desempenho do sistema, identificando gargalos e ineficiências.
1.2 Diferenças entre ferramentas de monitoramento tradicional e as ferramentas de Observabilidade
Monitoramento Tradicional:
- Foco em Thresholds e Alarmes: Monitoramento tradicional geralmente depende de limiares predefinidos para gerar alertas.
- Visão Limitada: Frequentemente focado em métricas específicas, sem a profundidade necessária para entender sistemas complexos.
Ferramentas de Observabilidade:
- Análise Holística: Fornece uma visão abrangente do sistema, integrando logs, métricas e traces.
- Detecção de Anomalias e Machine Learning: Usa tecnologias avançadas para detectar problemas potenciais antes que eles ocorram.
1.3 Como o Elastic Observability se encaixa na Observabilidade?
Introdução ao Elastic Observability:
- Integração de Dados: Elastic Observability é uma solução que coleta, correlaciona e analisa dados de logs, métricas e traces.
- Elastic Stack: Construído sobre o Elastic Stack, que inclui Elasticsearch, Logstash, Kibana e Beats, proporcionando uma plataforma poderosa para observabilidade.
1.4 Diferenciais do Elastic Observability
Integração Completa de Dados de Observabilidade
- Unificação de Logs, Métricas e Traces: O Elastic Observability se destaca pela sua capacidade de integrar de maneira eficiente logs, métricas e traces. Esta abordagem holística permite que os operadores de sistemas vejam uma narrativa completa do comportamento do sistema, facilitando a identificação de correlações e causas raízes de problemas.
- Análise de Dados em Tempo Real: A plataforma é capaz de processar e analisar dados em tempo real, oferecendo insights instantâneos sobre o estado do sistema. Isso é crucial para a detecção rápida de problemas e a tomada de decisões informadas.
Escalabilidade e Flexibilidade
- Alta Escalabilidade com Elasticsearch: Graças ao Elasticsearch, o núcleo do Elastic Stack, o Elastic Observability pode lidar com grandes volumes de dados sem sacrificar o desempenho. Isso o torna ideal para organizações de qualquer tamanho, desde startups até grandes corporações com vastas infraestruturas.
- Flexibilidade de Implantação: Elastic Observability pode ser implementado tanto em ambientes on-premises quanto em cloud, oferecendo flexibilidade para se adequar a diferentes necessidades de infraestrutura.
Visualização Avançada e Análise de Dados com Kibana
- Dashboards Personalizáveis e Insights Visuais: Kibana, a interface de visualização do Elastic Stack, permite aos usuários criar dashboards personalizados que podem visualizar complexas cadeias de dados de observabilidade de forma intuitiva. Essas visualizações ajudam a destacar tendências, padrões e anomalias.
- Facilidade de Uso: Kibana é projetado para ser amigável para usuários de diferentes níveis técnicos, tornando a análise de dados complexos mais acessível a todos os membros da equipe.
Integração com APM e Uptime Monitoring
- Monitoramento de Aplicações (APM): Elastic APM oferece monitoramento detalhado do desempenho das aplicações, permitindo aos desenvolvedores e operadores de sistema identificar rapidamente gargalos e problemas no código das aplicações.
- Uptime Monitoring: Com recursos dedicados para monitorar a disponibilidade dos sistemas, o Elastic Observability ajuda a garantir que problemas de uptime sejam rapidamente detectados e resolvidos, minimizando o tempo de inatividade e melhorando a confiabilidade do serviço.
Machine Learning e Detecção de Anomalias
- Capacidades de Machine Learning: O Elastic Observability incorpora recursos de machine learning para identificar padrões de dados e detectar automaticamente anomalias, ajudando na previsão de problemas antes que eles afetem os usuários.
- Alertas Proativos: Combinado com um sistema de alertas robusto, esses recursos de machine learning permitem uma abordagem proativa na manutenção da saúde do sistema, reduzindo a necessidade de monitoramento manual constante.
Elastic Common Schema (ECS)
- Padronização de Dados: O Elastic Observability adota o Elastic Common Schema (ECS), que padroniza os formatos de dados de logs e eventos, facilitando a correlação de dados e análise entre diferentes fontes e tipos de dados.
Comunidade e Ecossistema
- Comunidade Ativa: Elastic possui uma comunidade ativa e um ecossistema em crescimento, o que significa um constante desenvolvimento de novos plugins, integrações e melhorias na plataforma.
- Recursos Educacionais: Há uma abundância de documentação, tutoriais e fóruns de discussão disponíveis, facilitando o aprendizado e a adoção da ferramenta por novos usuários.
Esses diferenciais destacam o Elastic Observability como uma solução abrangente e poderosa para monitoramento e análise de sistemas em qualquer escala.
1.5 Ferramentas que compõem o Elastic Observability
Pilares da Observabilidade:
- Métricas: Quantificam o comportamento do sistema através de medidas como latência, taxa de erros, uso de CPU e memória.
- Logs: Registram eventos e atividades do sistema, fornecendo informações detalhadas sobre o que está acontecendo.
- Traces: Rastreiam o fluxo de requisições através do sistema, mapeando as dependências entre os componentes e identificando gargalos.
Ferramentas do Elastic Observability:
| Ferramenta | Pilar | Funcionalidades |
|---|---|---|
| Beats | Métricas, Logs | Agentes leves para coleta e envio de dados para o Elasticsearch |
| Metricbeat | Métricas | Coleta de métricas de diversos sistemas, incluindo servidores, containers, aplicações e serviços em nuvem |
| Logstash | Logs | Processamento e transformação de logs antes do envio para o Elasticsearch |
| Elasticsearch | Métricas, Logs, Traces | Armazenamento, indexação e busca de logs, métricas e traces |
| Kibana | Métricas, Logs, Traces | Interface de visualização e análise de dados, com dashboards, painéis e ferramentas de investigação |
| APM (Beats + APM Server) | Traces | Coleta e análise de traces distribuídos, mapeando o fluxo de requisições e identificando gargalos |
| Uptime (Beats + Uptime Server) | Métricas | Monitoramento da disponibilidade e do tempo de resposta de aplicações e serviços |
Detalhes Adicionais:
- Beats:
- Ampla variedade de beats para diferentes tipos de dados, como system, filebeat, nginx, mysql, etc.
- Suporte para diversos protocolos de envio de dados, como TCP, UDP, HTTP e HTTPS.
- Metricbeat:
- Coleta de métricas de CPU, memória, disco, rede, processos, etc.
- Integração com diversos sistemas de monitoramento, como Prometheus, Ganglia e SNMP.
- Logstash:
- Filtros, parsers e enrichers para transformar e normalizar logs.
- Suporte para diversos formatos de log, como JSON, CSV, syslog, etc.
- Elasticsearch:
- Armazenamento escalável e de alta performance para grandes volumes de dados.
- Mecanismos de busca e análise avançados, com suporte a queries complexas.
- Kibana:
- Dashboards e painéis customizáveis para visualizar e analisar dados.
- Ferramentas de investigação para identificar e solucionar problemas.
- APM:
- Rastreamento de traces distribuídos em ambientes complexos.
- Identificação de gargalos e anomalias no desempenho das aplicações.
- Uptime:
- Monitoramento da disponibilidade e do tempo de resposta de aplicações e serviços.
- Alertas e notificações em caso de problemas.
Observações:
- A tabela acima é apenas um resumo das principais ferramentas do Elastic Observability.
- Para mais detalhes, consulte a documentação oficial da Elastic: https://www.elastic.co/guide/en/observability/current/index.html