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).

Observability Pillars

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?

Elastic Observability 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: