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
- Entender os comando do Docker CLI, conforme o link: https://docs.docker.com/engine/reference/commandline/cli
- 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
[…] Mais informações sobre Elasticsearch você encontra aqui e aqui. […]