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:
Buat namespace baru khusus buat Prometheus:
kubectl create namespace prometheus
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.
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.
Install Grafana:
helm repo add grafana https://grafana.github.io/helm-charts helm repo update helm install grafana grafana/grafana --namespace prometheus
Dapetin password admin buat login ke Grafana:
kubectl get secret --namespace prometheus grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
Akses Grafana:
kubectl port-forward --namespace prometheus service/grafana 3000:80
Buka browser dan akses
http://localhost:3000
, login pake usernameadmin
dan password dari hasil command di atas.Tambah Data Source Prometheus:
- Buka menu Configuration > Data Sources
- Pilih Prometheus
- Masukin URL Prometheus (biasanya
http://prometheus-server:80
), lalu Save & Test.
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
- Buat Custom Dashboard: Kalo default dashbordnya gak cocok sama kebutuhan, coba cari di Grafana Labs karena banyak template yang bisa kalian pake.
- Alerting: Jangan lupa buat setup alert biar kalian bisa dapet notifikasi kalo ada yang gak beres sama aplikasi.
- Storage: Pastiin storage buat Prometheus cukup, soalnya dia bakal nimbun banyak data.
- Labeling: Pake label yang bermakna supaya gampang nyari metrik tertentu.
- Update: Rajin-rajin update versi Prometheus dan Grafana biar dapet fitur baru dan security patch.