How to install OpenSearch on Linux 9

Share on Social Media

In this Linux tutorial, you will learn how to install OpenSearch on Linux 9 or other Red Hat based Linux distributions. #centlinux #linux #opensearch

OpenSearch is a collection of technologies that allow for the integration of search functionality into web-based applications. It was created by Amazon in 2005 and has since become an open standard with contributions from various organizations. OpenSearch provides a standard format for representing search results, as well as a protocol for requesting and receiving search results.

OpenSearch is commonly used in web browsers and search engines, where it allows users to add custom search engines to their browser’s search bar. OpenSearch is also used in enterprise search systems, content management systems, and other applications where search functionality is important.

In addition to the OpenSearch format and protocol, there are also several related technologies that have been developed, including OpenSearch Description documents, which provide information about the search engine’s capabilities and behavior, and OpenSearch Query Syntax, which defines a standard syntax for search queries.

Video to install OpenSearch on Linux:

YouTube player

Environment Specification:

We are using a minimal Rocky Linux 9 virtual machine with following specifications.

  • CPU – 3.4 Ghz (2 cores)
  • Memory – 4 GB
  • Storage – 20 GB
  • Operating System – Rocky Linux release 9.1 (Blue Onyx)
  • Hostname – opensearch-01.centlinux.com
  • IP Address – 192.168.116.128/24

Prepare your Linux Server:

Connect with your Linux server as root user, by using a ssh client.

Set a hostname and configure Local DNS Resolution for your Linux machine.

# hostnamectl set-hostname opensearch-01.centlinux.com
# echo "192.168.116.128 opensearch-01 opensearch-01.centlinux.com" >> /etc/hosts

Execute dnf command to update your Linux operating system.

# dnf update -y

Reboot your operating system, if the above command updates your Linux Kernel.

# reboot

Note down the Linux operating system and Kernel versions, that are being used in this tutorial.

# cat /etc/rocky-release
Rocky Linux release 9.1 (Blue Onyx)

# uname -r
5.14.0-162.23.1.el9_1.x86_64

To improve the performance of OpenSearch software, you need to disable the Linux swap memory.

Execute the following Linux commands to permanently disable swap memory.

# sed -i '/ swap / s/^(.*)$/#1/g' /etc/fstab
# swapoff -a

Check the status of swap memory.

# free -m
               total        used        free      shared  buff/cache   available
Mem:            3627         508        3089           8         254        3118
Swap:              0           0           0

Increase the value of Linux Kernel parameter: max_map_count

max_map_count is a Linux kernel parameter that defines the maximum count of mapped memory regions allowed in the system.

Check the current value of max_map_count parameter.

# sysctl -a | grep max_map_count
vm.max_map_count = 65530

Execute following commands at Linux terminal to set max_map_count parameter and then reload the Linux Kernel parameters.

# echo "vm.max_map_count=262144" >> /etc/sysctl.d/99-vm.conf
# sysctl --system

Now, check the current value of max_map_count parameter again.

# sysctl -a | grep max_map_count
vm.max_map_count = 262144

You will need wget command to download files from Internet. Therefore, install it now.

# dnf install -y wget

Install OpenSearch on Linux:

OpenSearch software is available to download from their official website and through official yum repository.

Here, we are planning to install OpenSearch on Linux via yum repository.

Therefore, download and install OpenSearch yum repository by using wget command.

# wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -P /etc/yum.repos.d/
--2023-04-20 19:45:42--  https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo
Resolving artifacts.opensearch.org (artifacts.opensearch.org)... 18.64.141.2, 18.64.141.54, 18.64.141.78, ...
Connecting to artifacts.opensearch.org (artifacts.opensearch.org)|18.64.141.2|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 242 [binary/octet-stream]
Saving to: ‘/etc/yum.repos.d/opensearch-2.x.repo’

opensearch-2.x.repo 100%[===================>]     242  --.-KB/s    in 0s

2023-04-20 19:45:44 (1.66 MB/s) - ‘/etc/yum.repos.d/opensearch-2.x.repo’ saved [242/242]

Refresh yum cache by using dnf command.

# dnf makecache
OpenSearch 2.x                                  328  B/s | 498  B     00:01
OpenSearch 2.x                                  6.9 kB/s | 3.1 kB     00:00
Importing GPG key 0x9310D3FC:
 Userid     : "OpenSearch project <opensearch@amazon.com>"
 Fingerprint: C5B7 4989 65EF D1C2 924B A9D5 39D3 1987 9310 D3FC
 From       : https://artifacts.opensearch.org/publickeys/opensearch.pgp
Is this ok [y/N]: y
OpenSearch 2.x                                   92 kB/s | 171 kB     00:01
Rocky Linux 9 - BaseOS                          1.0 kB/s | 4.1 kB     00:03
Rocky Linux 9 - AppStream                       2.0 kB/s | 4.5 kB     00:02
Rocky Linux 9 - Extras                          578  B/s | 2.9 kB     00:05
Metadata cache created.

Get information about opensearch software packages.

# dnf info opensearch
Last metadata expiration check: 0:00:24 ago on Thu 20 Apr 2023 07:46:24 PM PKT.
Available Packages
Name         : opensearch
Version      : 2.6.0
Release      : 1
Architecture : aarch64
Size         : 672 M
Source       : opensearch-2.6.0-1.src.rpm
Repository   : opensearch-2.x
Summary      : An open source distributed and RESTful search engine
URL          : https://opensearch.org/
License      : Apache-2.0
Description  : OpenSearch makes it easy to ingest, search, visualize, and
             : analyze your data For more information, see:
             : https://opensearch.org/

Name         : opensearch
Version      : 2.6.0
Release      : 1
Architecture : x86_64
Size         : 675 M
Source       : opensearch-2.6.0-1.src.rpm
Repository   : opensearch-2.x
Summary      : An open source distributed and RESTful search engine
URL          : https://opensearch.org/
License      : Apache-2.0
Description  : OpenSearch makes it easy to ingest, search, visualize, and
             : analyze your data For more information, see:
             : https://opensearch.org/

You can see that, there are two packages of opensearch software i.e. one for x86 (32-bit) and other for x64 (64-bit) platforms.

Open Search GPG Key uses SHA1 hashing algorithm.

But, SHA1 has been deprecated in Red Hat Enterprise Linux 9 and RHEL 9 forks in favor of more secure hashing algorithms.

So, you will encounter some error messages, when trying to install OpenSearch on Linux 9.

Although, the default policy does not accept SHA1, but you can still workaround this issue by temporarily enabling the SHA1 support and after installing OpenSearch you can revert back to default hashing algorithm.

# update-crypto-policies --set DEFAULT:SHA1
# dnf install -y opensearch
# update-crypto-policies --set DEFAULT

Enable and start OpenSearch service.

# systemctl enable --now opensearch
Created symlink /etc/systemd/system/multi-user.target.wants/opensearch.service → /usr/lib/systemd/system/opensearch.service.

Check the status of OpenSearch service for any possible issues.

# systemctl status opensearch
● opensearch.service - OpenSearch
     Loaded: loaded (/usr/lib/systemd/system/opensearch.service; enabled; vendo>
     Active: active (running) since Fri 2023-04-21 17:03:49 PKT; 40s ago
       Docs: https://opensearch.org/
   Main PID: 4952 (java)
      Tasks: 70 (limit: 22962)
     Memory: 1.2G
        CPU: 1min 51.298s
     CGroup: /system.slice/opensearch.service
             └─4952 /usr/share/opensearch/jdk/bin/java -Xshare:auto -Dopensearc>

Apr 21 17:02:56 opensearch-01.centlinux-com.preview-domain.com systemd[1]: Starting OpenSearch...
Apr 21 17:03:10 opensearch-01.centlinux-com.preview-domain.com systemd-entrypoint[4952]: WARNING: >
Apr 21 17:03:10 opensearch-01.centlinux-com.preview-domain.com systemd-entrypoint[4952]: WARNING: >
Apr 21 17:03:49 opensearch-01.centlinux-com.preview-domain.com systemd[1]: Started OpenSearch.

OpenSearch service is running fine.

Now, edit OpenSearch configuration file by using vim text editor.

# vi /etc/opensearch/opensearch.yml

Locate and set following directives in this file.

network.host: 192.168.116.128
discovery.type: single-node
plugins.security.disabled: false

Edit JVM (Java Virtual Machine) options by using vim text editor.

# vi /etc/opensearch/jvm.options

Find and set following directives therein.

-Xms2g
-Xmx2g

Restart OpenSearch service to load new configurations.

# systemctl restart opensearch

OpenSearch service runs at default port 9200/tcp. Therefore, you need to allow it in your Linux Firewall to make your service accessible across the network.

# firewall-cmd --permanent --add-port=9200/tcp
success
# firewall-cmd --reload
success

Verify OpenSearch service by sending request to the server to confirm that OpenSearch is running. Note the use of –insecure flag, which is required because the TLS certificates are self-signed.

# curl -X GET https://opensearch-01:9200 -u 'admin:admin' --insecure
{
  "name" : "opensearch-01.centlinux-com.preview-domain.com",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "xUAVHO7mQ5KBsdXnuXEi6w",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.6.0",
    "build_type" : "rpm",
    "build_hash" : "7203a5af21a8a009aece1474446b437a3c674db6",
    "build_date" : "2023-02-24T18:57:09.290618503Z",
    "build_snapshot" : false,
    "lucene_version" : "9.5.0",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

Similarly, query the plugins endpoint.

# curl -X GET https://opensearch-01:9200/_cat/plugins?v -u 'admin:admin' --insecure
name                        component                            version
opensearch-01.centlinux.com opensearch-alerting                  2.6.0.0
opensearch-01.centlinux.com opensearch-anomaly-detection         2.6.0.0
opensearch-01.centlinux.com opensearch-asynchronous-search       2.6.0.0
opensearch-01.centlinux.com opensearch-cross-cluster-replication 2.6.0.0
opensearch-01.centlinux.com opensearch-geospatial                2.6.0.0
opensearch-01.centlinux.com opensearch-index-management          2.6.0.0
opensearch-01.centlinux.com opensearch-job-scheduler             2.6.0.0
opensearch-01.centlinux.com opensearch-knn                       2.6.0.0
opensearch-01.centlinux.com opensearch-ml                        2.6.0.0
opensearch-01.centlinux.com opensearch-neural-search             2.6.0.0
opensearch-01.centlinux.com opensearch-notifications             2.6.0.0
opensearch-01.centlinux.com opensearch-notifications-core        2.6.0.0
opensearch-01.centlinux.com opensearch-observability             2.6.0.0
opensearch-01.centlinux.com opensearch-performance-analyzer      2.6.0.0
opensearch-01.centlinux.com opensearch-reports-scheduler         2.6.0.0
opensearch-01.centlinux.com opensearch-security                  2.6.0.0
opensearch-01.centlinux.com opensearch-security-analytics        2.6.0.0
opensearch-01.centlinux.com opensearch-sql

Install OpenSearch Dashboards:

OpenSearch Dashboards is the default visualization tool for data in OpenSearch. It also serves as a user interface for many of the OpenSearch plugins, including security, alerting, Index State Management, SQL, and more.

OpenSearch Dashboards software is available via official yum repository. You can download and install this yum repository by executing following command at Linux terminal.

# wget https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/opensearch-dashboards-2.x.repo -P /etc/yum.repos.d/

Build cache for newly installed yum repositories.

# dnf makecache
OpenSearch 2.x                                  337  B/s | 498  B     00:01
OpenSearch Dashboards 2.x                       354  B/s | 498  B     00:01
OpenSearch Dashboards 2.x                       3.6 kB/s | 3.1 kB     00:00
Importing GPG key 0x9310D3FC:
 Userid     : "OpenSearch project <opensearch@amazon.com>"
 Fingerprint: C5B7 4989 65EF D1C2 924B A9D5 39D3 1987 9310 D3FC
 From       : https://artifacts.opensearch.org/publickeys/opensearch.pgp
Is this ok [y/N]: y
OpenSearch Dashboards 2.x                       941 kB/s | 9.7 MB     00:10
Rocky Linux 9 - BaseOS                          471  B/s | 4.1 kB     00:08
Rocky Linux 9 - AppStream                       1.2 kB/s | 4.5 kB     00:03
Rocky Linux 9 - Extras                          1.2 kB/s | 2.9 kB     00:02
Metadata cache created.

Install OpenSearch Dashboards by using dnf command. You will encounter the SHA1 algorithm error again. But you can workaround this error by setting default policy to SHA1 and then revert it back after installation.

# update-crypto-policies --set DEFAULT:SHA1
# dnf install -y opensearch-dashboards
# update-crypto-policies --set DEFAULT

Enable and start OpenSearch Dashboards service.

# systemctl enable --now opensearch-dashboards
Created symlink /etc/systemd/system/multi-user.target.wants/opensearch-dashboards.service → /usr/lib/systemd/system/opensearch-dashboards.service.

Verify the status of OpenSearch Dashboards service.

# systemctl status opensearch-dashboards
● opensearch-dashboards.service - "OpenSearch Dashboards"
     Loaded: loaded (/usr/lib/systemd/system/opensearch-dashboards.service; ena>
     Active: active (running) since Fri 2023-04-21 18:08:39 PKT; 3min 13s ago
   Main PID: 6344 (node)
      Tasks: 11 (limit: 22962)
     Memory: 163.4M
        CPU: 18.091s
     CGroup: /system.slice/opensearch-dashboards.service
             └─6344 /usr/share/opensearch-dashboards/bin/../node/bin/node /usr/>

Apr 21 18:11:31 opensearch-01.centlinux.com opensearch-dashboards[6344]: {"type>
Apr 21 18:11:33 opensearch-01.centlinux.com opensearch-dashboards[6344]: {"type>
Apr 21 18:11:36 opensearch-01.centlinux.com opensearch-dashboards[6344]: {"type>

Edit OpenSearch Dashboards configuration file with the help of vim text editor.

# vi /etc/opensearch-dashboards/opensearch_dashboards.yml

Locate and set following directives in this file.

server.host: 192.168.116.128
opensearch.hosts: [https://192.168.116.128:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver

Restart OpenSearch Dashboards service to load configuration changes.

# systemctl restart opensearch-dashboards

Check the status of OpenSearch Dashboards service for any possible errors.

# systemctl status opensearch-dashboards
● opensearch-dashboards.service - "OpenSearch Dashboards"
     Loaded: loaded (/usr/lib/systemd/system/opensearch-dashboards.service; ena>
     Active: active (running) since Fri 2023-04-21 19:11:00 PKT; 1min 37s ago
   Main PID: 6896 (node)
      Tasks: 11 (limit: 22962)
     Memory: 159.6M
        CPU: 16.430s
     CGroup: /system.slice/opensearch-dashboards.service
             └─6896 /usr/share/opensearch-dashboards/bin/../node/bin/node /usr/>

Apr 21 19:11:09 opensearch-01.com opensearch-dashboards[6896]: {"type>
Apr 21 19:11:10 opensearch-01.com opensearch-dashboards[6896]: {"type>
Apr 21 19:11:11 opensearch-01.com opensearch-dashboards[6896]: {"type>

Allow OpenSearch Dashboards Default Port 5601/tcp in Linux firewall.

# firewall-cmd --add-port=5601/tcp --permanent
success
# firewall-cmd --reload
success

Access OpenSearch Dashboards:

Open URL http://opensearch-01.centlinux.com:5601 in a web browser.

01-opensearch-dashboards-login

Login with default credentials i.e. kibanaserver/kibanaserver

02-opensearch-dashboards-home

You have reached at the Home page of OpenSearch Dashboard.

Conclusion – Install OpenSearch on Linux:

In this Linux tutorial, you have learned how to install OpenSearch on Linux 9 or other Red Hat based Linux distributions. If you are new to Linux commandline, then we recommend that you should attend online training: Linux Administration: The Complete Linux Training Course