Primeiro cluster Elasticsearch

Gerson Neto
Data Hackers
Published in
4 min readJan 7, 2021

Dando continuidade a série sobre o Elastic stack, neste post irei mostrar os passos de configuração de um cluster.

Atenção! Para realizar os passos é necessário que você já tenha feito a instalação do elasticsearch previamente. Caso não tenha feito e precise de um auxilio, nesse post demonstro a instalação do elastic stack.

Por que devo fazer um cluster do elasticsearch?

Bem, quando você inicia uma instância do Elasticsearch, você está iniciando um node que possui todos os dados armazenado nele, caso ocorra alguma indisponibilidade deste node, você ficará impedido de acessar as informações, ou seja, não possui uma réplica dos dados em outro lugar.

Exemplo de node único com todos os dados — Fonte

O cluster será um grupo de nodes que distribuirá a carga de dados. Desta forma, a criação de um cluster tem vários benefícios, dentre eles, um balanceamento de carga dos index, criando as réplicas shards e distribuindo entre os nodes. Com isso, melhoramos a performance do Elasticsearch, além da autonomia que você poderá oferecer aos documentos que estão sendo armazenados e analisados pelo elasticsearch.

Cluster com 3 nodes, fazendo o balanceamento dos primary e replica shards — Fonte

Agora que você sabe brevemente, vamos aos passos?

Configuração no Node-1 (master)

  • Acesse o arquivo de configuração em /etc/elasticsearch/elasticsearch.yml
  • Edite as propriedades : cluster.name e node.nane
Edição das propriedades: cluster.name e node.name

Como o próprio nome da propriedade sugere, no cluster.name iremos definir o nome do nosso cluster. Isso ajudará, caso você queira separar os servidores por ambientes, exemplo: homologação, teste, desenvolvimento, ou até mesmo cluster de produção. Desta forma, só os nodes que possuírem o mesmo nome irá se juntar ao cluster definido.

  • Edite também as propriedades: network.host e http.port
Edição das propriedades: network.host e http.port

Essa configuração de network irá permitir o acesso via browser no nosso cluster, por isso devemos colocar o IP (da sua máquina) e a porta de acesso: 9200 (porta padrão de comunicação com o elasticsearch).

Por fim, edite as seguintes propriedades em todos os nodes do cluster:

Edição das propriedades de discovery e cluster

Nessas propriedades que foram definidas acima, estamos afirmando que o node-1 estará habilitado para ser o master, assim que o serviço do elasticsearch for iniciado, ou seja, todos os nodes que tiverem essa configuração no elasticsearch.yml saberá que o node-1 é o elegível a ser o master.

Salve o arquivo!

Configuração do node-2

  • Acesse o arquivo de configuração em /etc/elasticsearch/elasticsearch.yml
  • Edite as propriedades : cluster.name e node.nane
Edição das propriedades: cluster.name e node.name

IMPORTANTE!: A propriedade cluster.name é essencial para que os outros nós possam se juntar ao cluster. Deste modo, certifique-se que o mesmo nome encontra-se configurado em todos os nodes do cluster. No nosso exemplo o nome do cluster é first_cluster

  • Edite as propriedades: network.host e http.port
Edição das propriedades: network.host e http.port

Não esqueça de configurar a parte referente ao Discovery, conforme foi demonstrado no node-1 que é comum para todos os nodes.

Salve o arquivo!

Configuração do node-3

  • Acesse o arquivo de configuração em /etc/elasticsearch/elasticsearch.yml
  • Edite as propriedades : cluster.name e node.nane
Edição das propriedades: cluster.name e node.name
  • Edite as propriedades: network.host e http.port
Edição das propriedades: network.host e http.port

Não esqueça de configurar a parte referente ao Discovery, conforme foi demonstrado no node-1 que é comum para todos os nodes.

Salve o arquivo!

Após configuração de todos os nodes do cluster, restart o serviço do elasticsearch e confirme se os 3 nodes foram configurados corretamente digitando no browser: http://{SEU_IP}/_cluster/health?pretty

Resultado esperado

Observe que no resultado ele informa status: “green”, ou seja, agora temos os primary e replicas shards balanceados em nosso cluster! Bem como a quantidade de data nodes= 3.

Um outro teste que pode ser realizado é verificando a quantidade de nodes. Acesse via browser: http://{SEU_IP}/_cat/nodes

Resultado esperado

No resultado podemos observar um * (asterisco) no node-1, isso demonstra que ele é o node master deste cluster.

Bem, pessoal espero que vocês possam usufruir deste recurso e que seu uso com o elasticsearch fique cada vez mais performático. Caso tenham alguma dificuldade nessas configurações, podem me contatar ou interagir na comunidade oficial da Elastic.

Pronto! Instalação realizada com sucesso ;)

--

--

Gerson Neto
Data Hackers

Amante de tecnologia e inovação, acredito que a tecnologia e a educação pode ser um meio para transformação digital, unindo pessoas para um mundo melhor.