SlideShare uma empresa Scribd logo
1 de 17
Let’s go Log
ELK (ElasticSearch, LogStash e Kibana)
Rafael Pacheco
@ravpachecco
ravpacheco.com
Sumário
• Importância e ciclo de vida dos logs;
• Problemas típicos com mecanismos precários de logs;
• Algumas evidências que indicam problemas com logs;
• Como melhorar o processo de log através da stack ELK;
• Protótipo em desenvolvimento;
• Demos;
Como estão seus logs ?
Ciclo de vida
Record
Transmit
Analyze
Store
Delete
* James Turnbull (CTO Kickstarter) [http://goo.gl/GSl9Fm]
Problemas
Alguns problemas gerados por mecanismos de log precário:
• Tempo excessivo para diagnosticar e resolver problemas em produção;
• Aumento do custo operacional;
• Falta de evidências para justificar indisponibilidades;
• Inexistência de métricas (ligadas ao ciclo de vida) para analisar desempenho
e qualidade dos produtos;
Evidências
Não existe padrão no processo de armazenamento dos logs;
Log
Log
LogLog
Aplicação X
Evidências
Algumas aplicações não possuem logs
Log
Aplicação X
Evidências
Incapacidade de extrair, facilmente, informações e insights dos logs através dos
meios de visualização utilizados atualmente
ELK
Elasticsearch + Logstash + Kibana
Logstash
Ferramenta para construção de pipelines de ações
• open source
• pré-requisitos (JVM)
• flexível e extensível (plugins)
• age como um orquestrador do fluxo de logs
• componentes básicos:
input
filter
output
#logstash.conf
input {
stdin { }
}
filter {
}
output {
stdout { }
}
Elasticsearch
Ferramenta especializada em indexação e search em texto (documentos)
• open source
• pré-requisitos (JVM)
• possui uma engine de search RESTful
• projetado para cloud
• componentes básicos:
Indexação
search
#example
PUT /megacorp/employee/1
{
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love rock climbing",
"interests": [ "sports", "music" ]
}
GET /megacorp/employee/1
GET /megacorp/employee/_search
Elasticsearch
Alguns usuários: *Github usa elasticsearch para pesquisar em 130
bilhões de linhas de código
Kibana
Ferramenta especializada em exploração e visualização de dados em conjunto
com elasticsearch
open source
interface bonitinha
gráficos
análises sofisticadas
pode ser integrada também com Hadoop, Flume, fluentd
Protótipo em desenvolvimento
Premissas: simplicidade e flexibilidade para adequar-se a nossa realidade atual;
L
Log
Log
Log
Log
NEST*
LogStash
<output>
E
ElasticSearch
K
Kibana
<input>
<Filter>
Demo
Alternativas
Obrigado!!!
rafaelpa@takenet.com.br
@ravpachecco
ravpacheco.com

Mais conteúdo relacionado

Semelhante a ELK Stack para melhorar o processo de log

AulaTuningProfCeliniaEquipe_Igor Paula Maisa
AulaTuningProfCeliniaEquipe_Igor Paula MaisaAulaTuningProfCeliniaEquipe_Igor Paula Maisa
AulaTuningProfCeliniaEquipe_Igor Paula MaisaMaísa Brenda
 
Como criar uma TI orientada por processos
Como criar uma TI orientada por processosComo criar uma TI orientada por processos
Como criar uma TI orientada por processosVenki
 
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCCTDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCCStefan Teixeira
 
TDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de DadosTDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de Dadostdc-globalcode
 
Cake php selecaodeprojetos-apres-em-modelo
Cake php selecaodeprojetos-apres-em-modeloCake php selecaodeprojetos-apres-em-modelo
Cake php selecaodeprojetos-apres-em-modeloCBA2012
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPCBA2012
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPThiago Colares
 
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidadeTDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidadeStefan Teixeira
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Pablo Nóbrega
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoAchiles Camilo
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfRodolphoCesar2
 
Monitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application InsightsMonitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application InsightsRenato Groff
 
Monitoramento: logs como elementos de primeira ordem
Monitoramento: logs como elementos de primeira ordemMonitoramento: logs como elementos de primeira ordem
Monitoramento: logs como elementos de primeira ordemThaisa Silva
 
Criação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLCriação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLMarcos Thomaz
 
Criação de log de ações através do banco
Criação de log de ações através do bancoCriação de log de ações através do banco
Criação de log de ações através do bancoMarcos Thomaz
 
Webinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcadoWebinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcadoEmbarcados
 
Otimização de processos laboratoriais e de controle de qualidade industrial
Otimização de processos laboratoriais e de controle de qualidade industrialOtimização de processos laboratoriais e de controle de qualidade industrial
Otimização de processos laboratoriais e de controle de qualidade industrialLabsoft - myLIMS
 

Semelhante a ELK Stack para melhorar o processo de log (20)

Cake PHP
Cake PHPCake PHP
Cake PHP
 
AulaTuningProfCeliniaEquipe_Igor Paula Maisa
AulaTuningProfCeliniaEquipe_Igor Paula MaisaAulaTuningProfCeliniaEquipe_Igor Paula Maisa
AulaTuningProfCeliniaEquipe_Igor Paula Maisa
 
Como criar uma TI orientada por processos
Como criar uma TI orientada por processosComo criar uma TI orientada por processos
Como criar uma TI orientada por processos
 
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCCTDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
 
TDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de DadosTDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de Dados
 
Cake php selecaodeprojetos-apres-em-modelo
Cake php selecaodeprojetos-apres-em-modeloCake php selecaodeprojetos-apres-em-modelo
Cake php selecaodeprojetos-apres-em-modelo
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHP
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHP
 
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidadeTDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
TDC 2016 SP - Desmistificando cobertura de código como métrica de qualidade
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2
 
TechEd_OFC302
TechEd_OFC302TechEd_OFC302
TechEd_OFC302
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introdução
 
GOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdfGOTEST-Aula3-Automacao-Processo-Testes.pdf
GOTEST-Aula3-Automacao-Processo-Testes.pdf
 
Monitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application InsightsMonitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application Insights
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Monitoramento: logs como elementos de primeira ordem
Monitoramento: logs como elementos de primeira ordemMonitoramento: logs como elementos de primeira ordem
Monitoramento: logs como elementos de primeira ordem
 
Criação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQLCriação de log de ações através do banco - PostgreSQL
Criação de log de ações através do banco - PostgreSQL
 
Criação de log de ações através do banco
Criação de log de ações através do bancoCriação de log de ações através do banco
Criação de log de ações através do banco
 
Webinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcadoWebinar: Debugging em Linux embarcado
Webinar: Debugging em Linux embarcado
 
Otimização de processos laboratoriais e de controle de qualidade industrial
Otimização de processos laboratoriais e de controle de qualidade industrialOtimização de processos laboratoriais e de controle de qualidade industrial
Otimização de processos laboratoriais e de controle de qualidade industrial
 

Mais de Rafael Pacheco

Como criar e publicar um chatbot
Como criar e publicar um chatbotComo criar e publicar um chatbot
Como criar e publicar um chatbotRafael Pacheco
 
Google home and actions
Google home and actionsGoogle home and actions
Google home and actionsRafael Pacheco
 
Chatbot - A revolução da comunicação entre pessoas e empresas
Chatbot - A revolução da comunicação entre pessoas e empresasChatbot - A revolução da comunicação entre pessoas e empresas
Chatbot - A revolução da comunicação entre pessoas e empresasRafael Pacheco
 
Boas práticas para a construção de chatbots relevantes.
Boas práticas para a construção de chatbots relevantes.Boas práticas para a construção de chatbots relevantes.
Boas práticas para a construção de chatbots relevantes.Rafael Pacheco
 
Como ser um profissional no desenvolvimento de software
Como ser um profissional no desenvolvimento de softwareComo ser um profissional no desenvolvimento de software
Como ser um profissional no desenvolvimento de softwareRafael Pacheco
 
Como ser um 'profissional' no desenvolvimento de código.
Como ser um 'profissional' no desenvolvimento de código.Como ser um 'profissional' no desenvolvimento de código.
Como ser um 'profissional' no desenvolvimento de código.Rafael Pacheco
 
Apresentação Take.Net MTC2015
Apresentação Take.Net MTC2015Apresentação Take.Net MTC2015
Apresentação Take.Net MTC2015Rafael Pacheco
 
Criando um ambiente real de distribuição de aplicativos usando TestFairy
Criando um ambiente real de distribuição de aplicativos usando TestFairyCriando um ambiente real de distribuição de aplicativos usando TestFairy
Criando um ambiente real de distribuição de aplicativos usando TestFairyRafael Pacheco
 
Introdução ao Modelo de Atores e Akka
Introdução ao Modelo de Atores e AkkaIntrodução ao Modelo de Atores e Akka
Introdução ao Modelo de Atores e AkkaRafael Pacheco
 
Resumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POAResumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POARafael Pacheco
 

Mais de Rafael Pacheco (12)

Como criar e publicar um chatbot
Como criar e publicar um chatbotComo criar e publicar um chatbot
Como criar e publicar um chatbot
 
Google home and actions
Google home and actionsGoogle home and actions
Google home and actions
 
Chatbot - A revolução da comunicação entre pessoas e empresas
Chatbot - A revolução da comunicação entre pessoas e empresasChatbot - A revolução da comunicação entre pessoas e empresas
Chatbot - A revolução da comunicação entre pessoas e empresas
 
Boas práticas para a construção de chatbots relevantes.
Boas práticas para a construção de chatbots relevantes.Boas práticas para a construção de chatbots relevantes.
Boas práticas para a construção de chatbots relevantes.
 
Como ser um profissional no desenvolvimento de software
Como ser um profissional no desenvolvimento de softwareComo ser um profissional no desenvolvimento de software
Como ser um profissional no desenvolvimento de software
 
MVVM – Hello World
MVVM – Hello WorldMVVM – Hello World
MVVM – Hello World
 
Como ser um 'profissional' no desenvolvimento de código.
Como ser um 'profissional' no desenvolvimento de código.Como ser um 'profissional' no desenvolvimento de código.
Como ser um 'profissional' no desenvolvimento de código.
 
Coded UI
Coded UICoded UI
Coded UI
 
Apresentação Take.Net MTC2015
Apresentação Take.Net MTC2015Apresentação Take.Net MTC2015
Apresentação Take.Net MTC2015
 
Criando um ambiente real de distribuição de aplicativos usando TestFairy
Criando um ambiente real de distribuição de aplicativos usando TestFairyCriando um ambiente real de distribuição de aplicativos usando TestFairy
Criando um ambiente real de distribuição de aplicativos usando TestFairy
 
Introdução ao Modelo de Atores e Akka
Introdução ao Modelo de Atores e AkkaIntrodução ao Modelo de Atores e Akka
Introdução ao Modelo de Atores e Akka
 
Resumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POAResumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POA
 

ELK Stack para melhorar o processo de log

Notas do Editor

  1. 1 - Minha apresentação 2 - Essa apresentação é uma compilação de uma pesquisa inicial que eu comecei na Take a algum tempo para tentar melhorar todo o nosso processo de log. Não sei se todos sabem mas a Take é uma empresa que recebe por volta de 300 a 500 milhoes de requisições todos os meses, então algumas de nossas aplicações vivem uma carga de stress muito grande e muitas vezes o log é uma ferramenta fundamental para encontrar problemas. A idéia é que eu consiga passar pra vcs um pouco do que eu já absorvi durante essa pesquisa e apresentar um primeiro protótipo desse novo fluxo que eu e o Rafael Romão iniciamos no Take.Livre (explicar) Então as demos que eu vou tentar mostrar no final já refletem a nossa tentativa inicial de utilizar a stack ELK na Takenet. Apesar de demonstrar uma estrutura voltada pra Take o que eu vou mostrar nessa apresentação pode ajudar qualquer outra empresa a melhorar o processo de armazenamento, consulta e análise de log através do ELK
  2. 1 - Sumário 2 - É inegável que toda empresa que desenvolva software precisa, e muito, de um mecanismo de log que funcione bem e que dê evidências sobre a saúde de suas aplicações.
  3. 1 - Mas no fundo nos só damos a devida importância para os logs quando realmente precisamos deles. E geralmente quando precisamos dele é pq a situação já está caótica. Vc já tomou uma surra do problema e já não sabe mais onde mexer. 2 - Citar exemplo do Chat
  4. 1 - Ciclo ideal 2 - Ciclo real 3 - Quantas vezes vc já se debrucou sobre a plataforma q vc é responsável para analisar os pontos de fragilidade, os locais onde poderiam receber algum tipo de otimização ou mesmo quais são as features que nunca são usadas por sua aplicação? Na maioria das vezes esse descuido com a fase de análise acontece por falta de tempo, prioridade e é algo normal. Entretanto em outros momentos caso seu processo e mecanismo de log não seja robusto e não contemple todos esses passos vc pode acabar enfrentando alguns problemas
  5. Existem algumas evidências que te ajudam a identificar que seu mecanismo de log não está muito legal. Mais uma vez, essas são algumas evidências que eu coletei na Takenet mas podem ser utilizadas também em outros contextos.
  6. (possuimos atualmente dois modelos: centralizado e descentralizado)
  7. Ou é custoso incluir o processo de log em alguma ferramenta em produção
  8. O objetivo de utilizar esta stack é que ela reune 3 ferramentas que conseguem cobrir de forma efetiva o ciclo de vida do processo de log e ainda no caso da Takenet em especifico eu consegui ver uma forma não muito custosa de integrar a stack a nossa realidade. todas essas ferramentas foram construidas pensando no conceito de cloud (escalabilidade)
  9. Wikipedia uses Elasticsearch to provide full-text search with highlighted search snippets, and search-as-you-type and did-you-mean suggestions. The Guardian uses Elasticsearch to combine visitor logs with social -network data to provide real-time feedback to its editors about the public’s response to new articles. Stack Overflow combines full-text search with geolocation queries and uses more-like-this to find related questions and answers. GitHub uses Elasticsearch to query 130 billion lines of code.
  10. Simples configuração do logstash Configuração complexa do logstash com SQL, Elastic e Kibana
  11. syslog-ng = logstash graylog => completo splunk e scribe (pago) => completo chukwa e flume => hadoop mas pode ser usado pra coletar e armazenar logs