Monitoring Kubernetes resources with Grafana Heapster and InfluxDB

Udah lama banget ya kaga update ini blog, dosa kaga ya...
Kalo gitu mau share aja cara Monitoring Kubernetes, dari cluster sampai pods-nya, memory cpu filesystem dan kawan-kawannya.

Gini2 jadi sebenernya kubernetes sendiri udah punya monitoring sendiri namanya Kubernetes Dashboard, nah selama ane pake ini terbatas banget. contoh liat gambar di bawah ini deh ka:











Begitu doang, kita mau nampilin misal kemarin atau 3 hari yang lalu ga bisa. Jadi kita pake kolaborasi sama GHI (grafana heapster dan influxdb). sebenernya si gampang banget tinggal kube create -f aja dan sedikit edit di file yaml-nya tapi tenang tinggal clone aja dari repo ane, itu udah fork dari heapster. Cuma yg kudu kita perhatiin adalah bagaimana workflownya jadi suatu saat error troubleshootnya bisa. 

Alhamdulillah heapster sudah menyediakan yaml filenya jadi kita tinggal create aja, tapi ada beberapa line yg perlu kita edit. Biar lebih terarah ane jelasin dulu ya stepsnya:

1. Clone heapster repository fork-an ane
2. kube create
3. Verify
4. Lihat hasilnya

OK sodarah2 kita mulai aja yah.



1. Clone dari github repository heapster

git clone https://github.com/unixhat/heapster.git
Ini fork dari heapsternya tapi udah ane edit 3 file yaml-nya biar bisa langsung pakai 

2. Kube create

➜  heapster git:(master) cd deploy/kube-config/influxdb/
➜  influxdb git:(master) ll
total 24
-rw-r--r--  1 heriyanto  staff   2.2K Jun 13 13:11 grafana.yaml
-rw-r--r--  1 heriyanto  staff   1.1K Jun 13 13:11 heapster.yaml
-rw-r--r--  1 heriyanto  staff   961B Jun 13 13:11 influxdb.yaml

nah di dalemnya ada 3 file kan yah.. semua kepake ka.. ga perlu di edit lagi udah aktif dengan load balancer dan add-on modenya disabled ka.

➜  influxdb git:(master) cd ../
➜  kube-config git:(master) ✗ kubectl create -f influxdb
deployment "monitoring-grafana" created
service "monitoring-grafana" created
serviceaccount "heapster" created
deployment "heapster" created
service "heapster" created
deployment "monitoring-influxdb" created

service "monitoring-influxdb" created

Prosesnya tersita waktu sekitar 3 menit lah. ditunggu aja k8s bikin pods2nya.

3. Verify

Yang kita check itu 
1. podsnya udah terbentuk atau belum ?
2. ELB AWS udah jadi atau belom ?
3. Instance udah in-service di ELB ? (health check)
4. Security group. (penting ini make sure yang bisa akses dari yang dibutuhin aja)

Pods

➜  ~ kubectl get pods -n kube-system|grep -e heapster -e grafana -e influxdb
heapster-77dc9d6859-8npkf                                                  1/1       Running   0          52m
monitoring-grafana-67b5cd5467-l8dhf                                        1/1       Running   0          52m
monitoring-influxdb-85c9cd4bf5-scpkc                                       1/1       Running   0          52m

ELB

➜  ~ kubectl get svc -n kube-system|grep grafana
monitoring-grafana     LoadBalancer   100.64.90.178    a6cef89a86ecc...   80:30770/TCP    51m

Untuk URL ELB, instances status silahkan check di console aws masing2, security group juga di edit ya gan jangan lupa.

Nanti setelah dapet URL ELBnya di pointing aja di DNS biar enak di aksesnya.

4. Hasil

Kita punya 2 dashboard ya guys, 
1 cluster dashboard dan 
1 dashboard untuk pods






Cluster Dashboard 






















Pods Dashboard

















Alhamdulillah sekian ya ka tugas ane.. doakan bisa menyempatkan share lagi wkwkkw..