Docker: Node.js + Elastic Stack — Elasticsearch e Kibana

Raviel Chausse
4 min readOct 6, 2021
docker-nodejs-elastic

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:

dockerfile
docker-compose.yml

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:

package.json

Agora vamos criar o arquivo index.js:

index.js

A estrutura do projeto deverá ficar da seguinte forma:

VSCode

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
cmd

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:

GET: http://localhost:3000?tester=testing
POST: http://localhost:3000/test

Visualizando os dados no Kibana

Para acessar o Kibana, vamos utilizar o link que configuramos e veremos a página inicial:

kibana home page

Clicando em Kibana com o fundo azul, vamos ver a seguinte página:

kibana overview

Vamos clicar em “Add your data” e veremos a próxima página:

kibana index patterns

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:

create index pattern

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”:

define an index pattern

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:

inbound_request

Para visualizar os dados, vamos clicar no ícone do menu lateral e vamos escolher a opção “Discover”:

menu -> 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:

discover -> inbound_request

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!

GitHub

github.com/rchaussetech/docker-nodejs-elastic

--

--