Setup high availability env using elasticsearch cluster


(Newbie111985) #1

I want to setup an elasticsearch cluster consisting of 3 nodes. Each node is master eligible and can contain the data. I also need to achieve high availability with this elastic search cluster. Hence would like to know which load balancer should be used and what are the configurations required?
Thanks in advance.


(Mark Walkom) #2

Depends, we don't really suggest particular things. Pick something you like and use it! :slight_smile:


(Newbie111985) #3

I really don't know hot to setup HA env suing elasticsearch. Can you point me to any link or documentation which describes how to do this?


(Mark Walkom) #4

Have a read of https://www.elastic.co/guide/en/elasticsearch/guide/current/deploy.html


(Newbie111985) #5

Thanks. I have gone through this documentation. But it does not talk about how to deploy ES in high availability configuration. Basically, my requirement is as follows:
I have a ES cluster with 3 nodes i.e., node1, node2 and node3.
All nodes are master eligible and can contains data (shards).
Currently, in my application I am using node1's IP to communicate with ES. Hence if node1 goes down, my application cannot communicate to ES even though node2 and node3 is running (because my app communicates using node1 IP). How to solve this problem?


#6

I see two solutions

  1. You make your application a bit "smarter" so you can give it an array of ES nodes like you can do for Logstash or Filebeat https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html#plugins-outputs-elasticsearch-hosts
  2. Use your own loadbalancer in front of ES. What OS are you running?

Cheers,
AB


(Newbie111985) #7

Thanks for your reply.
I am using Oracle Enterprise Linux 6, 64-bit.
I need to create a connection to ES before using it in my application. Currently, I specify node1's host:port as I mentioned earlier. But if node1 goes down, my application cannot query from ES. How can I solve this?


#8

Is it only read access you need or do you write to ES as well?

Possible solutions would be haproxy, keepalived or even just a nginx vhost with several upstreams.


(weibin.wu) #9

Install keepalive in all ur node and generste a virtual ip. Then ur query should go to the virtual ip


(system) #10

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.