Vebende Akademi - prometheus-monitoring-kurulumu
Uzmanla Konuşun
Blog
MAKALE

Prometheus Monitoring Kurulumu: Adım Adım Uygulamalı Rehber

Prometheus ile güvenilir, ölçeklenebilir ve üretime uygun monitoring altyapısı kurma rehberi. Metrik toplama, alerting, storage ve scaling pratikleriyle birlikte.

Prometheus Monitoring Kurulumu: Adım Adım Uygulamalı Rehber

Prometheus ile güvenilir, ölçeklenebilir ve üretime uygun monitoring altyapısı kurma rehberi. Metrik toplama, alerting, storage ve scaling pratikleriyle birlikte.

1. Giriş

Gözlemlenebilirlik (observability) modern yazılım ve altyapı operasyonlarının kritik bir bileşeni haline geldi. Mikroservisler, container tabanlı dağıtımlar ve bulut-native uygulamalar, sistem davranışını anlamak için güçlü metrik, log ve trace verilerine ihtiyaç duyar. Prometheus, açık kaynak ekosisteminde metrik toplama ve sorgulama konusunda en yaygın kullanılan çözümlerden biridir. Basit mimarisi, güçlü zaman serisi veritabanı ve PromQL sorgu dili ile operasyon ekiplerine gerçek zamanlı içgörüler sunar.

Bu makale, Prometheus kurulumunu sıfırdan üretime taşıyacak şekilde açıklıyor: temel kavramlar, mimari seçimleri, kurulum adımları (single-node geliştirme ortamından HA üretim konfigürasyonuna kadar), alerting, storage stratejileri, scaling ve en iyi pratikler. Hedef, mühendislerin güvenilir bir monitoring platformu kurabilmeleri ve sürdürebilmeleridir.

Bu neden konuşuluyor?

  • Metrik tabanlı gözlemlenebilirlik ile olaylar daha hızlı tespit edilip gideriliyor.
  • Prometheus açık kaynak, vendor bağımsız ve cloud-native uygulamalarla iyi entegre oluyor.
  • Kubernetes gibi platformlarda standart monitoring katmanı olarak yaygınlaşıyor.

Kimler için önemli?

DevOps, SRE, platform mühendisleri, sistem operatörleri, backend mühendisleri ve altyapı ekipleri için önemlidir.

Hangi problemleri çözüyor?

Servis kesintileri, performans darboğazları, kaynak tükenmesi, gecikmeler ve anormal davranışların erken tespiti gibi operasyonel sorunların hızlıca saptanmasını sağlar.

2. Kavramsal Temeller

Prometheus'u verimli kullanabilmek için bazı temel kavramları bilmek gerekir.

Kavramlar

  • Metric (Metrik): Zaman içinde toplanan sayısal veri (counter, gauge, histogram, summary).
  • Exporter: Metrikleri sağlayan süreç; uygulamalar kendi metriklerini expose edebildiği gibi node_exporter gibi hazır exporter'lar da kullanılır.
  • Scrape: Prometheus'un exporter'ları periyodik olarak çekme (pull) işlemi.
  • PromQL: Prometheus'un zaman serisi sorgu dili.
  • Alertmanager: Kurallara göre uyarıları yöneten ve teslim eden bileşen.

Mimari

Standart Prometheus mimarisi tekil Prometheus sunucusundan, Alertmanager'dan, bir veya daha fazla exporter'dan ve isteğe bağlı olarak uzak zaman serisi depolarından (remote_write/remote_read) oluşur. Kubernetes ortamlarında Service Discovery (SD) sayesinde otomatik hedef keşfi sağlanır.

Terminoloji

  • Counter: Artan sayaç; yalnızca yükselir (ör. gelen istek sayısı).
  • Gauge: Değer artıp azalabilir (ör. CPU kullanımı, bellek).
  • Histogram/Summary: Latency dağılımı ve percentil hesapları için kullanılır.

Bileşenler

  • Prometheus Server
  • Alertmanager
  • Exporter'lar (node_exporter, cAdvisor, kube-state-metrics, blackbox_exporter vb.)
  • Grafana (görselleştirme)
  • Remote storage (Thanos, Cortex, VictoriaMetrics) — opsiyonel

3. Nasıl Çalışır? (Kurulum Mimarisi ve Veri Akışı)

Bu bölümde teknik mimariyi ve veri akışını adım adım açıklıyoruz.

Sistem Mimarisi

Kurulum senaryoları temel olarak üçe ayrılabilir: geliştirme/tek-node, küçük ölçekli prod ve yüksek erişilebilir (HA) üretim. Her senaryonun mimari farklılıkları vardır:

  • Tek-node (geliştirme): Tek Prometheus instance, lokal exporter'lar, Grafana. Kolay kurulum ve düşük maliyet.
  • Küçük prod: Prometheus HA için iki instance (federasyon veya remote_write ile), Alertmanager cluster, Grafana, ve temel remote storage.
  • Büyük ölçek/HA: Thanos veya Cortex gibi uzun dönem storage ve sorgu katmanı, Prometheus sidecar/federation, çoklu Alertmanager ve merkezi grafana.

Bileşenler

  • Prometheus: Scrape scheduler, TSDB (local disk), query engine (PromQL).
  • Alertmanager: Alert routing, inhibit, grouping ve notification delivery (Slack, PagerDuty, e-mail).
  • Thanos/Cortex/VictoriaMetrics: Uzun dönem saklama, global sorgu ve yüksek erişilebilirlik sağlama.
  • Grafana: Dashboard ve alert görselleştirme (Grafana Alerting ile entegrasyon mümkündür).

Veri Akışı

  1. Exporter'lar metrikleri HTTP endpoint olarak expose eder (/metrics).
  2. Prometheus bu endpoint'lere periyodik olarak scrape yapar ve TSDB'ye kaydeder.
  3. Prometheus içinde tanımlı alerting kuralları tetiklenirse Alertmanager uyarıyı alır ve konfigürasyona göre teslim eder.
  4. Opsiyonel: Prometheus remote_write ile uzun dönem verileri Thanos/Cortex/VictoriaMetrics'e gönderir.

4. Gerçek Dünya Kullanımları

Prometheus, birçok büyük organizasyonda farklı ölçeklerde kullanılır. Aşağıda yaygın kullanım örnekleri:

Netflix

Telemetri ve metrik toplama amacıyla benzer araçlar kullanan Netflix, yüksek hacimli izleme ve anomali tespit süreçleri için ölçeklenebilir çözümler uygular.

Uber

Gerçek zamanlı operasyonel metrikleri monitor etmek ve lokasyon-temelli servislerin sağlık durumunu izlemek için metrik tabanlı yaklaşımlar kullanır.

Amazon

Bulut servislerinin izlenmesi ve SLA yönetimi için geniş ölçekte telemetri sistemleri kullanır; Prometheus ekosistemi benzeri yaklaşımlar yaygındır.

OpenAI / ML Altyapıları

Model training ve inference süreçlerindeki resource kullanımı (GPU, bellek, network) için metrik toplama kritik rol oynar.

Stripe

Finansal işlemler ve latency kritik servislerde detaylı metrikleme, incident response ve forensic analizler için kullanılır.

5. Avantajlar ve Sınırlamalar

Avantajlar

  • Açık kaynak ve geniş ekosistem: Çok sayıda exporter ve topluluk desteği bulunur.
  • PromQL: Güçlü sorgulama yetenekleri ile esnek metrik analizleri yapılır.
  • Cloud-native uyumluluk: Kubernetes ile native entegrasyon ve service discovery.

Dezavantajlar

  • Yerel TSDB kısa dönemlidir: Local TSDB uzun dönem saklama için uygun değildir; long-term storage gerekli.
  • HA mimarisi karmaşıktır: Prometheus tek instance olarak HA sağlamaz; federasyon veya Thanos gibi ek bileşenler gerekir.
  • Büyük veri hacminde maliyet: Retention ve cardinality yüksekse storage ve maliyet artar.

6. Alternatifler ve Karşılaştırma

Aşağıdaki tablo Prometheus'u bazı alternatiflerle karşılaştırır:

TeknolojiAvantajDezavantaj
PrometheusAçık kaynak, güçlü sorgu dili, iyi ekosistemYerel HA zorluğu, long-term storage ekstra çözüm gerektirir
DatadogManaged, entegre APM ve log, kolay kurulumMaliyetli, vendor lock-in
New RelicUçtan uca gözlemlenebilirlik, kullanımı kolayMaliyet ve veri kontrolü sınırlı
Cortex / ThanosPrometheus uyumlu, long-term ve global sorguEk kompleksite, operasyonel yük

7. En İyi Pratikler

Prometheus kurulumunda dikkat edilmesi gereken uygulamalı tavsiyeler:

Production kullanımı

  • Cardinality (etiket sayısı) kontrollü tutulmalı; yüksek cardinality metric'ler planlanmalı veya sınırlanmalıdır.
  • Exporter'ların güvenlik ayarları (TLS, auth) yapılandırılmalı ve endpoint'ler erişim kontrollü hale getirilmeli.
  • Alert kuralları meaningful olmalı; noise'u azaltmak için uygun grouping ve inhibition kullanın.

Performans optimizasyonu

  • Scrape interval'leri ve timeout'ları hedefin önemine göre ayarla; gereksiz sık çekimlerden kaçın.
  • Histogram bucket'larını iş yüküne uygun seçerek storage optimizasyonu yap.
  • Remote write kullanıyorsanız batch ve compression ayarlarını optimize edin.

Güvenlik

  • Prometheus ve exporter endpoint'leri için network politikaları (Kubernetes NetworkPolicy veya firewall) uygula.
  • Alertmanager ve Grafana entegrasyonlarında hassas credential'ları KMS/Vault ile yönet.

Ölçeklenebilirlik

  • Long-term storage için Thanos/Cortex/VictoriaMetrics tercih et; global sorgu ve downsampling stratejilerini kullan.
  • Federation yerine remote_write ile ingestion mimarisi kurmak çoğu büyük organizasyon için daha ölçeklenebilir olabilir.

8. Sık Yapılan Hatalar

  • Her endpoint'e çok yüksek etiket (label) eklemek — cardinality patlamasına yol açar.
  • Alert'leri doğrudan raw metric üzerine kurmak; önce derive edilmiş (örn. rate()) metrikler kullanılmalı.
  • etcd veya disk I/O için TSDB depolama ayarlarını göz ardı etmek; I/O darboğazı oluşur.
  • Grafana dashboard'larını doğrudan tüm metric'leri gösterir şekilde tasarlamak — performans sorunlarına yol açar.

9. Gelecek Trendler

  • Downsampling ve deduplication: Long-term storage maliyetlerini düşürmek için daha sofistike downsample çözümleri öne çıkacak.
  • AI destekli anomaly detection: Otomatik anomali tespiti ve root-cause analysis için ML yaklaşımları entegre edilecek.
  • Service mesh ile daha derin entegrasyon: eBPF tabanlı gözlemlenebilirlik ve ağ telemetri entegrasyonu daha sık kullanılacak.

Ek Bölümler

Sık Sorulan Sorular (FAQ)

  1. S: Prometheus'u Kubernetes'e nasıl kurarım?

    C: Helm chart kullanarak kube-prometheus-stack veya prometheus-community/prometheus chart'ları ile hızlıca kurabilirsiniz. production için ek storage ve Thanos/Cortex entegrasyonu planlayın.

  2. S: Prometheus ile ne kadar süre veri saklanmalı?

    C: İş ihtiyacına göre değişir. Opsiyonel kısa dönem için local TSDB (15-90 gün), uzun dönem için Thanos/Cortex/VictoriaMetrics tercih edin.

  3. S: Alertmanager nasıl ölçeklenir?

    C: Alertmanager birbirleriyle gossip protokolü veya mesh yapılandırmasıyla cluster yapılabilir; route ve inhibit kuralları merkezi olarak yönetilmelidir.

  4. S: Cardinality nasıl kontrol edilir?

    C: Etiket sayılarını sınırlayın, label'ları normalize edin, high-cardinality değerleri label yerine hash veya ayrı metric olarak düşünün.

  5. S: Prometheus güvenli mi?

    C: Default kurulumlar doğrudan güvenli değildir. TLS, auth proxy, network policy ve role-based access kontrolü ile güvenliği sağlamalısınız.

  6. S: Exporter yazmak zor mu?

    C: Hayır. Prometheus client kütüphaneleri (Go, Python, Java, Ruby) ile kolayca custom exporter yazabilirsiniz.

  7. S: Prometheus yerine tamamen managed çözüm mü almalıyım?

    C: Kaynak ve uzmanlık varsa Prometheus + Thanos/Cortex maliyet-etkin ve kontrol sağlar; managed hizmetler operasyonu azaltır ama maliyet ve vendor bağımlılığı getirir.

  8. S: Prometheus'ü log ve trace ile entegre etmeliyim?

    C: Evet. Observability tam yığın yaklaşımı için metrik, log ve trace entegrasyonu (OpenTelemetry, Grafana Tempo, Loki) önerilir.

Anahtar Kavramlar

PromQL
Prometheus Query Language — zaman serisi sorgulama dili.
Remote_write
Prometheus'un verileri uzak TSDB'ye yazma mekanizması.
Cardinality
Label kombinasyonlarının sayısı — yüksek cardinality storage ve performans sorunlarına yol açar.

Öğrenme Yol Haritası

Prometheus uzmanlığı için önerilen adımlar:

  1. Temel Kavramlar (1-2 hafta): Metrics tipleri, exporter'lar, scrape modeli, PromQL temelleri.
  2. Pratik Kurulum (2-3 hafta): Minikube/kind veya lokal sunucu üzerinde Prometheus, Grafana, node_exporter kurulumu.
  3. Alerting & Alertmanager (2 hafta): Alert kuralları yazma, receiver konfigürasyonu ve eskalasyon süreçleri.
  4. Scale & Long-term Storage (3-4 hafta): Thanos/Cortex/VictoriaMetrics ile remote_write ve downsampling deneyimi.
  5. Observability Integrations (sürekli): Logs (Loki/ELK), Traces (Tempo/Jaeger) ve APM entegrasyonları.

Uygulamalı projeler (ör. production benzeri küçük cluster kurma, end-to-end monitoring pipeline inşa etme) öğrenmeyi hızlandıracaktır. Ayrıca Prometheus ve Grafana topluluk kaynakları ile resmi dokümantasyon takip edilmelidir.