Merakit Elastic Stack utuh: Kibana untuk Discover, visualisasi, dashboard, Lens, dan Canvas; Logstash dengan pipeline input-filter-output serta plugin jdbc dan grok; dan Beats — Filebeat, Metricbeat, Packetbeat, Heartbeat.

Elasticsearch jarang berdiri sendiri. Dalam praktiknya ia adalah bagian dari Elastic Stack — ekosistem lengkap yang mencakup Kibana (visualisasi dan eksplorasi), Logstash (pemrosesan data), dan Beats (pengumpul data ringan). Kombinasi inilah yang disebut "ELK" dan menjadi standar industri untuk logging dan observability.
Episode 24 membahas integrasi tiga komponen utama: Kibana untuk eksplorasi data dan dashboard, Logstash dengan konsep pipeline input-filter-output, dan Beats — Filebeat, Metricbeat, Packetbeat, dan Heartbeat — sebagai pengumpul data yang ringan.
Kibana butuh versi yang sama persis dengan Elasticsearch (episode 0) dan user khusus untuk terhubung:
server.host: "0.0.0.0"
elasticsearch.hosts: ["https://node1:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "secret"
server.ssl.enabled: true
server.ssl.certificate: /etc/kibana/kibana.crt
server.ssl.key: /etc/kibana/kibana.keyDiscover adalah titik eksplorasi: kalian mencari dokumen dengan query DSL, melihat raw data, membuat filter, dan mengeksplorasi field. Di sinilah kalian "merasakan" data sebelum membangun visualisasi.
Kibana menawarkan beberapa cara membangun visualisasi:
Canvas membuat presentasi bergaya infographic — data dari Elasticsearch dikombinasikan dengan elemen visual, teks, dan gambar dalam satu kanvas. Cocok untuk laporan eksekutif dan live display di ruang operasional.
Tip
Pola kerja Kibana yang efisien: mulai dari Discover untuk memahami data, bangun visualisasi pertama dengan Lens, susun ke Dashboard, dan simpan setiap dashboard dengan nama yang deskriptif. Dashboard yang dipakai bersama tim harus punya dokumentasi — orang lain perlu tahu apa yang ditampilkan dan mengapa.
Logstash memproses data lewat pipeline dengan tiga tahap: input (dari mana data datang), filter (transformasi), dan output (ke mana data dikirim). Contoh pipeline lengkap:
input {
file {
path => "/var/log/nginx/access.log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{IPORHOST:client_ip} ..." }
}
date {
match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
}
mutate {
remove_field => ["message"]
}
}
output {
elasticsearch {
hosts => ["https://node1:9200"]
index => "nginx-access-%{+YYYY.MM.dd}"
}
}Pipeline ini membaca log nginx, mengurai dengan grok (episode 12), menetapkan tanggal, membuang field mentah, lalu menulis ke index berbasis tanggal.
| Plugin | Fungsi |
|---|---|
file | Membaca file log secara kontinu (dengan posisi tersimpan) |
beats | Menerima data dari Beats lewat protokol Lumberjack |
http | Menerima data dari POST HTTP |
jdbc | Menarik data dari database SQL secara terjadwal |
grok / mutate / date | Parsing, transformasi, dan parsing tanggal |
Input jdbc sangat berguna untuk menyalin data dari PostgreSQL/MySQL ke Elasticsearch untuk pencarian — pola dual-write yang kita bahas di episode 1.
Logstash dan ingest pipeline (episode 12) sering dibandingkan. Logstash lebih powerful (plugin lebih banyak, bahasa filter lengkap, multi-output) dan cocok untuk data kompleks dari banyak sumber; ingest pipeline lebih ringan, berjalan di dalam Elasticsearch, dan cukup untuk transformasi sederhana. Di Elastic Stack modern, banyak tim menggantikan Logstash dengan data streams + ingest pipeline untuk kesederhanaan — kecuali kebutuhan menuntut Logstash.
Beats adalah agent single-purpose yang sangat ringan, dipasang di mesin yang datanya perlu dikumpulkan. Kategori utamanya:
| Beats | Data yang Dikumpulkan |
|---|---|
| Filebeat | Log file (yang paling umum) |
| Metricbeat | Metrik sistem dan layanan |
| Packetbeat | Traffic jaringan dan protokol aplikasi |
| Heartbeat | Uptime dan reachability layanan |
filebeat.inputs:
- type: filestream
id: nginx-logs
paths:
- /var/log/nginx/access.log
- /var/log/nginx/error.log
output.elasticsearch:
hosts: ["https://node1:9200"]
username: "beats_system"
password: "secret"Filebeat mencatat posisi pembacaan (registry), jadi saat agent restart, tidak ada log yang terlewat atau ter-baca ganda. Output bisa langsung ke Elasticsearch, atau lewat Logstash jika butuh filter berat.
Mengumpulkan metrik sistem (CPU, memori, disk) dan metrik layanan lain — termasuk Elasticsearch itu sendiri (episode 21). Satu agent mengumpulkan banyak module: system, nginx, docker, elasticsearch, dan seterusnya.
Packetbeat menangkap paket jaringan untuk memonitor protokol aplikasi (HTTP, DNS, MySQL) — menganalisis performa dan error di level transaksi jaringan. Heartbeat mengirim probe periodik ke endpoint untuk memastikan layanan hidup dan merespons — dasar dari uptime monitoring.
Important
Pastikan versi Beats, Logstash, Kibana, dan Elasticsearch sama dalam satu major version. Elasticsearch menolak data dari agent yang versinya tidak kompatibel, dan ketidakcocokan minor sering menghasilkan error aneh. Gunakan setup elastic-agent modern (Fleet) untuk mengelola banyak agent secara terpusat — episode 28 menyentuh manajemen konfigurasi sebagai code.
Versi komponen beda. Selalu samakan major version seluruh Elastic Stack.
Kibana connect dengan user elastic di production. Gunakan kibana_system atau service account.
Logstash tanpa filter date. Data jadi ber-timestamp saat di-proses, bukan saat dibuat.
Filebeat membaca ulang log lama. Atur start_position dan registry dengan benar.
Semua data lewat Logstash tanpa alasan. Ingest pipeline cukup untuk transformasi sederhana — sederhanakan arsitektur.
Di episode 24 kalian menguasai integrasi Elastic Stack: Kibana dengan Discover, visualisasi, dashboard, Lens, dan Canvas; Logstash dengan konsep pipeline input-filter-output serta plugin file, beats, http, jdbc, grok, mutate, dan date; serta Beats — Filebeat untuk log, Metricbeat untuk metrik, Packetbeat untuk jaringan, dan Heartbeat untuk uptime.
Inti yang harus dibawa pulang:
Seluruh stack sudah terintegrasi — sekarang bagaimana aplikasi kalian berbicara dengan Elasticsearch? Di episode 25 kita bahas Elasticsearch clients dan integrasi aplikasi: client resmi Java, Python, Node.js, .NET, dan Go; pola integrasi connection pooling, retry, bulk, error handling, dan async; serta best practice naming index, schema design, pencegahan mapping explosion, dan kompatibilitas versi. Sampai jumpa!