Bilişim Dünyası

Kubernetes Monitoring: Prometheus ve Grafana ile Cluster Gözlemlenebilirliği

· 4 dakika okuma · 1
Kubernetes Monitoring: Prometheus ve Grafana ile Cluster Gözlemlenebilirliği

Merhaba,

Kubernetes'te onlarca pod, birden fazla node, sürekli değişen bir ekosistem. Ne zaman bir şeyler bozuluyor, nasıl anlıyorsunuz? Doğru monitoring olmadan Kubernetes yönetmek kör uçuşa benziyor. Prometheus ve Grafana ikilisini inceleyelim arkadaşlar.

Gözlemlenebilirlik Neden Kritik?

Monitoring, logging ve tracing — üçü birlikte gözlemlenebilirliği (observability) oluşturuyor. Kubernetes'in dinamik doğası (pod'ların sürekli yeniden başlaması, ölçeklenmesi, taşınması) geleneksel monitoring yaklaşımlarını yetersiz kılıyor. Statik IP'ye dayalı monitoring burada çalışmıyor. Servis keşfi ile dinamik hedefleri takip eden bir sistem şart.

Prometheus: Zaman Serisi Metrik Motorunun Kalbi

Prometheus, açık kaynak zaman serisi veritabanı ve monitoring sistemi. Pull modeliyle çalışıyor: her birkaç saniyede bir hedef endpoint'lerden (/metrics) metrik topluyor. Kubernetes'te her pod, node ve servis otomatik keşfediliyor. PromQL (Prometheus Query Language) ile güçlü metrik sorguları yazılabiliyor. Veri 15 günden uzun tutulmak istendiğinde Thanos veya VictoriaMetrics gibi long-term storage çözümlerine ihtiyaç var.

Prometheus Operator ve kube-prometheus-stack

Kubernetes'te Prometheus'u en temiz kuran yol kube-prometheus-stack Helm chart'ı. Tek komutla Prometheus, Alertmanager, Grafana, node-exporter ve kube-state-metrics kurulur. ServiceMonitor ve PodMonitor CRD'leriyle yeni uygulamaların metrikleri otomatik keşfedilebilir hale geliyor. Namespace başına metric izolasyonu destekleniyor.

Node ve Pod Metrikleri

node-exporter, her Kubernetes node'unda çalışarak CPU, bellek, disk I/O, ağ trafiği gibi altyapı metriklerini topluyor. kube-state-metrics ise pod durum, deployment replica sayısı, job tamamlanma durumu gibi Kubernetes nesnesi bazlı metrikleri üretiyor. Bu ikisi olmadan Kubernetes cluster sağlığını anlamak mümkün değil.

Grafana: Görselleştirmenin Gücü

Grafana, Prometheus metriklerini anlamlı dashboardlara dönüştürüyor. Kubernetes için hazır dashboard'lar mevcut: cluster genel bakış, node detayı, pod kaynak kullanımı, namespace bazlı raporlar. Grafana Alerting ile kritik eşikleri aşıldığında Slack, Teams, PagerDuty veya e-posta bildirimi gönderilebiliyor. Panel oluşturmak için PromQL bilgisi gerekiyor — ekibe yatırım şart.

Alertmanager: Akıllı Alarm Yönetimi

Alertmanager, Prometheus alarm kurallarını alıp routing, grouping ve silencing işlemlerini yapıyor. Gece 2'de her küçük alarm için uyandırılmak istemezsiniz — Alertmanager gruplandırma ile ilgili alarmları birleştiriyor, iş saatleri dışında farklı kanala yönlendirebiliyor. Silence kuralları planlı bakım süreçlerinde alarmları susturuyor.

Distributed Tracing: Jaeger ile Derinlik

Metrik ve log yeterli değil bazen — bir isteğin hangi mikroservislerden geçtiğini ve nerede geciktiğini görmek gerekiyor. Jaeger veya Tempo ile distributed tracing kurulduğunda servisler arası gecikme analizi mümkün oluyor. OpenTelemetry standardı ile uygulama kodu hem Prometheus metriklerine hem Jaeger trace'lerine veri gönderebiliyor.

Sonuç

Prometheus + Grafana ikilisi, Kubernetes monitoring için fiili standart. kube-prometheus-stack ile hızlı kurulum yapın, hazır dashboardları özelleştirin, alert kurallarını organizasyonunuzun SLA'larına göre ayarlayın. Monitoring sonradan eklenen şey değil, Kubernetes mimarisinin parçası :)

İyi Günler Dilerim,

Bu yazıyı paylaş: