Elasticsearch e Python para
monitorar e corrigir falhas na
sua aplicação
Rafael Galleani
Slide 2
Slide 2 text
• Sou natural de Araraquara
• Trabalho há 10 anos com TI
• Sou líder técnico na Global Hitss
• Sou Pythonista
• Mantenho um canal de tecnologia no youtube
• Youtube.com/rafegal (Rafael Galleani)
Um pouco sobre mim
Slide 3
Slide 3 text
• O que é ELK e Beats
• Como subir o ELK
• Como criar um monitoramento
• Configurando um Filebeat
• Utilizando Python + Elasticsearch para correção de problemas e geração de
alertas
O que vamos ver hoje
Slide 4
Slide 4 text
• Criado por Shay Banon em 2004 com o nome de Compass
• Na segunda versão já foi renomeado para Elasticsearch
• Shay Banon criou o Elasticsearch para ajudar sua esposa a organizar sua lista de
receitas culinárias
Elasticsearch – Como surgiu
Slide 5
Slide 5 text
• É uma ferramenta que tem capacidade para tratar grandes volumes de dados quase
em tempo real (near real-time indexing)
• É baseado no Apache Lucene (motor de busca full-text de alto desempenho) e
desenvolvido em Java
• Trabalha com conceito de Shardind, ou seja, tem a capacidade de particionar seus
dados entres vários servidores (nodes)
• Utiliza interface JSON sobre APIs HTTP
• É escalável
• É Open Source
Mas afinal, o que é Elasticsearch?
Slide 6
Slide 6 text
Como podemos utilizar Elasticsearch?
• Pode ser utilizado para armazenar dados de diferentes fontes
• Esses dados podem ser estruturados e não estruturados
• Pode-se armazenar dados estruturados de banco relacional e não estruturados
como logs de aplicação e navegação, página da web (scrapping e crawler) e de
APIs
• Dados armazenados no Elastcisearch podem ser utilizado para busca por texto,
busca por parâmetro e para gerar métricas que irão auxiliar em tomadas de
decisões
Slide 7
Slide 7 text
Quem usa Elasticsearch?
Slide 8
Slide 8 text
Elastic Stack
Interface de
usuário
Armazenar e
indexar
Ingestão e
transformação
de dados
Slide 9
Slide 9 text
• É um pipeline de processamento de dados
• Coleta dados de vários fontes diferentes, podendo ser dados de logs, banco,
apis, etc...
• O Logstash coleta esses dados, transforma-os e envia para o Elasticsearch
Logstash
Slide 10
Slide 10 text
• O Kibana permite que visualizemos os dados do Elasticsearch
• No Kibana podemos realizar buscas e criar dashboards
• Os dashboards transformam os dados do Elasticsearch para um formato que
permita visões que nos auxiliem em análises e tomadas de decisão
Kibana
Slide 11
Slide 11 text
Kibana
Slide 12
Slide 12 text
• Plataforma para injeção de dados no Elasticsearch ou no Logstash
• São agentes muito leves e de fácil configuração
Beats
Slide 13
Slide 13 text
• Realiza coleta de informações em arquivos de logs
• Essa informação pode ser enviada para o Logstash ou diretamente para o Elasticsearch
• Toda nova informação no arquivo de log é enviada para o Elasticsearch quase em
tempo real
Filebeat
Slide 14
Slide 14 text
Desenho da solução da demonstração
Slide 15
Slide 15 text
Com o Elastic Stack é possível
monitorarmos...
Slide 16
Slide 16 text
Quantidade de acessos
Slide 17
Slide 17 text
Módulos mais acessados
Slide 18
Slide 18 text
Funções com maior tempo de resposta
Slide 19
Slide 19 text
Funções com maior tempo de resposta
Slide 20
Slide 20 text
Funções com maior tempo de resposta
Slide 21
Slide 21 text
• Coleta de informações de banco de dados relacional
• Consulta no Elasticsearch em substituição a consulta em banco relacional pra
obter ganho de performance
• Desenvolvimento de dashboards a partir dos dados coletados de banco de
dados relacional
• Cruzamento de informações de várias fontes diferente para identificar
problema de forma mais rápida
Outras soluções que tenho implementadas