Belajar Elasticsearch - Installation & First Steps dengan Elasticsearch
Episode 3 of 31

Belajar Elasticsearch - Installation & First Steps dengan Elasticsearch

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.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

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.

Metode Instalasi

Lewat Package Manager (APT / YUM)

Cara paling umum untuk server production. Elastic menyediakan repository resmi:

LinuxInstalasi di Ubuntu/Debian
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 elasticsearch

Untuk keluarga RHEL/Rocky:

LinuxInstalasi di Rocky Linux / CentOS
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 elasticsearch

Lewat Archive (TAR/ZIP)

Cocok untuk environment tanpa hak root, misalnya laptop pribadi. Unduh archive dari website resmi, ekstrak, dan langsung jalankan:

Unduh dan ekstrak archive Elasticsearch
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/elasticsearch

Lewat Docker

Paling 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:

Jalankan Elasticsearch via Docker
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.3

Important

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.

Elastic Cloud / Elasticsearch Service

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.

Menyalakan dan Menghentikan Elasticsearch

Setelah instalasi via package manager, gunakan systemd:

LinuxStart, status, dan stop via systemd
sudo systemctl daemon-reload
sudo systemctl enable --now elasticsearch
sudo systemctl status elasticsearch
sudo systemctl stop elasticsearch
sudo systemctl start elasticsearch

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

Akses Pertama: Cluster Health

Info Dasar

Dengan Elasticsearch berjalan, cek versi dan identitas node:

Informasi node dan versi
curl -s localhost:9200
Respons info (disederhanakan)
{
  "name": "node-1",
  "cluster_name": "elasticsearch",
  "cluster_uuid": "abc123",
  "version": {
    "number": "8.15.3",
    "lucene_version": "9.11.1"
  }
}

Cluster Health

Endpoint paling sering dipakai sepanjang karier Elasticsearch kalian:

Periksa kesehatan cluster
curl -s localhost:9200/_cluster/health?pretty
Contoh respons cluster health
{
  "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).

Memahami Struktur Respons JSON

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:

Memfilter respons agar ringkas
curl -s 'localhost:9200/_cluster/health?filter_path=status,nodes,unassigned_shards'

Kibana dan Dev Tools

Kibana adalah antarmuka grafis resmi. Instal versi yang sama persis dengan Elasticsearch:

LinuxInstall Kibana di Ubuntu
sudo apt install -y kibana
sudo systemctl enable --now kibana

Buka http://localhost:5601 dan login dengan user elastic. Di Kibana ada Dev Tools → Console — editor yang memungkinkan kalian menulis request Elasticsearch tanpa curl:

Contoh request di Dev Tools Console
GET /_cluster/health

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

Kesalahan Umum

  1. Port 9200 sudah dipakai. Error bind: address already in use. Cek dengan ss -tlnp dan matikan proses yang memakai port.

  2. JVM heap terlalu kecil. Error unable to create native thread. Perbesar ES_JAVA_OPTS=-Xms4g -Xmx4g atau atur di jvm.options.

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

  4. Versi Elasticsearch dan Kibana beda. Kibana menolak koneksi dengan pesan versi tidak cocok. Samakan versi keduanya.

  5. Melupakan kredensial superuser. Password dicetak sekali saat first boot. Jika lupa, reset dengan bin/elasticsearch-reset-password -u elastic.

Penutup

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:

  • Empat jalur instalasi: package manager, archive, Docker, Elastic Cloud.
  • Status cluster: green, yellow, red — cek selalu lewat _cluster/health.
  • Sejak 8.x, security aktif default; simpan password elastic dari first boot.
  • Gunakan ?pretty dan ?filter_path= untuk respons yang mudah dibaca.
  • Dev Tools di Kibana adalah editor request terbaik untuk belajar.

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!