How improve quality on your log process using the ELK tools stack.
(Em portugues)
Como melhorar a qualidade do seu processo de log através da stack de ferramentas ELK.
1. Let’s go Log
ELK (ElasticSearch, LogStash e Kibana)
Rafael Pacheco
@ravpachecco
ravpacheco.com
2. 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;
5. 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;
10. 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 { }
}
11. 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
13. 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
14. 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>
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
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.
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
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
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.
(possuimos atualmente dois modelos: centralizado e descentralizado)
Ou é custoso incluir o processo de log em alguma ferramenta em produção
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)
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.
Simples configuração do logstash
Configuração complexa do logstash com SQL, Elastic e Kibana
syslog-ng = logstash
graylog => completo
splunk e scribe (pago) => completo
chukwa e flume => hadoop mas pode ser usado pra coletar e armazenar logs