Juli 16, 2026
walid-31
Panduan lengkap monitoring Kubernetes dengan Prometheus dan Grafana via Helm. Instalasi, konfigurasi, dan dashboard real time untuk cluster Anda.

Bayangkan Anda mengelola sebuah cluster Kubernetes yang menjalankan puluhan microservice untuk bisnis Anda. Semua terlihat baik-baik saja — sampai suatu malam, satu pod tiba-tiba menghabiskan seluruh memori node, aplikasi menjadi lambat, dan pelanggan mulai mengeluh. Masalahnya, Anda baru menyadarinya setelah tim customer service melaporkan komplain, bukan dari sistem monitoring Anda sendiri. Sebab, memang belum ada sistem monitoring yang berjalan.

Skenario ini sangat umum terjadi pada tim yang baru memulai perjalanan dengan Kubernetes. Cluster Kubernetes bersifat dinamis: pod bisa dibuat dan dihapus kapan saja, node bisa ditambah atau dikurangi secara otomatis, dan beban kerja terus berubah setiap detik. Tanpa visibilitas yang jelas terhadap kondisi cluster, tim DevOps dan SRE akan selalu bermain “tebak-tebakan” saat terjadi insiden.

Di sinilah kombinasi Prometheus dan Grafana menjadi standar industri untuk observability Kubernetes. Prometheus bertugas mengumpulkan dan menyimpan metrik dalam bentuk time-series, sementara Grafana mengubah data mentah tersebut menjadi dashboard visual yang informatif dan mudah dipantau secara real time. Artikel ini akan membahas secara komprehensif cara memasang, mengonfigurasi, dan mengoptimalkan kedua tools ini menggunakan Helm — package manager resmi Kubernetes — sehingga Anda bisa memiliki sistem monitoring production-ready dalam hitungan menit.

Pembahasan Utama

Apa Itu Prometheus dan Mengapa Penting untuk Kubernetes?

Prometheus adalah toolkit monitoring dan alerting open source yang awalnya dikembangkan di SoundCloud dan kini menjadi proyek graduated di bawah Cloud Native Computing Foundation (CNCF) — organisasi yang sama yang menaungi Kubernetes. Prometheus bekerja dengan cara “menarik” (pull) metrik dari berbagai target secara berkala melalui endpoint HTTP, menyimpannya sebagai data time-series, lalu mengevaluasi aturan (rules) untuk memicu alert jika diperlukan.

Alasan Prometheus begitu cocok dengan Kubernetes adalah karena keduanya dirancang untuk lingkungan yang sama-sama dinamis. Prometheus mendukung service discovery otomatis, sehingga ketika ada pod baru yang muncul atau menghilang, Prometheus dapat menyesuaikan target scraping-nya tanpa konfigurasi manual.

Apa Itu Grafana?

Grafana adalah platform visualisasi data open source yang mampu terhubung ke berbagai sumber data, termasuk Prometheus, untuk menghasilkan dashboard interaktif. Alih-alih membaca angka mentah dari Prometheus, Grafana menyajikan data tersebut dalam bentuk grafik garis, gauge, heatmap, dan tabel yang jauh lebih mudah dipahami — baik oleh engineer maupun manajemen.

Mengapa Menggunakan Kombinasi Keduanya, Bukan Salah Satu Saja?

Analoginya sederhana: Prometheus adalah “mata-mata” yang mengumpulkan informasi dari setiap sudut cluster, sedangkan Grafana adalah “ruang kontrol” yang menampilkan semua informasi tersebut dalam satu layar. Anda bisa saja menggunakan Prometheus tanpa Grafana — Prometheus punya UI bawaan sederhana — tetapi UI tersebut tidak dirancang untuk dashboard jangka panjang atau presentasi ke tim non-teknis. Sebaliknya, Grafana tanpa sumber data seperti Prometheus tidak akan memiliki data apa pun untuk divisualisasikan.

Arsitektur Monitoring Stack di Kubernetes

Sebelum masuk ke instalasi, penting untuk memahami komponen utama dalam ekosistem kube-prometheus-stack, yaitu Helm chart populer yang membundel seluruh stack monitoring sekaligus:

  • Prometheus Operator — mengelola instance Prometheus menggunakan Custom Resource Definition (CRD) Kubernetes seperti ServiceMonitor dan PodMonitor, sehingga konfigurasi scraping bisa dilakukan secara deklaratif.
  • Prometheus Server — komponen inti yang melakukan scraping dan penyimpanan metrik.
  • Alertmanager — menangani deduplikasi, pengelompokan, dan routing alert ke Slack, email, atau webhook lain.
  • Node Exporter — agent yang berjalan di setiap node untuk mengekspos metrik hardware seperti CPU, memori, dan disk.
  • kube-state-metrics — mengekspos metrik terkait status objek Kubernetes (Deployment, Pod, Node, dll) langsung dari API server.
  • Grafana — lapisan visualisasi dengan dashboard bawaan yang sudah dikurasi khusus untuk Kubernetes.

Studi kasus sederhana: bayangkan tim DevOps ingin mengetahui apakah ada node yang kehabisan memori. Node Exporter mengekspos metrik node_memory_MemAvailable_bytes dari setiap node, Prometheus melakukan scraping metrik tersebut setiap beberapa detik, lalu Grafana menampilkannya sebagai grafik garis dengan ambang batas warna merah jika penggunaan memori mendekati limit. Ketika metrik menembus ambang tertentu, Alertmanager langsung mengirim notifikasi ke channel Slack tim infrastruktur — jauh sebelum pengguna akhir merasakan dampaknya.

Prasyarat Sebelum Instalasi

Sebelum memulai, pastikan Anda sudah memiliki:

  • Cluster Kubernetes yang aktif (minikube, kind, EKS, GKE, AKS, atau cluster on-premise) dengan versi 1.24 ke atas.
  • kubectl yang sudah terkonfigurasi dan bisa mengakses cluster.
  • Helm versi 3 terinstal di komputer atau server CI/CD Anda.
  • Alokasi resource minimal sekitar 2 CPU core dan 4–8 GB RAM khusus untuk Prometheus pada cluster kecil (1–5 node), ditambah sekitar 0.5 CPU dan 512 MB RAM untuk Grafana.

Materi Praktis: Tutorial Step-by-Step Instalasi dengan Helm

Langkah 1 — Menambahkan Repository Helm Prometheus Community

Repository resmi kube-prometheus-stack dikelola oleh komunitas Prometheus di GitHub. Tambahkan repo tersebut ke Helm:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update

Perintah helm repo update memastikan Anda mendapatkan daftar chart dan versi terbaru dari repository tersebut.

Langkah 2 — Membuat Namespace Khusus Monitoring

Praktik terbaik adalah mengisolasi seluruh komponen monitoring ke dalam namespace tersendiri agar lebih mudah dikelola dan dipisahkan dari workload aplikasi:

kubectl create namespace monitoring

Langkah 3 — Menginstal kube-prometheus-stack

Setelah repo dan namespace siap, install seluruh stack (Prometheus, Grafana, Alertmanager, Node Exporter, dan kube-state-metrics) dalam satu perintah Helm:

helm install prometheus prometheus-community/kube-prometheus-stack \
  --namespace monitoring \
  --create-namespace

Proses ini biasanya memakan waktu 1–3 menit tergantung kecepatan cluster menarik image container. Untuk memastikan semua komponen sudah berjalan, jalankan:

kubectl get pods -n monitoring
kubectl get svc -n monitoring

Anda akan melihat pod-pod seperti prometheus-kube-prometheus-operator, prometheus-prometheus-kube-prometheus-prometheus-0, prometheus-grafana, prometheus-kube-state-metrics, dan prometheus-prometheus-node-exporter pada setiap node.

Langkah 4 — Mengakses Dashboard Prometheus

Untuk memverifikasi bahwa Prometheus sudah berhasil melakukan scraping target, gunakan port-forward:

kubectl port-forward svc/prometheus-kube-prometheus-prometheus 9090:9090 -n monitoring

Buka browser ke http://localhost:9090/targets untuk melihat daftar target yang sedang di-scrape beserta statusnya (UP/DOWN).

Langkah 5 — Mengakses Dashboard Grafana

Grafana sudah otomatis terpasang sebagai bagian dari kube-prometheus-stack dan sudah dikonfigurasi dengan Prometheus sebagai data source bawaan. Untuk mengaksesnya, lakukan port-forward ke service Grafana:

kubectl port-forward svc/prometheus-grafana 3000:80 -n monitoring

Kemudian buka http://localhost:3000 di browser. Gunakan username admin, sedangkan password default dapat diambil dengan perintah berikut:

kubectl get secret prometheus-grafana -n monitoring \
  -o jsonpath="{.data.admin-password}" | base64 --decode

Segera ganti password default ini setelah login pertama kali sebagai bagian dari praktik keamanan dasar.

Langkah 6 — Memverifikasi Data Source dan Dashboard Bawaan

Karena kube-prometheus-stack sudah menyertakan puluhan dashboard Grafana siap pakai untuk memantau cluster Kubernetes, Anda tidak perlu membuat dashboard dari nol. Masuk ke menu Dashboards di Grafana, dan Anda akan menemukan dashboard seperti “Kubernetes / Compute Resources / Cluster”, “Node Exporter / Nodes”, dan “Kubernetes / Pods” yang langsung menampilkan grafik penggunaan CPU, memori, network, dan storage secara real time.

Jika ingin memverifikasi koneksi data source secara manual, buka menu Connections > Data Sources, pilih Prometheus, dan pastikan URL server mengarah ke alamat service internal Prometheus, misalnya http://prometheus-kube-prometheus-prometheus.monitoring.svc.cluster.local:9090.

Langkah 7 — Kustomisasi Instalasi dengan values.yaml (Opsional)

Untuk kebutuhan production, sebaiknya Anda tidak mengandalkan konfigurasi default. Buat file prometheus-values.yaml untuk mengatur retensi data, ukuran storage, dan resource limit:

prometheus:
  prometheusSpec:
    retention: 15d
    resources:
      requests:
        cpu: 500m
        memory: 2Gi
      limits:
        cpu: 1
        memory: 4Gi
    storageSpec:
      volumeClaimTemplate:
        spec:
          resources:
            requests:
              storage: 50Gi

grafana:
  adminPassword: "gantiPasswordAnda123"
  persistence:
    enabled: true
    size: 10Gi

Terapkan konfigurasi tersebut dengan:

helm upgrade prometheus prometheus-community/kube-prometheus-stack \
  --namespace monitoring \
  -f prometheus-values.yaml

Studi Kasus: Memantau Resource Cluster secara Real Time

Setelah instalasi selesai, buka dashboard “Kubernetes / Compute Resources / Namespace (Pods)” di Grafana. Anda bisa langsung melihat grafik CPU dan memori per pod dalam sebuah namespace, membandingkan penggunaan aktual dengan request/limit yang sudah didefinisikan, serta mengidentifikasi pod mana yang berpotensi menyebabkan resource starvation. Tim yang menjalankan reels demo biasanya menampilkan tampilan dashboard ini secara live, karena grafiknya diperbarui otomatis setiap beberapa detik sesuai interval scraping Prometheus — memberikan kesan “hidup” dan sangat cocok untuk konten visual seperti reels atau demo produk.

Kesalahan yang Sering Terjadi

1. Lupa Membersihkan CRD Lama Saat Upgrade

Penyebab: Chart kube-prometheus-stack menggunakan CRD (Custom Resource Definition) yang tidak selalu diperbarui otomatis oleh Helm v3 saat proses upgrade. Dampak: Konfigurasi ServiceMonitor atau PrometheusRule baru bisa gagal diterapkan atau muncul error validasi. Cara mengatasi: Selalu cek dokumentasi rilis chart sebelum upgrade, dan perbarui CRD secara manual bila diinstruksikan oleh changelog resmi chart.

2. Konflik Nama Service saat Membuat ServiceMonitor Kustom

Penyebab: Label selector pada ServiceMonitor tidak cocok dengan label pada Service aplikasi. Dampak: Prometheus tidak menemukan target scraping sehingga metrik aplikasi tidak muncul di dashboard. Cara mengatasi: Pastikan matchLabels pada ServiceMonitor benar-benar identik dengan label yang didefinisikan pada Service, dan verifikasi lewat halaman /targets di Prometheus.

3. Storage Prometheus Penuh karena Retensi Terlalu Lama

Penyebab: Nilai retention diset terlalu tinggi tanpa mempertimbangkan jumlah time-series dan kapasitas disk. Dampak: Prometheus bisa crash atau berhenti menerima data baru ketika PersistentVolume penuh. Cara mengatasi: Hitung kebutuhan storage berdasarkan jumlah metrik dan interval scraping, lalu sesuaikan retensi dan ukuran volume, atau pertimbangkan solusi long-term storage seperti Thanos untuk retensi jangka panjang.

4. Mengakses Grafana dan Prometheus Langsung ke Publik Tanpa Autentikasi Tambahan

Penyebab: Mengekspos service menggunakan LoadBalancer atau Ingress tanpa proteksi tambahan seperti TLS atau autentikasi eksternal. Dampak: Data metrik cluster berpotensi diakses pihak tidak berwenang, termasuk informasi sensitif seperti nama workload dan pola traffic. Cara mengatasi: Gunakan Ingress dengan TLS (misalnya lewat cert-manager), aktifkan autentikasi Grafana yang lebih kuat, dan batasi akses jaringan menggunakan NetworkPolicy.

5. Tidak Mengganti Password Default Grafana

Penyebab: Banyak tim langsung menggunakan kredensial admin bawaan setelah instalasi tanpa mengubahnya. Dampak: Celah keamanan besar, terutama jika Grafana terekspos ke jaringan yang lebih luas. Cara mengatasi: Ganti password segera setelah login pertama, atau set password kustom melalui values.yaml sebelum instalasi seperti dicontohkan pada langkah kustomisasi di atas.

Tips dan Rekomendasi

  • Manfaatkan dashboard bawaan terlebih dahulu. kube-prometheus-stack sudah menyediakan dashboard yang dikurasi dari berbagai proyek upstream Prometheus, sehingga Anda tidak perlu membangun ulang dari nol untuk kebutuhan monitoring dasar.
  • Gunakan helm upgrade dengan file values yang sama untuk konsistensi. Selalu simpan file values.yaml Anda di version control (Git) agar konfigurasi mudah direproduksi dan diaudit.
  • Pantau cardinality metrik. Hindari label dengan kardinalitas tinggi seperti user ID atau timestamp pada metrik custom, karena dapat membebani memori Prometheus secara signifikan.
  • Pertimbangkan High Availability untuk lingkungan production. Untuk cluster besar, jalankan lebih dari satu replika Prometheus dan Alertmanager dengan pod anti-affinity agar monitoring tetap berjalan meski satu node mengalami gangguan.
  • Integrasikan Alertmanager dengan channel komunikasi tim. Hubungkan Alertmanager ke Slack, Microsoft Teams, atau PagerDuty agar insiden dapat direspons lebih cepat.
  • Fokus pada Four Golden Signals. Saat membuat dashboard kustom, prioritaskan empat sinyal utama observability: latency, traffic, error, dan saturation — ini memberikan gambaran paling representatif tentang kesehatan sistem.

Kesimpulan

Monitoring adalah fondasi penting dalam mengelola cluster Kubernetes yang andal. Kombinasi Prometheus untuk pengumpulan metrik dan Grafana untuk visualisasi telah terbukti menjadi standar de facto di industri karena kesederhanaan integrasinya dengan ekosistem cloud native. Dengan bantuan Helm chart kube-prometheus-stack, seluruh proses instalasi — mulai dari Prometheus Operator, Node Exporter, kube-state-metrics, Alertmanager, hingga Grafana dengan dashboard siap pakai — bisa dilakukan hanya dengan beberapa perintah saja.

Poin penting yang perlu diingat:

  • Gunakan Helm chart kube-prometheus-stack untuk instalasi cepat dan terintegrasi.
  • Selalu verifikasi target scraping melalui halaman /targets Prometheus.
  • Kustomisasi retensi, storage, dan resource limit sesuai skala cluster Anda melalui values.yaml.
  • Jangan lupakan aspek keamanan seperti penggantian password default dan proteksi akses jaringan.
  • Manfaatkan dashboard bawaan sebelum membangun dashboard kustom dari nol.

Dengan sistem monitoring yang solid, tim Anda tidak lagi bereaksi terhadap insiden setelah pengguna melapor, melainkan bisa mendeteksi dan menangani masalah sebelum berdampak luas.


Frequently Asked Questions (FAQ)

Pertanyaan: Apa perbedaan utama antara Prometheus dan Grafana? Jawaban: Prometheus berfungsi sebagai mesin pengumpul dan penyimpan metrik time-series dari cluster Kubernetes, sedangkan Grafana adalah lapisan visualisasi yang mengubah metrik tersebut menjadi dashboard grafis. Keduanya saling melengkapi, bukan saling menggantikan.

Pertanyaan: Apakah kube-prometheus-stack cocok untuk cluster production? Jawaban: Ya, chart ini banyak digunakan di lingkungan production karena sudah mencakup Prometheus Operator, Alertmanager, dan dashboard Grafana bawaan. Namun untuk skala besar, sebaiknya sesuaikan resource, retensi data, dan konfigurasi high availability sesuai kebutuhan cluster Anda.

Pertanyaan: Berapa banyak resource yang dibutuhkan untuk menjalankan stack ini? Jawaban: Untuk cluster kecil dengan 1–5 node, Prometheus umumnya membutuhkan sekitar 2 CPU core dan 4–8 GB RAM, sedangkan Grafana membutuhkan sekitar 0.5 CPU dan 512 MB RAM. Kebutuhan ini akan meningkat seiring bertambahnya jumlah metrik dan node dalam cluster.

Pertanyaan: Bagaimana cara mengganti password default Grafana? Jawaban: Anda bisa mengatur password khusus melalui parameter grafana.adminPassword pada file values.yaml sebelum instalasi, atau mengganti password langsung melalui halaman login Grafana setelah login pertama menggunakan kredensial default.

Pertanyaan: Apakah saya perlu membuat dashboard Grafana dari nol? Jawaban: Tidak selalu. kube-prometheus-stack sudah menyertakan dashboard Grafana bawaan yang dikurasi khusus untuk memantau resource cluster, node, dan pod Kubernetes, sehingga Anda bisa langsung menggunakannya sebagai titik awal sebelum membuat dashboard kustom.


Bagaimana pengalaman Anda menerapkan monitoring Kubernetes dengan Prometheus dan Grafana di cluster Anda sendiri?

Yuk, tulis pertanyaan, kendala, atau tips tambahan Anda di kolom komentar — mari berdiskusi bersama! Jangan lupa bagikan artikel ini ke rekan tim DevOps atau komunitas Anda agar makin banyak yang terbantu, dan jelajahi juga artikel-artikel terkait lainnya seputar Kubernetes, Cloud Computing, dan Infrastruktur IT di website ini. Ikuti terus update konten terbaru kami agar Anda selalu selangkah lebih maju dalam dunia DevOps dan observability!

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Dilindungi Oleh
Shield Security