Elasticsearch adalah mesin analitik dan pencarian teks lengkap terdistribusi open-source. Ini mendukung operasi RESTful dan memungkinkan Anda untuk menyimpan, mencari, dan menganalisis data dalam jumlah besar secara real-time. Elasticsearch adalah salah satu mesin pencari paling populer yang mendukung aplikasi yang memiliki persyaratan pencarian yang kompleks seperti toko e-commerce besar dan aplikasi analitik.
Tutorial ini menjelaskan cara menginstal Elasticsearch di Debian 10.
Menginstal Java #
Elasticsearch adalah aplikasi Java, jadi langkah pertama adalah menginstal Java.
Jalankan perintah berikut sebagai root atau pengguna dengan sudo privilegescommand untuk menginstal paket OpenJDK:
sudo apt install default-jdk
Verifikasi instalasi Java dengan mencetak versi Java:
java -version
Outputnya akan terlihat seperti ini:
openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment (build 11.0.6+10-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Debian-1deb10u1, mixed mode, sharing)
Menginstal Elasticsearch #
Elasticsearch tidak tersedia di repositori standar Debian 10. Kami akan menginstalnya dari repositori APT Elasticsearch.
Impor kunci publik repositori menggunakan wget
berikut perintah:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Perintah di atas akan menampilkan OK
, yang berarti bahwa kunci telah berhasil diimpor, dan paket dari repositori ini akan dianggap tepercaya.
Tambahkan repositori Elasticsearch ke sistem dengan menjalankan:
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
Pada saat artikel ini ditulis, 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. Perbarui indeks paket dan instal mesin Elasticsearch:
sudo apt update
sudo apt install elasticsearch
Setelah proses instalasi selesai, mulai, dan aktifkan layanan:
sudo systemctl enable elasticsearch.service --now
Untuk memverifikasi bahwa Elasticsearch berjalan, gunakan curl
untuk mengirim permintaan HTTP ke port 9200 di localhost:
curl -X GET "localhost:9200/"
Outputnya akan terlihat seperti ini:
{
"name" : "debian10.localdomain",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "yCOOHdvYR8mHRs5mNXQdDQ",
"version" : {
"number" : "7.6.1",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "aa751e09be0a5072e8570670309b1f12348f023b",
"build_date" : "2020-02-29T00:15:25.529771Z",
"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"
}
Mungkin 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
Itu dia. Elasticsearch telah diinstal pada server Debian Anda.
Mengonfigurasi Elasticsearch #
Data Elasticsearch disimpan di /var/lib/elasticsearch
direktori. File konfigurasi terletak di /etc/elasticsearch
dan opsi start-up Java dapat dikonfigurasi di /etc/default/elasticsearch
berkas.
Secara default, Elasticsearch dikonfigurasi untuk mendengarkan di localhost saja. Jika klien yang terhubung ke database juga berjalan di host yang sama dan Anda menyiapkan kluster node tunggal, Anda tidak perlu mengubah file konfigurasi default.
Akses Jarak Jauh #
Out of box Elasticsearch, tidak menerapkan otentikasi, sehingga dapat diakses oleh siapa saja yang dapat mengakses HTTP API. Jika Anda ingin mengizinkan akses jarak jauh ke server Elasticsearch, Anda perlu mengonfigurasi firewall dan mengizinkan akses ke port Elasticsearch 9200 hanya dari klien tepercaya.
Misalnya, jika Anda menggunakan UFWdan Anda ingin mengizinkan koneksi hanya dari 192.168.121.80
, masukkan perintah berikut:
sudo ufw allow from 192.168.100.20 to any port 9200
Jangan lupa ganti 192.168.100.20
dengan Alamat IP jarak jauh Anda. Setelah firewall dikonfigurasi, langkah selanjutnya adalah mengedit konfigurasi Elasticsearch dan mengizinkan Elasticsearch untuk mendengarkan koneksi eksternal.
Untuk melakukannya, buka elasticsearch.yml
file konfigurasi:
sudo nano /etc/elasticsearch/elasticsearch.yml
Cari baris yang berisi network.host
, batalkan komentarnya, dan ubah nilainya menjadi 0.0.0.0
:
network.host: 0.0.0.0
Jika Anda memiliki beberapa antarmuka jaringan di mesin Anda, tentukan alamat IP antarmuka untuk memaksa Elasticsearch hanya mendengarkan antarmuka yang diberikan.
Mulai ulang layanan Elasticsearch agar perubahan diterapkan:
sudo systemctl restart elasticsearch
Itu dia. Sekarang Anda dapat terhubung ke server Elasticsearch dari lokasi yang jauh.