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 7.

Prasyarat

Anda harus masuk sebagai user dengan hak sudo untuk dapat menginstal paket pada sistem CentOS 7.

Cara Install Elasticsearch di CentOS 7

Cara termudah untuk menginstal Elasticsearch di CentOS 7 adalah dengan menginstal paket rpm dari repositori resmi Elasticsearch.

Pada saat penulisan artikel ini, versi terbaru dari Elasticsearch adalah 6.7 dan membutuhkan Java 8 untuk diinstal pada sistem. Untuk Install OpenJDK 8 di CentOS 7 gunakan perintah berikut :

sudo yum install java-1.8.0-openjdk-devel

Verifikasi instalasi Java dengan menjalankan perintah berikut yang akan mencetak versi Java:

java -version

Outputnya akan terlihat seperti ini: (mungkin bervariasi)

openjdk version "1.8.0_201"
OpenJDK Runtime Environment (build 1.8.0_201-b09)
OpenJDK 64-Bit Server VM (build 25.201-b09, mixed mode)

Sekarang Java sudah diinstal, langkah selanjutnya adalah menambahkan repositori Elasticsearch. Impor GPG repositori menggunakan perintah berikut:

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

Buka editor teks Anda dan buat file repo berikut:

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

Selanjutnya, paste konten berikut

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

Simpan konfigurasi dan lanjutkan proses instalasi elasticsearch dengan mengetik perintah berikut :

sudo yum install elasticsearch

Setelah proses instalasi selesai, mulai dan aktifkan layanan dengan menjalankan:

sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

Anda dapat memverifikasi bahwa Elasticsearch sedang berjalan dengan mengirimkan permintaan HTTP ke port 9200 di localhost dengan perintah curl berikut:

curl -X GET "localhost:9200/"

Anda akan melihat tampilan yang mirip output berikut ini:

{
  "name" : "fLVNqN_",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "6zKcQppYREaRH0tyfJ9j7Q",
  "version" : {
    "number" : "6.7.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "8453f77",
    "build_date" : "2019-03-21T15:32:29.844721Z",
    "build_snapshot" : false,
    "lucene_version" : "7.7.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

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

Jika ingin melihat pesan yang di-log oleh layanan Elasticsearch, Anda dapat menggunakan perintah di bawah ini:

sudo journalctl -u elasticsearch

Pada poin ini, Anda telah berhasil melakukan instalasi elasticsearch di CentOS 7

Konfigurasi Elasticsearch di CentOS 7

Data elasticsearch disimpan di direktori /var/lib/elasticsearch, file konfigurasi terletak di /etc/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 Akses Elasticsearch di CentOS 7

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 teepercaya saja.

Dimulai dari CentOS 7, FirewallD menggantikan iptables secara default sebagai firewall bawaan sistem operasi. Untuk mengatur rentang IP yang aman, gunakan pengaturan berikut :

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

Jangan lupa untuk mengubah 192.168.111.80 dengan Alamat IP jarak jauh Anda.

Sintaks dasar dari penambahan alamat IP untuk FirewallD adalah sebagai berikut :

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

Setelah 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

Restart layanan Elasticsearch agar perubahan diterapkan:

sudo systemctl restart elasticsearch

Sekarang Anda dapat terhubung ke server Elasticsearch dari lokasi manapun selama ada koneksi Internet.

Kesimpulan

Anda telah berhasil menginstal Elasticsearch di CentOS 7. Langkah selanjutnya adalah mengunjungi halaman resmi Dokumentasi Elasticsearch dan belajar bagaimana memulai dengan Elasticsearch.