Install Elasticsearch on CentOS and RHEL

Pradeep Pandey
Feb 9, 2019 · 3 min read

Elasticsearch is one of the most popular and flexible platform for distributed and analysis of data in real time. It has very powerful APIs available which provides so much flexibility in the search. Its popularity is due to its ease of use, powerful features, and scalability.

Step 1: Install and verify Java

You can install the latest OpenJDK with below command:

[root@elastic-search ~]# yum install java-1.8.0-openjdk.x86_64

Verify Java:

[root@elastic-search ~]# java -version 
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

Step 2: Downloading and Installing Elasticsearch

Download the rpm from the official Elasticsearch website from CentOs or RHEL

[root@elastic-search opt]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.rpm
--2019-02-07 07:44:09-- https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.rpm
Resolving artifacts.elastic.co (artifacts.elastic.co)... 151.101.2.222, 151.101.66.222, 151.101.130.222, ...
Connecting to artifacts.elastic.co (artifacts.elastic.co)|151.101.2.222|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 91384332 (87M) [application/octet-stream]
Saving to: ‘elasticsearch-6.3.0.rpm’
100%[====================================================================================================>] 91,384,332 70.6MB/s in 1.2s 2019-02-07 07:44:12 (70.6 MB/s) - ‘elasticsearch-6.3.0.rpm’ saved [91384332/91384332]

Install the elasticsearch rpm like below:

[root@elastic-search opt]# yum localinstall elasticsearch-6.3.0.rpm
Loaded plugins: fastestmirror
Examining elasticsearch-6.3.0.rpm: elasticsearch-6.3.0-1.noarch
Marking elasticsearch-6.3.0.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package elasticsearch.noarch 0:6.3.0-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved==============================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================
Installing:
elasticsearch noarch 6.3.0-1 /elasticsearch-6.3.0 136 M
Transaction Summary
==============================================================================================================================================
Install 1 Package
Total size: 136 M
Installed size: 136 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Creating elasticsearch group... OK
Creating elasticsearch user... OK
Installing : elasticsearch-6.3.0-1.noarch 1/1
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
sudo systemctl start elasticsearch.service
Created elasticsearch keystore in /etc/elasticsearch
Verifying : elasticsearch-6.3.0-1.noarch 1/1
Installed:
elasticsearch.noarch 0:6.3.0-1
Complete!

Enable elasticsearch service on startup so it will start automatically on the desired run level.

[root@elastic-search opt]# sudo systemctl daemon-reload
[root@elastic-search opt]# sudo systemctl enable elasticsearch.service
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.

Step 3: Configuring Elasticsearch

elasticsearch.yml : Elasticsearch server settings. This is where all options, except those for logging, are stored, which is why we are mostly interested in this file.

logging.yml: Provides configuration for logging. In the beginning, you don’t have to edit this file. You can leave all default logging options. You can find the resulting logs in /var/log/elasticsearch by default.

Edit /etc/elasticsearch/elasticsearch.yml to configure Elasticsearch settings

# Use a descriptive name for the node:
node.name: node-1
# Use a descriptive name for your cluster:
cluster.name: elastic-cluster

Use network.host for configuring your server IP bind address

# Set the bind address to a specific IP (IPv4 or IPv6):
network.host: 10.142.0.17

Start Elasticsearch cluster through systemctl

[root@elastic-search opt]# systemctl start elasticsearch

Step 4: Test Elasticsearch cluster

Elasticsearch will be run on port 9200. We can test it with curl, with a simple GET request

[root@elastic-search opt]# curl -X GET http://10.142.0.17:9200
{
"name" : "node-1",
"cluster_name" : "elastic-cluster",
"cluster_uuid" : "_na_",
"version" : {
"number" : "6.3.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "424e937",
"build_date" : "2018-06-11T23:38:03.357887Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}

(This article originally appeared on SysHunt.com)

If you found this article helpful, you may also like Install Kibana on CentOS and RHEL

Pradeep Pandey

Written by

Certified Kubernetes Administrator (CKA), CKAD, Google Cloud Certified Architect, Certified OpenStack Administrator (COA), RHCSA, RHCE, B.Tech, PG Diploma in IT

More From Medium

Also tagged Elasticsearch

Also tagged Elasticsearch

An Introduction to Elasticsearch

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade