How to Install Elasticsearch on Ubuntu 20.04

Elasticsearch is a highly scalable open-source full-text search and analytics engine. It allows you to store, search, and analyze big volumes of data quickly and in near real time. Elasticsearch is an open source developed in Java and used by many big organizations around the world.

Install OpenJDK 8

First, update the packages index and install the OpenJDK 8 with following commands.

apt update

apt install openjdk-8-jdk


root@vps:~# apt install openjdk-8-jdk
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
    adwaita-icon-theme at-spi2-core ca-certificates-java fontconfig fontconfig-config fonts-dejavu-core

After installation check the version of the JAVA.

java -version


root@vps:~# java -version
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (build 1.8.0_265-8u265-b01-0ubuntu2~20.04-b01)
OpenJDK 64-Bit Server VM (build 25.265-b01, mixed mode)

Install Elasticsearch

Import GPG key for Elasticsearch packages.

wget -qO - | sudo apt-key add -


root@vps:~# wget -qO - | sudo apt-key add -

Next, add the Elasticsearch repository to the system by following command.

sh -c 'echo "deb stable main" > /etc/apt/sources.list.d/elastic-6.x.list'

After adding the repository to your system. Update cache and then install Elasticsearch packages on your system.

apt update 

apt install elasticsearch

After installing Elasticsearch package, Statr and enable the elasticsearch service with following command.

systemctl start elasticsearch.service

systemctl enable elasticsearch.service


root@vps:~# systemctl enable elasticsearch.service
Synchronizing state of elasticsearch.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable elasticsearch
Created symlink /etc/systemd/system/ → /lib/systemd/system/elasticsearch.service.

Configure Elasticsearch

Once the elasticsearch has been installed on your system, open the elasticsearch.yml configuration file.

vi /etc/elasticsearch/elasticsearch.yml 

Search for the line that contains, uncomment it, and change the value to

Set the network host to to listen on all interfaces and make it available publicly,

Incase you want to configure this to be private/local to your machine. You will have to set the to, so the content is not public.

Save and exit the file once modified and restart the Elasticsearch service for the changes to take effect.

systemctl restart elasticsearch

Enter it into your browser's to the server hostname or IP addressed followed by port #9200



    "name" : "rLXyMSm",
    "cluster_name" : "elasticsearch",
    "cluster_uuid" : "gzpF4C_fSzyCn6UaNOfIwA",
    "version" : {
        "number" : "6.8.13",
        "build_flavor" : "default",
        "build_type" : "deb",
        "build_hash" : "be13c69",
        "build_date" : "2020-10-16T09:09:46.555371Z",
        "build_snapshot" : false,
        "lucene_version" : "7.7.3",
        "minimum_wire_compatibility_version" : "5.6.0",
        "minimum_index_compatibility_version" : "5.0.0"
    "tagline" : "You Know, for Search"