Memasang Elasticsearch 8.x lewat package manager, archive, Docker, atau Elastic Cloud; menyalakan dan mematikan service, mengakses REST API, memeriksa cluster health, memahami respons JSON, dan berkenalan dengan Dev Tools di Kibana.

Di episode 2 kalian sudah memahami arsitektur — inverted index, shard, replica, dan peran node. Sekarang teori itu akan "hidup": kita memasang Elasticsearch dan membuatnya berjalan. Episode 3 ini adalah momen penting karena mulai sekarang kalian berinteraksi langsung dengan REST API — bahasa yang akan kalian pakai di seluruh series ini. Kita akan membahas empat metode instalasi (package manager, archive, Docker, dan Elastic Cloud), cara menyalakan dan mematikan Elasticsearch, memeriksa kesehatan cluster, memahami struktur respons JSON, dan berkenalan dengan Dev Tools di Kibana. Di akhir episode, kalian punya instance Elasticsearch yang hidup dan sudah tahu cara berbicara dengannya.
Cara paling umum untuk server production. Elastic menyediakan repository resmi:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update
sudo apt install -y elasticsearchUntuk keluarga RHEL/Rocky:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo tee /etc/yum.repos.d/elastic.repo <<'EOF'
[elastic-8.x]
name=Elastic repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
sudo dnf install -y elasticsearchCocok untuk environment tanpa hak root, misalnya laptop pribadi. Unduh archive dari website resmi, ekstrak, dan langsung jalankan:
curl -fsSL -o elasticsearch.tar.gz https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.15.3-linux-x86_64.tar.gz
tar -xzf elasticsearch.tar.gz
cd elasticsearch-8.15.3
bin/elasticsearchPaling cepat untuk mencoba-coba. Elasticsearch 8.x punya image resmi docker.elastic.co/elasticsearch/elasticsearch:8.15.3. Kita akan membahas Docker dan Kubernetes secara mendalam di episode 27, tapi untuk uji cepat:
docker run --name es8 -p 9200:9200 -e "discovery.type=single-node" -e "xpack.security.enabled=false" -d docker.elastic.co/elasticsearch/elasticsearch:8.15.3Important
Variabel xpack.security.enabled=false di atas mematikan keamanan agar mudah dicoba. Untuk belajar aman, ini praktis — tapi ingat, jangan pernah mematikan security di production. Episode 15 dan 16 akan membahas pengamanan yang benar. Setelah docker run, tunggu beberapa detik agar node selesai bootstrap, lalu cek dengan curl localhost:9200.
Jika tidak ingin mengelola server, Elastic menawarkan Elasticsearch Service di cloud (AWS, GCP, Azure) dengan uji coba gratis. Deployment otomatis sudah ber-security penuh. Metode ini direkomendasikan untuk production yang tidak ingin dikelola sendiri.
Setelah instalasi via package manager, gunakan systemd:
sudo systemctl daemon-reload
sudo systemctl enable --now elasticsearch
sudo systemctl status elasticsearch
sudo systemctl stop elasticsearch
sudo systemctl start elasticsearchPerhatikan: saat pertama kali start dengan security aktif, Elasticsearch mencetak password superuser elastic ke terminal. Simpan baik-baik. Untuk mengubahnya nanti: bin/elasticsearch-reset-password -u elastic.
Dengan Elasticsearch berjalan, cek versi dan identitas node:
curl -s localhost:9200{
"name": "node-1",
"cluster_name": "elasticsearch",
"cluster_uuid": "abc123",
"version": {
"number": "8.15.3",
"lucene_version": "9.11.1"
}
}Endpoint paling sering dipakai sepanjang karier Elasticsearch kalian:
curl -s localhost:9200/_cluster/health?pretty{
"cluster_name": "elasticsearch",
"status": "green",
"number_of_nodes": 1,
"active_primary_shards": 0, "active_shards": 0,
"relocating_shards": 0, "unassigned_shards": 0
}Status cluster punya tiga level: green (semua shard primary dan replica aktif), yellow (semua primary aktif tapi ada replica yang belum ter-assign — normal untuk single node), dan red (ada primary shard yang tidak aktif — data tidak bisa dibaca penuh).
Setiap respons API Elasticsearch mengikuti pola: took (waktu eksekusi dalam milidetik), timed_out (apakah timeout), dan _shards (ringkasan shard yang terlibat). Untuk operasi tulis, ada field result (created, updated, deleted, noop) dan _version yang bertambah setiap dokumen diubah.
Biasakan memakai parameter ?pretty untuk merapikan JSON dan ?filter_path= untuk memfilter field tertentu — responsnya hanya berisi field yang diminta, sangat berguna saat parsing otomatis dengan script:
curl -s 'localhost:9200/_cluster/health?filter_path=status,nodes,unassigned_shards'Kibana adalah antarmuka grafis resmi. Instal versi yang sama persis dengan Elasticsearch:
sudo apt install -y kibana
sudo systemctl enable --now kibanaBuka http://localhost:5601 dan login dengan user elastic. Di Kibana ada Dev Tools → Console — editor yang memungkinkan kalian menulis request Elasticsearch tanpa curl:
GET /_cluster/healthCukup tulis metode HTTP dan path, klik tombol play. Dev Tools bahkan punya autocomplete untuk query DSL — ini akan jadi senjata utama kalian untuk praktik di episode-episode berikutnya. Semua contoh curl di series ini bisa langsung kalian ketik ulang di Dev Tools.
Tip
Jika di lingkungan production, jangan pernah mengekspos port 9200 ke internet tanpa autentikasi. Untuk development lokal, membatasi di localhost cukup. Konfigurasi network.host akan kita bahas di episode 16. Untuk sekarang, cukup pastikan Elasticsearch bisa diakses dari mesin kalian.
Port 9200 sudah dipakai. Error bind: address already in use. Cek dengan ss -tlnp dan matikan proses yang memakai port.
JVM heap terlalu kecil. Error unable to create native thread. Perbesar ES_JAVA_OPTS=-Xms4g -Xmx4g atau atur di jvm.options.
File descriptor limit rendah. Error max file descriptors [4096] for elasticsearch process is too low. Naikkan limit: ulimit -n 65535 atau atur di limits.conf.
Versi Elasticsearch dan Kibana beda. Kibana menolak koneksi dengan pesan versi tidak cocok. Samakan versi keduanya.
Melupakan kredensial superuser. Password dicetak sekali saat first boot. Jika lupa, reset dengan bin/elasticsearch-reset-password -u elastic.
Di episode 3 kalian berhasil memasang dan menjalankan Elasticsearch: empat metode instalasi (APT/YUM, archive, Docker, dan Elastic Cloud), mengelola service dengan systemd, memeriksa cluster health (green/yellow/red), memahami struktur respons JSON, dan berkenalan dengan Dev Tools di Kibana. Kalian juga sudah tahu cara berbicara dengan Elasticsearch lewat curl localhost:9200.
Inti yang harus dibawa pulang:
_cluster/health.elastic dari first boot.?pretty dan ?filter_path= untuk respons yang mudah dibaca.Elasticsearch kalian sudah hidup dan siap menerima perintah. Di episode 4 kita mulai operasi pertama yang nyata: index management dan document operations (CRUD) — membuat index dengan settings dan mapping, bekerja dengan dokumen lewat index/get/update/delete API, memakai bulk API untuk batch, serta mengenal index aliases dan templates. Sampai jumpa!