Setelah menjalankan/menginstall kubernetes hal selanjutnya yang perlu dilakukan adalah untuk monitoring performa dari node, pod dan services yang dijalankan oleh kubernetes. Beruntungnya dengan mudah bisa kita gunakan prometheus, karena sudah ada helm chart yang langsung melakukan semua proses tersebut.
Ada banyak sekali metrics yang diambil oleh prometheus, seperti CPU, Memory, Disk I/O, Network, DNS, Volume dan banyak lainnya. Metrics ini sangat penting dimilikin untuk melihat troubleshooting masalah yang terjadi di kubernetes yang anda kelola.
Buat namespace monitoring
Agar semua tools untuk monitoring lebih rapi, kita akan menggunakan namespace monitoring.
kubectl create namespace monitoring
Tambah Prometheus repository di helm
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts # update helm repo helm repo update
Install prometheus-stack
chart, chart ini akan menginstall grafana, prometheus-node-exporter dan kube-state-metrics
helm install prometheus-stack prometheus-community/kube-prometheus-stack --namespace monitoring
proses install prometheus-stack
memakan waktu kurang lebih 1-2 menit, tunggu sampai muncul output
NAME: prometheus-stack LAST DEPLOYED: Wed May 25 22:44:59 2022 NAMESPACE: monitoring STATUS: deployed REVISION: 1 NOTES: kube-prometheus-stack has been installed. Check its status by running: kubectl --namespace monitoring get pods -l "release=prometheus-stack"
setelah selesai, cek pod yang baru di install
kubectl --namespace monitoring get pods -l "release=prometheus-stack"
output
NAME READY STATUS RESTARTS AGE prometheus-stack-kube-prom-operator-5df567dc96-dwfcj 1/1 Running 0 54s prometheus-stack-kube-state-metrics-56d4759d67-kqzwd 1/1 Running 0 54s prometheus-stack-prometheus-node-exporter-bng5f 1/1 Running 0 54s prometheus-stack-prometheus-node-exporter-l5dlh 1/1 Running 0 54s
Cek pods, services dan configmap yang digunakan oleh prometheus-stack
kubectl --namespace monitoring get pods,services,configmap -l "release=prometheus-stack"
Port Forward Prometheus dan Grafana
Untuk melihat web ui prometheus dan grafana, kita bisa menggunakan port-forward
Grafana
kubectl port-forward services/prometheus-stack-grafana 8080:80 -n monitoring
setelah melakukan port forward, sekarang kita bisa membuka grafana dari komputer dengan mengakses http://localhost:8080
. Kita tidak menggunakan port 80 seperti yang digunakan grafana di server, karena untuk membuka port 80 membutuhkan akses root.
default user name admin grafana username admin
password prom-operator
.
Cara untuk mendapatkan informasi tersebut jalankan perintah
# password admin kubectl get secret prometheus-stack-grafana -o jsonpath="{.data.admin-password}" -n monitoring | base64 --decode # user admin kubectl get secret prometheus-stack-grafana -o jsonpath="{.data.admin-user}" -n monitoring | base64 --decode
Untuk grafana, sudah di install dashboard untuk monitoring kubernetes cluster, jadi bisa dijadikan acuan bila membutuhkan custom dashboard.
Prometheus
kubectl port-forward services/prometheus-stack-kube-prom-prometheus 9090:9090 -n monitoring