Primeiro cluster Elasticsearch
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.
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.
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
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
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:
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
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
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
- Edite as 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
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
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 ;)