Elasticsearch adalah software mesin pencarian open source dan analisis teks lengkap terdistribusi. Elasticsearch mendukung operasi RESTful dan memungkinkan Anda untuk menyimpan, mencari, dan menganalisis volume data yang besar secara real time.

Elasticsearch adalah salah satu mesin pencari paling populer yang memberdayakan aplikasi yang memiliki persyaratan pencarian kompleks seperti toko e-commerce besar dan aplikasi analitik.

Dalam tutorial ini, kita akan membahas bagaimana menginstal Elasticsearch di CentOS 8.

Install Java

Elasticsearch adalah aplikasi Java, jadi langkah pertama adalah menginstal Java.

Jalankan yang berikut ini sebagai root atau user dengan hak sudo privilege untuk menginstal paket OpenJDK:

sudo dnf install java-11-openjdk-devel

Verifikasi instalasi Java dengan mencetak versi Java:

java -version

Outputnya akan terlihat seperti ini:

openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)

Install Elasticsearch

Elasticsearch tidak tersedia di repositori standard CentOS 8. Kita akan menginstalnya dari repositori rpm Elasticsearch.

Impor public key repositori menggunakan perintah rpm berikut:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Buka teks editor Anda dan buat file repositori pada direktori /etc/yum.repos.d:

sudo nano /etc/yum.repos.d/elasticsearch.repo

Paste konten berikut ke dalam file:

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Simpan file dan tutup teks editor Anda.

Pada saat menulis artikel ini, versi terbaru dari Elasticsearch adalah 7.6. Jika Anda ingin menginstal versi Elasticsearch sebelumnya, ubah 7.x pada perintah di atas dengan versi yang Anda butuhkan.

Sekarang repositori diaktifkan, instal paket Elasticsearch dengan mengetik:

sudo dnf install elasticsearch

Setelah proses instalasi selesai, mulai, dan aktifkan layanan:

sudo systemctl enable elasticsearch.service --now

Untuk memverifikasi bahwa Elasticsearch aktif, gunakan curl untuk mengirim HTTP request ke port 9200 di localhost:

curl -X GET "localhost:9200/"

Outputnya akan terlihat seperti ini:

{
  "name" : "centos8.localdomain",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "V_mfjn2GRJqX3PlZb_VD7w",
  "version" : {
    "number" : "7.6.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "7f634e9f44834dcc12724506cc1dd681b0c3b1e3",
    "build_date" : "2020-02-06T00:09:00.429973Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Diperlukan waktu 5-10 detik untuk memulai layanan. Jika Anda melihat curl: (7) Failed to connect to localhost port 9200: Connection refused, tunggu beberapa detik dan coba lagi.

Untuk melihat pesan yang dicatat oleh layanan Elasticsearch, gunakan perintah berikut:

sudo journalctl -u elasticsearch

Pada poin ini, Elasticsearch telah diinstal di server CentOS Anda.

konfigurasi Elasticsearch di Debian 10

Data elasticsearch disimpan di direktori /var/lib/elasticsearch, file konfigurasi terletak di /etc/elasticsearch dan opsi start-up Java dapat dikonfigurasi dalam file /etc/default/elasticsearch.

Secara default, Elasticsearch dikonfigurasikan untuk listen di localhost saja. Jika klien yang terhubung ke database juga berjalan di host yang sama dan Anda sedang mengatur satu cluster node, Anda tidak perlu mengubah file konfigurasi default.

Remote Access

Elasticsearch tidak menerapkan otentikasi sehingga dapat diakses oleh siapa saja yang dapat mengakses HTTP API. Jika ingin memperbolehkan akses jarak jauh ke server Elasticsearch, Anda perlu mengkonfigurasi firewall dan mengizinkan akses ke port Elasticsearch 9200 hanya dari klien terpercaya saja.

Misalnya, untuk mengizinkan koneksi hanya dari 192.168.121.80, Jalankan perintah berikut untuk memungkinkan akses hanya dari alamat IP  tepercaya di port 9200:

sudo firewall-cmd --new-zone=elasticsearch --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=elasticsearch --add-source=192.168.121.80/32 --permanentsudo firewall-cmd --zone=elasticsearch --add-port=9200/tcp --permanentsudo firewall-cmd --reload

Jangan lupa untuk mengubah 192.168.100.20 dengan Alamat IP jarak jauh Anda. Jika Anda ingin mengizinkan akses dari penggunaan Alamat IP lain:

sudo firewall-cmd --zone=elasticsearch --add-source=<IP_ADDRESS> --permanent
sudo firewall-cmd --reload

etelah firewall dikonfigurasi, langkah selanjutnya adalah mengedit konfigurasi Elasticsearch dan mengizinkan Elasticsearch listen pada koneksi eksternal. Untuk melakukannya, buka file konfigurasi elasticsearch.yml:

sudo nano /etc/elasticsearch/elasticsearch.yml

Cari dan hilangkan tanda # pada network.host , dan ubah nilainya menjadi 0.0.0.0:

network.host: 0.0.0.0

Jika memiliki beberapa interfaces jaringan pada mesin Anda, tentukan alamat IP interfaces untuk memaksa Elasticsearch hanya listen pada interface yang diberikan.

Restart layanan Elasticsearch agar perubahan diterapkan:

sudo systemctl restart elasticsearch

Anda sekarang dapat terhubung ke server Elasticsearch dari lokasi jarak jauh.

Kesimpulan

Kami telah menunjukkan kepada Anda cara menginstall Elasticsearch di CentOS 8.

Untuk mempelajari lebih lanjut tentang Elasticsearch, kunjungi halaman dokumentasi resmi Elasticsearch di halaman ini.