Kubernetes’de Helm ile Grafana Kurulumu

Kubernetes’de Helm ile Grafana Kurulumu

Selamlar,
Bir önceki yazımda Kubernetes’de Helm ile Prometheus kurulumunu anlatmıştım.Bu yazımda ise Prometheus üzerindeki metrikleri kullanarak dashboard oluşturulmak için en çok tercih edilen ürün olan Grafana’nın kurulumunu anlatacağım.

Grafana açık kaynak kodlu gelişmiş bir raporlama platformu. Metrik datalarınızın nerede saklandığına bakmasızın bu metrikler için sorgulama, görselleştirme ve bildirim alabilmenizi sağlıyor.

Mertiklerin nerede saklandığına bakmıyor dedim çünkü yazıyı yazdığım tarih itibari ile aktif olarak 30 farklı data source üzerinden çalışmayı destekliyor. Bunların en çok tercih edilenleri ise graphite, influxdb, Prometheus, Elasticsearch, AWS CloudWatch

Kurulumu Azure Kubernetes Service (AKS) üzerinde manage olarak çalışan Kubernetes clusterında yapacağım. Eğer siz Google Kubernetes Engine (GKE)Amazon Elastic Container Service for Kubernetes (EKS) yada diğer manage Kubernetes servislerinden birini kullanıyorsanız AKS özel olarak değiştirdiğim adımları kullandığınız platform’a uygun olarak değiştirmeniz gerekiyor.

Grafana için Helm stable chart‘ı bulunuyor. Bu chart’ı kurarken bir kaç noktayı değiştirmemiz gerekiyor. Şu adresten güncel values.yaml indirip değişiklikleri yapmaya başlayabiliriz

Grafana’ya domain üzerinden erişebilmek için ingress.enabled değerini true ardından Grafana için bind edilmesini istediğimiz domain bilgisini girmek için ingress.hosts değerini güncelliyoruz.

Sonrasında Grafana için datalarımızın kaybolmaması için kalıcı bir disk bir oluşturmak adına persistence.enabled değerini true yapıyoruz. persistence.size değeri ile disk boyutunu belirtebilirsiniz. persistence.storageClassName değerini ise AKS için managed-premium seçiyorum.

AKS için kullanılabilecek storage tipleri için “kubectl get sc” komutunu kullanabilirsiniz.

plugins bölümü ise Grafana plugin sayfasında ki pluginleri kurulum aşamasında yüklemek için kullanılıyor. Daha sonra ihtiyacım olacağı için Clock ve Pie Chart isimli iki plugini yüklüyorum.

Son olarak grafana.ini bölümü ile Grafana server üzerinde dashboard erişimi vereceğimiz kullanıcılara mail gönderilebilmesi için stmp ayarlarını yapacağız.
grafana.ini.root_url bölümüne grafana erişmek için kullandığımız domaini girmemiz gerekiyor.
grafana.ini.smtp.enabled değerini true
grafana.ini.smtp.host değerine smtp server host ve port bilgisini
grafana.ini.smtp.user değerine email kullanıcı adı
grafana.ini.smtp.password değerine email şifre
grafana.ini.smtp.from_address değerine ise kullanacağımız email adresini giriyoruz.

Yukarıdaki ayarlar Grafana üzerinde kullanıcı eklediğinizde davetiye emailinin gönderilebilmesi için geçerli eğer siz bu özelliği kullanmayacaksınız bu kısmı atlayabilirsiniz.

Tüm bu işlemlerden sonra values.yaml son halini aldı. Dosya çok uzun olduğu için burada paylaşamıyorum github gist üzerinden inceleyebilirsiniz.

Şimdi sıra geldi kuruluma. Aşağıdaki komut ile kurulumu yapabiliriz.

Bir kaç dakika bekledikten sonra kurulum ve ingress tanımlaması tamamlanıyor ve belirttiğimiz domain üzerinden Grafana’ya erişebilir durumda oluyoruz.

Kurulum tamamlandıktan sonra giriş için kullanıcı adımız admin şifremiz ise secret olarak monitoring namespace altına otomatik oluşturuluyor. Buradaki değere kubernetes dashboard üzerinden öğrenebiliriz.

Grafana’ya ilk kez login olduğumuzda ise şu şekilde bir ekran ile karşılaşıyoruz. Şimdi sıra geldi Prometheus’u data souce olarak Grafana’ya eklemeye. Add data source bölümüne tıklıyoruz

Promethus’a bağlanmak için ip adresini öğrenmemiz gerekiyor. Bunu için kubectl üzerinde aşağıdaki komutu çalıştırıyoruz.

Add data source ekranında Prometheus’u seçiyoruz.

Şimdi bir önceki adımda öğrendiğimiz Prometheus ip adresiniz giriyoruz ardından Save & Test butonu ile Prometheus’u data source olarak kayıt ediyoruz.

Prometheus’u data source olarak başarılı şekilde eklendikten sonra şu şekilde gözükecektir.

Data source ekledikten sonra ilk dashboard’ımızı ekleyebiliriz 🙂
Menü’den Create > Import ile kubernetes için hazırlanmış dashboard’lardan birini import edelim.

Grafana için hazırlanmış çok sayıda hazır dashboard var. Bu dashboardlara grafana.com/dashboards adresinden ulaşabilirsiniz.

Açılan sayfada dashboard import etmek için grafana dashboard sayfasındaki import etmek istediğiniz dashboard id’sini yada json olarak dashboard datasını girebilirsiniz. Ben Knut Ytterhaug tarafından hazırlanmış Node Exporter Server Metrics isimli dashboard’ı import edeceğim.
Bu dashboard ile kubernetes üzerindeki node’larımız hakkında çok detaylı bilgiye erişebiliyoruz.

Import işlemi için dashboard id’sini girdikten sonra Prometheus data source seçtikten sonra Import işlemini tamamlayabilirim

Başarılı import işlemi sonrasında ilgili dashboard otomatik olarak açılıyor. Default olarak 1 Node seçili geliyor ve son 7 gün için metrikler gösteriliyor.

Sol bölümdeki node bölümünden tüm aktif node’ları seçip son 1 saat’lik metrikleri filtrelediğimizde ise dashboard çok daha kullanışlı oluyor.
Dashboard’ı bu ayarlar ile kayıt edip kullanmaya başlayabiliriz.

Sizde ihtiyacınız olan dashboard’ları grafana.com üzerinden bulup import edebilir yada Prometheus üzerindeki metrikler ile kendi dashboard’larını oluşturabilirsiniz.

Kubernetes’de Helm ile Grafana kurulumu hakkında söyleyeceklerim bu kadar

Görüşmek üzere!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Sonraki:

Kubernetes'de Helm ile Prometheus Kurulumu

Kubernetes'de Helm ile Prometheus Kurulumu