AMP AMP

How to Install and Configure ELK Stack on Ubuntu 21.04

To Install and Configure ELK Stack on Ubuntu 21.04

Introduction:

Elasticsearch is an open-source full-text search and analytics platform. This search engine has rapidly become the most popular, being used for log analytics, full-text search, security intelligence, business intelligence, and operational intelligence.

Installation Procedure:

Step 1: Check the OS version by using the below command

root@linuxhelp:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 21.04
Release:	21.04
Codename:	hirsute

Step 2: Install the dependency Java environment packages by using the below command

root@linuxhelp:~# apt install default-jdk default-jre -y 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  libllvm11
Use 'apt autoremove' to remove it.
The following additional packages will be installed:
  ca-certificates-java default-jdk-headless default-jre-headless fonts-dejavu-extra java-common libatk-wrapper-java
  libatk-wrapper-java-jni libice-dev libpthread-stubs0-dev libsm-dev libx11-dev libxau-dev libxcb1-dev libxdmcp-dev
  libxt-dev openjdk-11-jdk openjdk-11-jdk-headless openjdk-11-jre openjdk-11-jre-headless x11proto-dev

  xorg-sgml-doctools xtrans-dev
Suggested packages:
  libice-doc libsm-doc libx11-doc libxcb-doc libxt-doc openjdk-11-demo openjdk-11-source visualvm
  fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei
The following NEW packages will be installed:
  ca-certificates-java default-jdk default-jdk-headless default-jre default-jre-headless fonts-dejavu-extra
  java-common libatk-wrapper-java libatk-wrapper-java-jni libice-dev libpthread-stubs0-dev libsm-dev libx11-dev
  libxau-dev libxcb1-dev libxdmcp-dev libxt-dev openjdk-11-jdk openjdk-11-jdk-headless openjdk-11-jre
  openjdk-11-jre-headless x11proto-dev xorg-sgml-doctools xtrans-dev
0 upgraded, 24 newly installed, 0 to remove and 0 not upgraded.
Need to get 260 MB of archives.
After this operation, 416 MB of additional disk space will be used


Get:12 http://in.archive.ubuntu.com/ubuntu hirsute/main amd64 libatk-wrapper-java all 0.38.0-2ubuntu2 [53.5 kB]       
Setting up default-jdk-headless (2:1.11-72) ...
Setting up openjdk-11-jdk:amd64 (11.0.13+8-0ubuntu1~21.04) ...
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/jconsole to provide /usr/bin/jconsole (jconsole) in a

Step 3: Check the Installed Java Version by using the below command

root@linuxhelp:~# javac -version 
javac 11.0.13

Step 4: Add the elasticsearch APT repository key by using the below command

root@linuxhelp:~# curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK

Step 5: Add the Elastic Search to the APT source List by using the below command

root@linuxhelp:~# echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list

Step 6: Update the APT source list by using the below command

root@linuxhelp:~# apt update 
Get:1 https://artifacts.elastic.co/packages/7.x/apt stable InRelease [13.7 kB]
Hit:2 http://in.archive.ubuntu.com/ubuntu hirsute InRelease                                                   
Hit:3 http://in.archive.ubuntu.com/ubuntu hirsute-updates InRelease         
Hit:4 http://in.archive.ubuntu.com/ubuntu hirsute-backports InRelease       

Get:5 https://artifacts.elastic.co/packages/7.x/apt stable/main amd64 Packages [93.4 kB]
Get:6 https://artifacts.elastic.co/packages/7.x/apt stable/main i386 Packages [70.5 kB]
Hit:7 http://security.ubuntu.com/ubuntu hirsute-security InRelease             
Fetched 177 kB in 1s (160 kB/s)                
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

Step 7: Install the Elastic Search by using the below command

root@linuxhelp:~# apt install elasticsearch -y 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  libllvm11
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
  elasticsearch
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 311 MB of archives.
After this operation, 517 MB of additional disk space will be used.
Get:1 https://artifacts.elastic.co/packages/7.x/apt stable/main amd64 elasticsearch amd64 7.17.0 [311 MB]
Fetched 311 MB in 28s (11.1 MB/s)       

Step 8: Configure the elastic search by using the below command

root@linuxhelp:~# vim /etc/elasticsearch/elasticsearch.yml 
network.host: localhost
http.port: 9200

Step 9: Configure the JVM heap memory by using the below command

root@linuxhelp:~# vim /etc/elasticsearch/jvm.options
-Xms512m
-Xmx512m

Step 10: Restart the Elastic Search by using the below command

root@linuxhelp:~# systemctl restart elasticsearch 

Step 11: Enable the Elastic Search to start on boot by using the below command

root@linuxhelp:~# systemctl enable elasticsearch 
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/multi-user.target.wants/elasticsearch.service → /lib/systemd/system/elasticsearch.service.

Step 12: Ping the Elastic Search to verify installation by using the below command

root@linuxhelp:~# curl -X GET "localhost:9200"
{
  "name" : "linuxhelp",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "k7WWxFi_Qui_1zccM37qyA",
  "version" : {
    "number" : "7.17.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "bee86328705acaa9a6daede7140defd4d9ec56bd",
    "build_date" : "2022-01-28T08:36:04.875279988Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Step 13: Install the Logstash by using the below command

root@linuxhelp:~# apt install logstash -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  libllvm11
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
  logstash

0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 367 MB of archives.
After this operation, 631 MB of additional disk space will be used.
Get:1 https://artifacts.elastic.co/packages/7.x/apt stable/main amd64 logstash amd64 1:7.17.0-1 [367 MB]
Fetched 367 MB in 32s (11.3 MB/s)                                                                                     
Selecting previously unselected package logstash.
Successfully created system startup script for Logstash

Step 14: Start the Logstash Service by using the below command

root@linuxhelp:~# systemctl start logstash 

Step 15: Enable the Logstash Service to start on boot by using the below command

root@linuxhelp:~# systemctl enable logstash 
Created symlink /etc/systemd/system/multi-user.target.wants/logstash.service → /etc/systemd/system/logstash.service.

Step 16: Check the status of the Logstash Service by using the below command

root@linuxhelp:~# systemctl status logstash 
● logstash.service - logstash
     Loaded: loaded (/etc/systemd/system/logstash.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-02-13 22:37:51 IST; 32s ago
   Main PID: 7491 (java)
      Tasks: 15 (limit: 4592)
     Memory: 368.1M
     CGroup: /system.slice/logstash.service
             └─7491 /usr/share/logstash/jdk/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyF>

Feb 13 22:37:51 linuxhelp systemd[1]: Started logstash.
Feb 13 22:37:51 linuxhelp logstash[7491]: Using bundled JDK: /usr/share/logstash/jdk
Feb 13 22:37:52 linuxhelp logstash[7491]: OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated i>

Step 17: Install the Kibana by using the below command

root@linuxhelp:~# apt install kibana -y
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
  libllvm11
Use 'apt autoremove' to remove it.
The following NEW packages will be installed:
  kibana
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 286 MB of archives.
After this operation, 769 MB of additional disk space will be used.

Step 18: Configure kibana in the following file by using the below command

root@linuxhelp:~# vim /etc/kibana/kibana.yml 
server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]

Step 19: Start the kibana Service by using the below command

root@linuxhelp:~# systemctl start kibana 

Step 20: Enable the kibana Service by using the below command

root@linuxhelp:~# systemctl enable kibana 
Synchronizing state of kibana.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable kibana
Created symlink /etc/systemd/system/multi-user.target.wants/kibana.service → /etc/systemd/system/kibana.service.

Step 21: Check the status of the kibana service by using the below command

root@linuxhelp:~# systemctl status kibana 
● kibana.service - Kibana
     Loaded: loaded (/etc/systemd/system/kibana.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-02-13 22:41:08 IST; 27s ago
       Docs: https://www.elastic.co
   Main PID: 7972 (node)
      Tasks: 11 (limit: 4592)
     Memory: 205.3M
     CGroup: /system.slice/kibana.service
             └─7972 /usr/share/kibana/bin/../node/bin/node /usr/share/kibana/bin/../src/cli/dist --logging.dest=/var/l>

Feb 13 22:41:08 linuxhelp systemd[1]: Started Kibana.

Step 22: Ping the http://localhost:9200 in browser to view the Dashboard of the kibana as show in the below image

By this, to Install and Configure ELK Stack on Ubuntu 21.04 have been completed.

FAQ
Q
What is the port number of Elastic Search?
A
The port number of Elastic Search is 9200.
Q
How to add Elastic Search repo to the APT Source list?
A
To add the Elastic Search repo to the APT Source list use command.
Q
How to add Elastic search repo key to APT?
A
To add Elastic search repo key to APT by using command.
Q
What is Kibana?
A
Kibana is a free and open user interface that lets you visualize your Elasticsearch data and navigate the Elastic Stack.
Q
What is Logstash?
A
Logstash is a server‑side data processing pipeline that ingests data from several sources simultaneously, transforms it, and then sends it to a "stash" like Elasticsearch