Docker: Node.js + Elastic Stack — Elasticsearch e Kibana
Bom dia / boa tarde / boa noite
O que é Elastic Stack?
Elastic Stack é um conjunto de produtos também conhecidos como ELK Stack, todos são gratuitos e abertos. São eles: Elasticsearch, Kibana, Beats e Logstash. São utilizados para obter dados de maneira confiável e segura de qualquer fonte, em qualquer formato. Depois fazer buscas, análises e visualizações desses dados em tempo real.
Nesse passo a passo vamos aprender a utilizar o Kibana para visualizar os dados armazenados no Elasticsearch. Esse artigo tem como objetivo mostrar uma das diversas maneiras de fazer essa visualização, sempre de uma maneira muito simples.
Kibana é uma aplicação gratuita e aberta de front-end que trabalha com o Elastic Stack, fornecendo recursos de busca e visualização de dados indexados no Elasticsearch.
Elasticsearch é um mecanismo de análise de dados e busca RESTful distribuído, capaz de atender a um número crescente de casos de uso.
Construindo o projeto
Para começar vamos criar um novo diretório docker-nodejs-elastic, criar o dockerfile e o docker-compose.yml como abaixo:
No novo diretório, vamos criar uma pasta “src”, vamos abrir o terminal, criar a nossa aplicação NodeJs e instalar as dependências. Para isso, vamos utilizar os comandos:
npm init -y
npm i -S elasticsearch express cors morgan
npm i -D nodemon
Após criar o projeto e instalar as dependências dentro da pasta “src”, vamos editar o arquivo package.json para adicionar o comando “start” e alterar o name, description e author:
Agora vamos criar o arquivo index.js:
A estrutura do projeto deverá ficar da seguinte forma:
Provisionando o docker
Para criar as imagens e provisionar os containers, vamos abrir o terminal no mesmo diretório dos arquivos docker* e vamos rodar o comando:
docker-compose up -d --build
Testando a API do NodeJs
Para testar a API do NodeJs, nos vamos utilizar o Postman e as duas rotas de testes, uma GET e uma POST, que criamos no index.js:
Visualizando os dados no Kibana
Para acessar o Kibana, vamos utilizar o link que configuramos e veremos a página inicial:
Clicando em Kibana com o fundo azul, vamos ver a seguinte página:
Vamos clicar em “Add your data” e veremos a próxima página:
Clicando em “Create index pattern” vamos ver a página de criação de index, se tudo estiver funcionando corretamente, você verá os dois indexes que já criamos no Elasticsearch, com as requests que fizemos:
Copiando o index “inbound_request” e colando no input “Index pattern name” você verá que o Kibana já identificou que existem dados com esse index e poderá clicar em “Next step”:
Na próxima etapa, vamos clicar em “Create index pattern” para concluir a criação do nosso primeiro index. Na próxima tela, vamos visualizar as configurações do index que acabamos de criar:
Para visualizar os dados, vamos clicar no ícone do menu lateral e vamos escolher a opção “Discover”:
Tudo pronto, nessa tela é possível pesquisar e visualizar os dados do index que acabamos de criar. Após criar novos indexes, é possível escolher qual o index será utilizado e fazer as buscas diretamente nessa tela:
Esta é apenas uma das diversas maneiras que existem para gerenciar e visualizar os dados no Kibana. Outra parte muito interessante são as métricas e dashboards, mas este passo a passo fica por aqui.
Espero que tenham gostado, vlw e até a próxima!