Grafana ile Kubernetes Kümesini İzleme

Merhaba arkadaşlar 👋, bu yazıda size Prometheus ve Grafana’yı K8s kümenize nasıl kuracağınızı göstereceğim

İzleme, SRE (Site Güvenilirliği Mühendisliği) ve DevOps’un önemli bir parçasıdır.  Kubernetes ve Microservices gibi ortamlar göz önüne alındığında bu daha da önemlidir çünkü mühendislerin platformun performansı ve durumu hakkındaki kritik bilgileri izlemesi gerekir.

Pod kaynakları, bellek kullanımı, CPU kullanımı, ağ bant genişliği, disk basıncı ve diğer parametreler düzenli olarak izlenmelidir.  Kubernetes kendi kendini izlemez.  Bu durumda sorunları erkenden tespit edecek bir mekanizmanın mevcut olması gerekir.

Binlerce uygulamanın manuel olarak takip edilmesi pratik bir çözüm değildir.  Prometheus ve Grafana bu noktada geliyor.

Bu nedenle Prometheus ve Grafana, SRE/DevOps mühendisleri tarafından yoğun bir şekilde kullanılıyor çünkü performans ölçümlerini toplamanın yanı sıra uyarılar, canlı görüntüler ve özel kontrol panelleri ayarlamalarına da olanak tanıyor.

Prometheus ve Grafana hakkında daha fazla bilgi edinmek istiyorsanız resmi belgelerine göz atın.

Buna başlamadan önce yerine getirmeniz gereken iki önkoşul vardır.

Önkoşullar:

  1. Kubernetes cluster — Kümemizi zaten oluşturduk.
1*ay2C x l2eoo
1*LbkNTXW7jE0Dq67HJqJMFQ

2. “helm” kurulumu — helm kullanılarak izleme yığını tek bir komut satırıyla kurulabilir.  Aşağıdaki komutla ana düğümünüze helm yükleyin.

snap install helm --classic

Output:

Artık kurulum için önkoşulları biliyorsunuz.

O halde başlayabiliriz, değil mi?  Başlayalım!

Daha iyi anlaşılması için makaleyi birkaç bölüme ayıracağım.

  1. Kube-prometheus-stack Helm Chart’ı dağıtma
  2. Prometheus Kullanıcı Arayüzüne Erişim
  3. Grafana Kontrol Paneline Erişim
  1. Kube-prometheus yığını helm grafiğini dağıtma

kube-prometheus yığını, Kubernetes bildirimleri, Prometheus, Grafana, Alertmanager, Prometheus operatörü, Prometheus kuralları ve diğer izleme kaynaklarından oluşan bir koleksiyondur.  Tüm zorunlu özellikler buraya dahil edildiğinden, bu, E2E Kubernetes kümesinin kolay izlenmesini sağlar.  (https://artifacthub.io/packages/helm/prometheus-worawutchan/kube-prometheus-stack)

Adım 1 — Ad alanını oluşturun — izleme

İlk adım Kubernetes kümesinde yeni bir ad alanı oluşturmaktır.  Prometheus ve Grafana hizmetlerinin konuşlandırılması için Kubernetes kümemizde bir konum atayacaktır.  Bu nedenle aşağıdaki komutu çalıştırın.

Çıktı:

Adım 2 — Helm ile kube-prometheus-stack kurulumu

  • Ardından Prometheus topluluğu dümen deposunu eklemek için aşağıdaki komutu çalıştırın.
helm repo add prometheus-community https://prometheus community.github.io/helm-charts
  • Daha sonra kube-prometheus-stack Helm grafiğini dağıtmak için Helm deposunu ekledikten sonra aşağıdaki komutu çalıştırın.
helm install prometheus prometheus-community/kube-prometheus-stack --namespace monitoring
  • Kube-prometheus-stack dağıtımınızı onaylamak ve kontrol etmek için aşağıdaki komutu kullanın.
kubectl get pods -n monitoring

Gördüğünüz gibi aşağıdaki resimde kümenizde çalışan yığındaki her bileşen gösterilmektedir.

Çıktı:

  • İzleme ad alanında dağıtılan tüm hizmetleri görüntülemek için aşağıdaki komutu çalıştırın
Kubectl get svc -n monitoring

Ve çıktı aşağıda gösterilmiştir,

1*AaJOD3MPSlP nJs1 OKtFA

Prometheus ve Grafana’dan oluşan izleme yığınımız hazır !

2. Prometheus Kullanıcı Arayüzüne Erişim

Artık Prometheus hizmetlerinizi kümeye başarıyla dağıttınız ve Kubernetes kümeniz izlenmeye neredeyse hazır.

Peki Prometheus kontrol panelinize nasıl erişebilirsiniz?  Aşağıdaki hizmetin “Türü” ClusterIP’den NodePort’a değiştirilmelidir.

— prometheus-kube-prometheus-prometheus

Bunun için aşağıdaki komutu çalıştırın.

kubectl --namespace monitoring patch svc prometheus-kube-prometheus-prometheus -p '{"spec": {"type": "NodePort"}}'

Çıktı:

1*bBgTuvyJ SA2ijwjb1Z Dw
  • Prometheus kullanıcı arayüzüne erişmek için web tarayıcınızı açın ve aşağıdaki URL’lere gidin.

http://YOUR-MASTER-NODE-PUBLIC-IP:NodePort

Ex: http:// 18.143.107.40:31187

Prometheus hizmetiniz çalışıyorsa web tarayıcınız aşağıdaki sayfayı görüntülemelidir.

1*Qhk5MaY2bmUhy Ldk FVaw
  • Artık Durum > Hedefler yoluna gidebilirsiniz, Prometheus Hedefleri olan yapılandırılmış izleme bileşenlerini göreceksiniz.
1*5qWTUrrR15slwBFjgNIznQ

3. Grafana Kontrol Paneline Erişim

Prometheus’un görselleştirme yeteneklerini deneyimlediğimizde Grafik seçeneğine takılıp kaldığımız için bunların sınırlı olduğunu görebiliyoruz.  Prometheus, kendisiyle yapılandırılmış hedeflerden ölçümler toplamak için kullanışlıdır.

Ancak kaynak izleme ve görselleştirme için Prometheus’u Grafana ile yapılandırmamız gerekiyor ve her ikisi de birlikte iyi çalışıyor

Grafana, kube-prometheus-stack dümen dağıtımı sırasında otomatik olarak yüklenip yapılandırıldığından, Kümenizde Grafana erişimini yapılandırabilirsiniz.

Grafana kontrol panelinize erişmek için,

  • Prometheus-grafana hizmetinin “Türünü” ClusterIP’den NodePort’a değiştirmek için aşağıdaki komutu çalıştırın.
kubectl --namespace monitoring patch svc prometheus-grafana -p '{"spec": {"type": "NodePort"}}'

Çıktı:

1*huswSjWdoEjG ZVguDwDNQ
  • Grafana kontrol paneline erişmek için web tarayıcınızı açın ve aşağıdaki URL’lere gidin.

http://YOUR-MASTER-NODE-PUBLIC-IP:NodePort

Ex: http:// 18.143.107.40:32334

Grafana hizmetiniz çalışıyorsa web tarayıcınız aşağıdaki giriş sayfasını görüntülemelidir.

1*OLk8VZ7O1t7CqyrZjuqd7A

Varsayılan.

— Kullanıcı adı: admin

— Şifre: prom-operator

  • Giriş yaptıktan sonra aşağıda gösterildiği gibi Grafana kontrol panelini göreceksiniz.
1*7vJKByoP5qLn m9BsrDzhg

3.1 Grafana ile Etkileşim

Varsayılan olarak kube-prometheus-stack, Prometheus’ta yapılandırılan her hedef için Grafana’yı bazı önceden yapılandırılmış kontrol panelleriyle dağıtır.

Kontrol paneli simgesinden “Gözat”ı seçtiğinizde, tarayıcınız sizi kontrol panellerinin listesinin bulunduğu bir sayfaya getirir.

1*nseFkyLchasm4oZla9 ssg

Aşağıda varsayılan kontrol paneli listesi gösterilmektedir.

Kontrol panellerinden birini seçeceğim.  Aşağıdaki resimde görebileceğiniz gibi, veri kaynağı Prometheus (varsayılan veri kaynağı) olarak ayarlanmıştır ve görselleştirme için ad alanı izleme olarak ayarlanmıştır.

1*rhSYus8lM5f aOoeabKLtA

3.2 Önceden tanımlanmış kontrol panelini Grafana’ya aktarın

Önceki bölümde Grafana kullanıcı arayüzüyle etkileşimde bulunuyorsunuz;  Sanırım artık https://grafana.com/grafana/dashboards/ adresinden önceden tanımlanmış bazı kontrol panellerini içe aktarmayı deneyebilirsiniz.

Not: İhtiyaçlarınıza göre bu listeden istediğiniz kontrol panelini seçebilir ve daha sonra kontrol panelini istediğiniz gibi özelleştirebilirsiniz.

  • https://grafana.com/grafana/dashboards/6417-kubernetes-cluster-prometheus/ URL’sine gidin (Kubernetes kümesinde daha fazla görselleştirme sağladığı için bu benim seçimim) ve Kontrol Paneli Kimliğini (6417) kopyalayın.
1*wAPt5Ne4kdlahTdGPewtRg
  • Şimdi kontrol paneli simgesine gidin ve gözat seçeneğini tıklayın.
  • Daha sonra sağ köşenin üst kısmındaki yeni düğmesine tıklayın ve içe aktarma seçeneğini seçin.
1*HaMae2Kpab7yf9BCmCmWuA

Aşağıdaki gibi bir pencere göreceksiniz ve alana ID’yi yazıp “Yükle” butonuna tıklayın.

1*XWuT2LCEzvkT0lY3s0K2FA
  • Daha sonra aşağıdaki pencereyi göreceksiniz ve alanları resimdeki gibi dolduracaksınız.
1*WDCdQ4X0H KweLiwW265aQ
  • Son olarak, içe aktar düğmesini tıkladığınızda içe aktarılan kontrol panelinize yönlendirilecektir.

Yazının orijinalini buradan okuyabilirsiniz.

Hüseyin GÜÇ

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım. Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum. Son 6 yıldır  sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum. Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.