Panduan Linux

Monitoring Kubernetes dengan Prometheus dan Grafana

Pengenalan

Hey, sobat kubers! Kali ini kita bakal ngobrol nih tentang gimana caranya monitorin aplikasi yang jalan di Kubernetes pake Prometheus dan Grafana. Ini nih duo dynamic yang bisa ngebuat hidup kita sebagai DevOps jadi lebih adem ayem, apalagi pas lagi ada masalah sama aplikasi kita.

Kenapa Prometheus dan Grafana?

Pertama-tama, nih, Prometheus itu tipe cewek yang demen ngecatet semua hal yang terjadi di sekitar dia. Nah, dalam konteks kita, dia bakal nge-collect dan nyiman semua metrik dari aplikasi yang jalan di Kubernetes kita. Sedangkan Grafana ini bagaikan seniman yang make data-data itu buat ngegambar visualisasi yang cantik dan gampang dimengerti.

Buat sobat yang pernah pening liatin log atau metrik mentah, Grafana ini bakal jadi temen sejati kalian.

Mulai Install Prometheus di Kubernetes

Oke, kita langsung gas aja ke action!

Pertama, kita perlu install Prometheus di Kubernetes. Nih, caranya gampang banget:

  1. Buat namespace baru khusus buat Prometheus:

    kubectl create namespace prometheus
    
  2. Install Prometheus pake Helm:

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

    Oiya, sebelumnya pastiin Helm udah terinstall di lokal kalian ya.

  3. Cek deployment Prometheus:

    kubectl get all -n prometheus
    

    Tunggu bentar sampe semua pod statusnya Running.

Ngambil Data dari Aplikasi Kubernetes

Nah, setelah Prometheus terinstall, dia bakal mulai ngegali semua metrik dari aplikasi yang jalan di Kubernetes. Tapi biar lebih asik, kita perlu konfigurasi ServiceMonitor atau PodMonitor yang bakal kasih tau Prometheus data apa aja yang perlu diambil.

Contoh, nih:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: example-app
  labels:
    team: frontend
spec:
  selector:
    matchLabels:
      app: example-app
  endpoints:
  - port: web

Kode di atas itu namanya ServiceMonitor, yang nunjukin ke Prometheus buat ngambil metrik dari service yang punya label app: example-app di port web.

Nampilin Data di Grafana

Next, kita butuh Grafana buat liat hasil karya Prometheus kita.

  1. Install Grafana:

    helm repo add grafana https://grafana.github.io/helm-charts
    helm repo update
    helm install grafana grafana/grafana --namespace prometheus
    
  2. Dapetin password admin buat login ke Grafana:

    kubectl get secret --namespace prometheus grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
    
  3. Akses Grafana:

    kubectl port-forward --namespace prometheus service/grafana 3000:80
    

    Buka browser dan akses http://localhost:3000, login pake username admin dan password dari hasil command di atas.

  4. Tambah Data Source Prometheus:

    • Buka menu Configuration > Data Sources
    • Pilih Prometheus
    • Masukin URL Prometheus (biasanya http://prometheus-server:80), lalu Save & Test.
  5. Buat Dashboard:

    • Bisa mulai dari template yang udah ada atau bikin custom dashboard sendiri.

    Contoh query buat nampilin CPU usage:

    sum(rate(container_cpu_usage_seconds_total{namespace="default"}[5m])) by (pod)
    

Tips and Tricks

  1. Buat Custom Dashboard: Kalo default dashbordnya gak cocok sama kebutuhan, coba cari di Grafana Labs karena banyak template yang bisa kalian pake.
  2. Alerting: Jangan lupa buat setup alert biar kalian bisa dapet notifikasi kalo ada yang gak beres sama aplikasi.
  3. Storage: Pastiin storage buat Prometheus cukup, soalnya dia bakal nimbun banyak data.
  4. Labeling: Pake label yang bermakna supaya gampang nyari metrik tertentu.
  5. Update: Rajin-rajin update versi Prometheus dan Grafana biar dapet fitur baru dan security patch.

#Kubernetes #Grafana #Prometheus #Tutorial