Configurando o Elasticsearch e Kibana no Docker

No primeiro artigo dessa saga falamos um pouco sobre a criação de uma conta no Elastic Cloud e configuração da solução de exemplo no .NET Core 3.1, neste artigo abordaremos a instalação e configuração das imagens docker do Elasticsearch e Kibana. Esses dois em conjunto com o Logstash e Beats são conhecidos como BELK Stack.

O Elastic Stack possui quatro componentes principais:

  • Elasticsearch: Mecanismo de pesquisa RESTful distribuído que armazena todos os dados coletados.
  • Logstash: Componente de processamento de dados do Elastic Stack que recebe, transforma e envia dados para o Elasticsearch.
  • Kibana: Interface web para pesquisa, criação e visualização de gráficos e dashboards.
  • Beats: Plugs de dados leves e de propósito único que podem enviar dados de centenas ou milhares de máquinas para o Logstash ou para o Elasticsearch.

Neste artigo abordaremos a configuração apenas das imagens do Elasticsearch e Kibana no Docker.

Pré-requisitos

  1. Entender os comando do Docker CLI, conforme o link: https://docs.docker.com/engine/reference/commandline/cli
  2. Ter o Docker instalado. Você pode seguir o passo a passo nesse link: https://docs.docker.com/docker-for-windows/install

Abaixo, segue uma lista compilada com os principais comandos do docker e sua descrição:

Com o docker instalado e iniciado, faremos o pull das imagens do Elasticsearch e Kibana. Neste exemplo utilizaremos a versão 7.7.0. Você também pode conferir as imagens atuais no link: https://www.docker.elastic.co

Com as imagens baixadas, agora é hora que iniciar cada uma, primeiro o Elasticsearch:

Em seguida, é preciso executar o comando docker ps para listar o container em que o Elasticsearch está em execução. Será preciso copiar o container ID do elastic para configurarmos o link, conforme comando abaixo:

Com as duas imagens iniciadas, é hora conferir. Primeiro o Elasticsearch acessando o link http://localhost:9200

E agora, conferindo o Kibana acessando o link http://localhost:5601

Pronto, tudo certo!

Uma outra forma de subir as aplicações no docker é utilizando o Docker Compose, que é uma ferramenta para definir e executar aplicações complexas com docker, possibilitando o gerenciamento da sua aplicação como uma única entidade ao invés de trabalhar com containers individuais.

Com o compose, você define uma aplicação multi-container em um único arquivo YAML, dentro deste arquivo cada container é definido como um serviço e então usando um simples comando você inicia todos os serviços em um host.

image — Existem várias imagens do Docker no Elasticsearch, mas as mantidas pelo elastic.co são as melhores

ports — Para o Elasticsearch, a configuração mapeará a porta 9200 do seu contêiner para a porta 9200 do host. No Kibana, a configuração mapeará a porta 5601 do contêiner para a porta 5601 do host.

environment — Existem três variáveis de ambiente:

  • discovery.type — Para informar que será executado em apenas um nó
  • ES_JAVA_OPTS — Definimos o tamanho mínimo e máximo do heap para que o Elasticsearch tenha memória suficiente para executar, leia mais aqui.
  • xpack.monitoring.enable — Habilitamos o monitoramento X-Pack para verificação e comportamento do Elasticsearch.

Para testar, basta salvar o código acima em um arquivo com o nome docker-compose.yml e executar o comando:

O exemplo de utilização do Elasticsearch e Kibana com o docker compose na aplicação .NET Core 3.1 você confere no link: https://github.com/hgmauri/elasticsearch-with-nest

1 Comment

  1. […] Mais informações sobre Elasticsearch você encontra aqui e aqui. […]

Leave a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *