Logo

Este conteúdo é gratuito. Foi preparado como esboço para uma aula do Experts Club, da Rocketseat.

Se tudo estiver certo, você consegue a versão atualizada desse e-book nos links:

1. ElasticSearch: Configurando ambiente

Será criada uma infraestrutura bem simples apenas para servir ao propósito da aula.

1.1. Criando o servidor

Vou começar criando uma Máquina Virtual (VM). Vou usar o Microsoft Azure como serviço de nuvem. Para mim é sempre mais fácil partir de uma imagem Linux Ubuntu.

azure create vm

Como qualquer banco de dados, o ElasticSearch consome armazenamento e memória. A memória é especialmente necessária ao realizar consultas e seu consumo é maior conforme mais dados em disco são gravados.

Mas para o propósito dessa aula pouca coisa é necessária. O motivo de eu escolher uma VM com 16GB de memória e 4 CPUs é porque 1) ela será temporária e 2) ao instalar as aplicações as coisas andam mais rápido.

azure create vm ubuntu

Então, simplesmente defini esses parâmetros e cliquei avançar até concluir.

Depois de criada a VM, precisamos acessá-la no painel do Azure para poder abrir as portas de rede (firewall) que vão permitir as conexões de entrada. As portas permitidas foram 9200 e 5601, que respectivamente são do Elasticsearch (o banco de dados) e Kibana (a interface web de visualização dos dados).

azure vm firewall

Como já disse, por ser uma VM temporária eu não fiz questão de levar em conta nenhuma boa prática de segurança ou seja lá o que for. Eu só quero um servidor Elasticsearch.

1.2. Configurando o servidor

Após a criação da VM executei os seguintes comandos para obter um ambiente do ElasticSearch e Kibana.

# Conectando na VM conforme o IP que o Azure atribuiu.
# Usando o usuario e senha que escolhi.
ssh adminer@20.206.112.142

# Faz download da lista aplicacoes disponiveis para instalacao.
sudo apt update

# Instala o docker.
sudo apt install docker.io -y

1.3. Instalando Elasticsearch e Kibana via Docker

No site oficial do Elasticsearch, em elastic.co, opção de menu "Learn" e, então, "Docs", você acha os tutoriais de instalação.

elastic docs

Seguindo o tutorial para instalar via Docker, em "Set up Elasticsearch", "Installing Elasticsearch" e "Install Elasticsearch with Docker". E consultando também o tutorial para definir senha de autenticação em "Secure the Elastic Stack", "Configuring security" e "Set up minimal security"…​

elastic docs install elasticsearch docker

Os comandos necessários são:

# Cria uma rede que sera usada para o Kibana se comunicar com o Elasticsearch.
sudo docker network create elastic-network

# Executar uma imagem:         sudo docker run
# Em segundo plano:            -d
# Nome do container:           --name elasticsearch
# Nome da rede:                --net elastic-network
# Sempre reinicia o container: --restart=always
# Servidor unico:              -e "discovery.type=single-node"
# Habilita autenticacao:       -e "xpack.security.enabled=true"
# Define a senha tipo admin    -e "ELASTIC_PASSWORD=my_password_for_elastic"
# Porta para dados via API:    -p 9200:9200
# Porta para dados binarios:   -p 9300:9300
# Imagem Docker:               docker.elastic.co/elasticsearch/elasticsearch:7.16.2
#
sudo docker run -d --name elasticsearch --net elastic-network --restart=always -e "discovery.type=single-node" -e "xpack.security.enabled=true" -e "ELASTIC_PASSWORD=my_password_for_elastic" -p 9200:9200 -p 9300:9300 docker.elastic.co/elasticsearch/elasticsearch:7.16.2

# Executar uma imagem:         sudo docker run
# Em segundo plano:            -d
# Nome do container:           --name kibana
# Nome da rede:                --net elastic-network
# Sempre reinicia o container: --restart=always
# Endereco do servidor         -e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200"
# Nome do usuario              -e "ELASTICSEARCH_USERNAME=elastic"
# Senha do usuario             -e "ELASTICSEARCH_PASSWORD=my_password_for_elastic"
# Porta para dados via API:    -p 5601:5601
# Imagem Docker:               docker.elastic.co/kibana/kibana:7.16.2
#
sudo docker run -d --name kibana --net elastic-network --restart=always -e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" -e "ELASTICSEARCH_USERNAME=elastic" -e "ELASTICSEARCH_PASSWORD=my_password_for_elastic" -p 5601:5601 docker.elastic.co/kibana/kibana:7.16.2

Tendo por saída no terminal: