Elasticsearch adalah mesin analitik dan pencarian teks lengkap terdistribusi open-source. Ini 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 mendukung aplikasi yang memiliki persyaratan pencarian yang kompleks seperti toko e-commerce besar dan aplikasi analitik.
Tutorial ini akan memandu Anda melalui proses menginstal Elasticsearch di Debian 9.
Prasyarat #
Anda harus masuk sebagai pengguna dengan hak istimewa sudo untuk dapat menginstal paket di server Debian Anda.
Menginstal Elasticsearch #
Cara termudah untuk menginstal Elasticsearch di Debian adalah melalui repositori Elasticsearch resmi. Pada saat artikel ini ditulis, versi terbaru dari Elasticsearch adalah 7.0.0
dan membutuhkan Java 8 untuk diinstal pada sistem.
Mulailah dengan memperbarui indeks paket dan menginstal apt-transport-https
paket yang diperlukan untuk mengakses repositori melalui HTTPS:
sudo apt update
sudo apt install apt-transport-https
Instal OpenJDK 8:
sudo apt install openjdk-8-jdk
Verifikasi instalasi Java dengan mencetak versi Java:
java -version
Outputnya akan terlihat seperti ini:
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
Langkah selanjutnya adalah menambahkan repositori 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.
Selanjutnya, 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'
Jika Anda ingin menginstal versi Elasticsearch yang berbeda, 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
Ketika proses instalasi selesai, mulai dan aktifkan layanan menggunakan perintah berikut:
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
Untuk memverifikasi bahwa Elasticsearch berjalan, kirim permintaan HTTP ke port 9200 di localhost menggunakan curl
berikut perintah:
curl -X GET "localhost:9200/"
Outputnya akan terlihat seperti ini:
{
"name" : "stretch",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "Nj2W3PswRuWvJW8JG75O1Q",
"version" : {
"number" : "7.0.0",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "b7e28a7",
"build_date" : "2019-04-05T22:55:32.697037Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.7.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 di bawah ini:
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 mengaktifkan akses jarak jauh.
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.
Jika Anda menggunakan UFWas alat firewall pilihan Anda, jalankan perintah berikut untuk mengizinkan penilaian pada port 9200 dari alamat IP tepercaya jarak jauh:
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. Jika tidak, jika Anda menggunakan iptables biasa, jalankan:
sudo iptables -A INPUT -p tcp -s 192.168.100.20 --dport 9200 -j ACCEPT
Setelah firewall Anda dikonfigurasi, langkah selanjutnya adalah mengedit konfigurasi dan menyetel 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 pada mesin Anda, Anda dapat menentukan alamat IP antarmuka yang akan menyebabkan Elasticsearch hanya mendengarkan pada antarmuka yang ditentukan.
Mulai ulang layanan Elasticsearch agar perubahan diterapkan:
sudo systemctl restart elasticsearch
Pada titik ini, Anda seharusnya dapat terhubung ke server Elasticsearch dari lokasi jauh Anda.