kubernetes monitoring dan alerting dengan prometheus grafana (part 1)

posted in: grafana, linux, monitoring, prometheus, ubuntu | 0

halo sobat sekolahlinux, kali ini saya akan membahas bagaimana caranya membuat monitoring dan juga alerting untuk kubernetes menggunakan prometheus dan grafana, kenapa pakai prometheus dan grafana berikut penjelasannya

  • grafana: grafana digunakan untuk keperluan visualisasi metric dari prometheus agar nantinya data yang ada mudah di lihat dan dipahami
  • prometheus: prometheus digunakan sebagai tempat untuk menyimpan metric yang dikirim dari client atau bisa disebut juga prometheus ini sebagai databasenya, selain untuk database prometheus ini juga bisa untuk alerting, karena di prometheus ada feature/service prometheus alert manager, nantinya alert manager ini akan mengirimkan notifikasi ke channel yang sudah di set contoh (slack, dll)

dalam ujicoba kali ini saya menggunakan minikube dengan spek sebagai berikut

  • 4 Thread CPU
  • 10GB RAM
  • kubernetes v1.14.2

untuk setup grafana dan prometheus saya menggunakan HELM 3.x, lalu untuk versi grafana dan prometheus seperti dibawah ini

step pertama kita download dulu values helm dari grafana dan prometheus menggunakan perintah dibawah ini

jika sudah buka file grafana.yaml dan lakukan penambahan juga perubahan seperti dibawah ini

pada bagian service grafana di file values-prometheus.yaml, rubah ClusterIP menjadi NodePort seperti dibawah

jika sudah buka file values-prometheus.yaml dan lakukan penambahan juga perubahan seperti dibawah ini

pada bagian service alertmanager di file values-prometheus.yaml, rubah ClusterIP menjadi NodePort seperti dibawah

pada bagian service prometheus server di file values-prometheus.yaml, rubah ClusterIP menjadi NodePort seperti dibawah

kenapa saya merubah type service ClusterIP menjadi NodePort, dikarenakan karena saat ini saya mencobanya di minikube maka untuk dapat mengakses service tersebut melalui ip host/vm minikube saya harus menggunakan NodePort, atau bisa juga melalui kubectl proxy atau jika kalian berada di gke atau k8s yg di provide cloud provider kalian, bisa juga menggunakan type LoadBalancer, namun pada tutorial kali ini untuk akses ke prometheus dan grafana saya menggunakan NodePort

selanjutnya pada bagian alertmanager ConfigMap entries modifikasi menjadi seperti dibawah ini, disini receiversnya atau media untuk notifikasinya menggunakan slack

untuk detailnya paramater apa saja yang bisa kamu tambahkan serta penjelasan untuk setiap paramater yang digunakan  di alertmanager ConfigMap entries kamu bisa lihat di link berikut

lalu pada bagian Prometheus server ConfigMap entries khususnya di alerting_rules.yml, modifikasi menjadi seperti dibawah, disini saya menambahkan alert untuk mendeteksi pod mana yang gagal statusnya menjadi ready, baik itu error ataupun CrashloopBackOff dan juga status lainnya kecuali status pods ready, maka akan ada alert ke channel slack yang sudah kita set

untuk detailnya paramater apa saja yang bisa kamu tambahkan serta penjelasan untuk setiap paramater yang digunakan di Prometheus server ConfigMap entries entries kamu bisa lihat di link berikut

selanjutnya jika sudah kamu bisa install atau upgrade grafana dan prometheus dengan menggunakan file values-prometheus.yaml dan juga values-grafana.yaml menggunakan perintah dibawah

  • install, jika kamu ingin install baru gunakan perintah dibawah
  • upgrade, jika sebelumnya kamu sudah install dan hanya ingin upgrade rule nya saja, gunakan perintah dibawah
jika sudah kurang lebih maka nanti alert yang akan di kirimkan ke slack akan seperti gambar dibawah baik saat problem dan juga sudah solved

jika kita lihat diatas maka tampilan title dari alertnya sangat berantakan dan sulit dibaca, pada artikel selanjutnya nanti saya akan membahas tentang bagaimana membuat custom template untuk alertmanager juga bagaimana cara menggunakan grafananya

sekian dari saya artikel ini, selamat mencoba

Leave a Reply

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