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.
kubernetes prometheus dashboard

Prometheus

kubectl port-forward services/prometheus-stack-kube-prom-prometheus 9090:9090 -n monitoring

sekarang prometheus bisa diakses di http://localhost:9090
prometheus web ui

Leave a comment

Your email address will not be published. Required fields are marked *