Pensando nisso, este artigo discorrerá sobre uma maneira de simplificar esse problema. Este artigo abordará a ferramenta Elasticsearch, uma solução criada em cima do Apache Lucene com o objetivo de facilitar a indexação e busca de dados em tempo real, podendo processar tanto dados estruturados como, também, dados não-estruturados.
Além disso, também iremos discutir sobre a ferramenta Kibana e a ferramenta Logstash, bastante utilizadas em conjunto com o Elasticsearch para prover um ambiente de análise e processamento de dados.
Feito isso, visando demonstrar uma solução prática da utilização dessas aplicações, apresentaremos um cenário onde é necessário ao desenvolvedor ser capaz de analisar, em tempo real, o que acontece em sua aplicação, mostrando a grande vantagem de se utilizar o Elasticsearch para a análise de logs.
A análise de dados é um dos tópicos mais proeminentes e interessantes dos últimos anos. Com o surgimento de novas ferramentas e tecnologias capazes de prover um ambiente performático e eficiente para a busca e indexação de dados nos mais diversos formatos, o campo da Big Data, aliado à análise de informações, vem se mostrando como o grande nome dos próximos anos.
Entre essas tecnologias, a biblioteca da Apache chamada Lucene ganhou bastante destaque no campo de indexação e busca de dados. Capaz de prover as implementações necessárias para o tratamento, análise e busca de conteúdos textuais, essa API acabou sendo utilizada por diversas implementações, como o Apache Solr e, também, o foco de nosso artigo, o Elasticsearch.
Essa ferramenta, por sua vez, aliou os benefícios previamente citados do Apache Lucene com uma plataforma de alta confiabilidade e performance, produzindo assim um servidor de buscas capaz de realizar as funcionalidades de indexação e armazenamento em um ambiente distribuído para qualquer tipo de aplicação.
Ainda mais interessante, juntamente com as ferramentas Logstash e Kibana, o Elasticsearch vem, a cada dia, sendo mais utilizado no campo de análise de dados para aplicações dos mais diversos tipos, provendo uma interface altamente customizável e funcional para o monitoramento e análise de dados de sistemas.
Dito isso, nosso objetivo nesse artigo será mostrar um pouco sobre essa incrível ferramenta e suas aplicações no mundo real, demonstrando como realizar uma configuração inicial do Elasticsearch e como utilizá-lo dentro de seu projeto, principalmente focando nas melhores práticas de utilização dessa ferramenta para sanar a dificuldade em monitorar e ter uma visão clara do que acontece nos logs de sua aplicação.
O problema do monitoramento de logs
Tal dificuldade, para os desenvolvedores acostumados a trabalhar com grandes sistemas, pode realmente se tornar um “monstro de 7 cabeças”. A busca por trechos de textos em diversas linhas de log é uma tarefa que todo programador já passou ou irá passar um dia e é, com certeza, uma atividade desgastante.
O primeiro dos problemas que temos em uma abordagem tradicional é que, através de um simples arquivo de log, não conseguimos ter uma visão macro de nosso sistema.
Por mais que seja possível encontrar trechos de eventos dentro de arquivos textos através de comandos do Unix, como grep ou tail, não conseguimos ter gráficos ou tabelas capazes de nos mostrar claramente quantos eventos e quais os tipos de eventos que temos em um determinado período de tempo.
Ainda mais crítico, não conseguimos buscar de forma simples um determinado trecho de texto ou padrão em nossos logs, tendo que partir para funções complexas do Unix para executá-lo.
Uma simples busca por intervalo de valores de um determinado evento em arquivos de logs pode se tornar uma tarefa quase que impossível para alguém com conhecimentos intermediários em comandos do Shell.
Monitoramento de logs através da linha de comando
Para deixar mais claro como esse tipo de abordagem não é nada prática, a seguir exemplificaremos alguns comandos bastante utilizados por desenvolvedores para ler os logs de suas aplicações, expondo suas falhas e principais problemas.
O primeiro desses comandos (e talvez o mais utilizado para leitura de logs) é o chamado tail. Responsável por exibir no console apenas o fim de um arquivo, esse comando é usado para monitorar logs em tempo real e, com a ajuda do parâmetro -f, permite acompanhar os dados conforme novos conteúdos são adicionados ao log.
Seu uso, por sua vez, tem duas falhas bastante graves. A primeira é relacionada à dificuldade de acompanhar o progresso do log em um sistema muito grande, uma vez que as linhas de log serão adicionadas em alta velocidade, complicando o monitoramento tradicional realizado por uma pessoa em um ambiente produtivo.
A segunda se trata do fato de que normalmente, quando queremos ler um log, queremos somente certos trechos dele e não o log inteiro. Fazer esses filtros “manualmente” é um trabalho praticamente impossível, exigindo a ajuda de uma ferramenta ou de comandos extras no shell para minimizar esses resultados.
Um desses comandos é o grep, utilizado para filtrar os resultados de acordo com uma palavra ou expressão regular. Aliado ao tail, é possível ao usuário visualizar somente as linhas de log que interessam no momento, resolvendo parcialmente os dois problemas que citamos anteriormente.
Como exemplo de uso dos comandos tail e grep, a Figura 1 apresenta como empregá-los para ler um arquivo com algumas linhas de texto.
A junção desses comandos ajuda, porém não resolve por completo os problemas que citamos. O alto número de linhas sendo adicionadas e a dificuldade em ter uma visão de mais alto nível, em que podemos ter algo como gráfico ...
Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.