Skip to main content
Jika metrik memberi tahu kita kapan sistem lambat dan komponen apa yang bermasalah, maka Log adalah satu-satunya instrumen yang memberi tahu kita alasan persis (root-cause) di balik error tersebut. Namun, membuka SSH ke puluhan server satu per satu hanya untuk mengetikkan tail -f /var/log/nginx/error.log adalah cara kuno yang membuang waktu. Kita membutuhkan Centralized Logging System (Sistem Log Terpusat).

Perbandingan Arsitektur: Grafana Loki vs ELK Stack

Dua raksasa sistem logging di industri saat ini adalah Grafana Loki dan ELK Stack (Elasticsearch, Logstash, Kibana):

Arsitektur Stack Grafana Loki

Ekosistem logging Loki terdiri dari 3 pilar:
  1. Promtail: Agen pengumpul log ringan yang dipasang di server/kontainer untuk membaca file log lokal (seperti /var/log/*), menempelkan label, dan mengirimkannya ke Loki.
  2. Loki Server: Mesin penyimpan dan pengindeks log yang sangat efisien.
  3. Grafana: Antarmuka web untuk mencari, memfilter, dan membaca log secara interaktif menggunakan bahasa kueri LogQL.

Hands-On: Setup Logging Terpusat (Loki + Promtail + Grafana)

Kita akan menyalakan sistem log terpusat menggunakan Docker Compose yang secara otomatis membaca dan mengumpulkan log kontainer Docker.

1. Buat Berkas Konfigurasi loki-config.yaml:

2. Buat Berkas Konfigurasi promtail-config.yaml:

Promtail dikonfigurasi untuk membaca file log sistem Linux dan log container:

3. Buat Berkas docker-compose.yml:

4. Menjalankan Layanan:


4. Membaca & Menganalisis Log dengan LogQL di Grafana

  1. Buka Grafana di http://ip-server:3000.
  2. Tambahkan Data Source: Connections →\to Data sources →\to pilih Loki.
  3. Isi URL Loki: http://loki:3100 →\to klik Save & test.
  4. Buka menu Explore (ikon kompas) di sidebar Grafana:
    • Pilih data source: Loki.
    • Masukkan kueri LogQL untuk mencari pesan error:
Dengan fitur kueri di atas, kamu dapat melihat grafik lonjakan error secara real-time dan langsung mengklik grafik tersebut untuk membaca baris pesan log penyebabnya di detik yang sama!
Last modified on October 26, 2026