Steps to install Elasticsearch

Steps to install Elasticsearch

Table of Contents


Steps to Install External Elasticsearch 5.5.0:

Download Location for the Elastic search : 

https://www.elastic.co/downloads/past-releases/elasticsearch-5-5-0


For Windows:

  1. Download elastic search version 5.5.0 from website (https://www.elastic.co/downloads/past-releases )

  2. Download zip file 

  3. Unzip the file

  4. Go to the unzipped path → config → elasticsearch.yml file

  5. Edit the elasticsearch.yml file

  6. Start the service by running the elasticsearch.bat file from unzipped path → bin

You can also install Elasticsearch on Windows as a service. To do that:

  1. Open the command prompt as a user or admin.

  2. Navigate to the <Elasticsearch>/bin folder.

  3. Run the following command:
    elasticsearch-service.bat install

Now check your Windows services. You will see the running Elasticsearch service.

For Linux (rpm) :

  1. Download .rpm file . In linux shell command prompt run the below command to Install elastic search version 5.5.0
    sudo rpm -ivh elasticsearch-5.5.0.rpm
    sudo yum localinstall elasticsearch-5.5.0.rpm
    or 
    Download using wget command from linux shell command prompt 
    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.rpm


  2. Go to the Installation path (etc/elasticsearch) → elasticsearch.yml file

  3. Edit the elasticsearch.yml file

  4. start the service using below command
    sudo systemctl start elasticsearch.service

location of the yml

/etc/elasticsearch/elasticsearch.yml

location of the index

/var/lib/elasticsearch

Location of the bin

/usr/share/elasticsearch

Location of the Logs

/var/log/elasticsearch/

Or

/usr/share/elasticsearch/logs



For Linux Debian 

Debian
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.deb wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.deb.sha512 shasum -a 512 -c elasticsearch-5.5.0.deb.sha512 sudo dpkg -i elasticsearch-5.5.0.deb   #Start and Stop the Elastic Search sudo -i service elasticsearch start sudo -i service elasticsearch stop


Do the following changes Example Elasticsearch.yml and update the following parameters:

Elastic Search Single Node 

ZEE Server and Elastic Search is in same Server

Single node Elastic Search
cluster.name: zephyr node.name: "Node1" node.master: true node.data: true transport.tcp.port: 9300 http.port: 9200 script.inline: true script.stored: true indices.query.bool.max_clause_count: 9012

ZEE and Elastic Search in Different Server

Single node Elastic Search
cluster.name: zephyr node.name: "Node1" node.master: true node.data: true script.inline: true script.stored: true network.bind_host: 192.168.45.21 network.publish_host: 192.168.45.21 network.host: 192.168.45.21 transport.tcp.port: 9300 http.port: 9200 discovery.zen.ping.unicast.hosts: ["192.168.45.21:9300"] indices.query.bool.max_clause_count: 9012



Sample elasticsearch.yml file attached : Example Elasticsearch.yml

Changes need to do in Zephyr

  1. In Jdbc properties need to change

    #transport|node
    transport.nodes=192.168.45.21:9300, 192.168.45.22:9300

ElasticSearch Cluster

  • Elastic Search in cluster should be in Odd Number minimum node to be in elastic search cluster should be 3 node

  • Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):


cluster node Elastic Search
#ESNode 1 (192.168.11.144)   cluster.name: zephyr node.name: "ESNode1" node.master: true node.data: true network.host: 192.168.11.144 http.port: 9200 transport.tcp.port: 9300 network.bind_host: 192.168.11.144 network.publish_host : 192.168.11.144 discovery.zen.ping.unicast.hosts: ["192.168.11.144:9300","192.168.11.145:9300","192.168.11.146:9300"] discovery.zen.minimum_master_nodes: 2 script.inline: true script.stored: true indices.query.bool.max_clause_count: 9012   ------------------------------------------------------------------------------------------------------------------------------------   #ESNode 2 (192.168.11.145)   cluster.name: zephyr node.name: "ESNode2" node.master: true node.data: true network.host: 192.168.11.145 http.port: 9200 transport.tcp.port: 9300 network.bind_host: 192.168.11.145 network.publish_host : 192.168.11.145 discovery.zen.ping.unicast.hosts: ["192.168.11.144:9300","192.168.11.145:9300","192.168.11.146:9300"] discovery.zen.minimum_master_nodes: 2 script.inline: true script.stored: true indices.query.bool.max_clause_count: 9012   --------------------------------------------------------------------------------------------------------------------------------------- #ESNode 3 (192.168.11.146)   cluster.name: zephyr node.name: "ESNode3" node.master: true node.data: true network.host: 192.168.11.146 http.port: 9200 transport.tcp.port: 9300 network.bind_host: 192.168.11.146 network.publish_host : 192.168.11.146 discovery.zen.ping.unicast.hosts: ["192.168.11.144:9300","192.168.11.145:9300","192.168.11.146:9300"] discovery.zen.minimum_master_nodes: 2 script.inline: true script.stored: true indices.query.bool.max_clause_count: 9012      

NOTE : 

discovery.zen.ping.unicast.hosts should contain all the elasticsearch system's host ip and port which are in cluster.



Sample elasticsearch.yml file attached :

ESNode 1

Example ES 1

EsNode 2

Example ES 2

EsNode 3

Example ES 3



If elastic Search is in Cluster then in ZE we have to change the "number_of_shards" and "number_of_replicas"

Navigate to the ZE installation Dir 

C:\Program Files\Zephyr\tomcat\webapps\flex\WEB-INF\template\zephyr

In this file _settings.json

change the number of shards and number of replicas



{
"index" : {
"number_of_shards" : 2,
"number_of_replicas" : 1
}
}

NOTE: for single node of the Elastic search this configuration should be default 





Changes need to do in Zephyr

  1. In Jdbc properties need to change

    #transport|node
    transport.nodes=192.168.11.144:9300,192.168.11.145:9300.192.168.11.146:9300





Document Reference :

http://www.philipotoole.com/avoiding-elasticsearch-split-brain/

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery-zen.html

https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html

https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html