Prometheus Nedir?
Prometheus'un kökenleri SoundCloud'da başlamış ve 2012 yılında açık kaynak olarak yayımlanmıştır. Kısa sürede popülerlik kazanarak bulut yerel ekosisteminin önemli bir parçası haline gelmiştir. Temel amacı, sistemlerin ve uygulamaların sağlık durumunu, performansını ve davranışını sürekli olarak izleyerek olası sorunları Erkenden tespit etmek ve müdahale imkanı sunmaktır. İzleme haricinde, belirli koşullar oluştuğunda uyarılar üreterek operasyon ekiplerini bilgilendirme yeteneği de bulunur. Prometheus, özellikle konteynerleştirilmiş uygulamalar, Kubernetes gibi orkestrasyon platformları ve mikroservis tabanlı dağıtık sistemler için güçlü bir çözüm sunar.
Prometheus Nasıl Çalışır?
Prometheus'un çalışma prensibi, birkaç temel bileşenin koordineli etkileşimine dayanır. Temel olarak, Prometheus sunucusu, yapılandırmasında belirtilen hedeflerden (servisler, uygulamalar, node'lar vb.) metrikleri belirli aralıklarla HTTP üzerinden çeker. Bu çekme işlemine "pull" modeli adı verilir.
- Metrik Toplama (Scraping): Prometheus sunucusu, yapılandırma dosyasında (
prometheus.yml) tanımlanmış servis keşif mekanizmaları veya statik yapılandırmalar aracılığıyla izleyeceği hedefleri belirler. Belirlenen aralıklarla (varsayılan 15 saniye), bu hedeflerin `/metrics` endpoint'ine HTTP GET isteği göndererek metrik verilerini alır. - Veri Depolama: Toplanan metrik verileri, Prometheus'un kendi geliştirdiği zaman serisi veritabanında (TSDB) saklanır. Bu veritabanı, yüksek performanslı veri yazma ve okuma yetenekleri ile bilinir ve anahtar-değer çiftleri şeklinde verileri etiketlerle birlikte depolar.
- Sorgulama (Querying): Prometheus, PromQL (Prometheus Query Language) adı verilen güçlü bir sorgulama dili sunar. Bu dil sayesinde, toplanan metrik verileri üzerinde karmaşık sorgular çalıştırılarak belirli zaman aralıklarındaki eğilimler, anlık değerler veya türetilmiş metrikler elde edilebilir.
- Uyarı Üretimi (Alerting): Prometheus, önceden tanımlanmış kurallara (alerting rules) göre metrik verilerini sürekli analiz eder. Belirlenen koşullar (örneğin, CPU kullanımının %90'ın üzerine çıkması) sağlandığında, Alertmanager'a uyarılar gönderir.
- Uyarı Yönetimi (Alertmanager): Alertmanager, Prometheus sunucusundan gelen uyarıları alır, gruplandırır, yönlendirir ve yinelenen uyarıları sessize alır. Ardından, e-posta, Slack, PagerDuty gibi çeşitli entegrasyonlar aracılığıyla ilgili ekiplere bildirim gönderir.
- Grafik Gösterimi (Visualization): Prometheus, metrik verilerini görselleştirmek için yerleşik bir kullanıcı arayüzüne sahiptir. Ancak daha gelişmiş görselleştirme ve dashboard oluşturma ihtiyaçları için Grafana gibi üçüncü taraf araçlarla entegre şekilde kullanılır.
Bu bileşenler, Prometheus'u ölçeklenebilir, esnek ve güçlü bir izleme çözümü haline getirir. Yapılandırmanın merkeziliği ve etkili veri işleme yetenekleri, özellikle modern bulut altyapılarında operasyonel görünürlüğü artırır.
Prometheus Türleri ve Bileşenleri
Prometheus, tek bir monolithic araç olmaktan ziyade, birbiriyle entegre çalışan bir araç setidir. Temelde tek bir ana bileşen olan Prometheus sunucusu etrafında şekillenir, ancak bu sunucu farklı görevleri yerine getiren yardımcı bileşenlerle birlikte çalışır.
- Prometheus Sunucusu (Prometheus Server): Prometheus'un çekirdek bileşenidir. Metrikleri toplar, işler, zaman serisi veritabanında depolar ve PromQL sorgularını yanıtlar. Ayrıca uyarı kurallarını değerlendirir ve Alertmanager'a uyarı gönderir.
- Client Libraries (İstemci Kütüphaneleri): Uygulamaların Prometheus'a metrik göndermesini sağlamak için kullanılan SDK'lardır. Java, Go, Python, Ruby gibi birçok popüler programlama dili için mevcuttur. Bu kütüphaneler, uygulamanın içinden metrikleri oluşturup Prometheus'un çekebileceği bir endpoint (genellikle `/metrics`) aracılığıyla sunmasını sağlar.
- Exporter'lar: Prometheus'un doğrudan çekemeyeceği servisler veya sistemler (örn. veritabanları, işletim sistemleri, web sunucuları) için metrikleri Prometheus formatına dönüştüren ve HTTP üzerinden sunan bağımsız uygulamalardır. Örnekler arasında
node_exporter(işletim sistemi metrikleri),mysqld_exporter(MySQL metrikleri),nginx-exporter(Nginx metrikleri) bulunur. - Alertmanager: Prometheus sunucusundan gelen uyarıları yöneten ayrı bir bileşendir. Uyarıları gruplandırır, yinelenen uyarıları sessize alır ve Slack, PagerDuty, e-posta gibi çeşitli kanallara yönlendirir.
- Service Discovery (Servis Keşfi): Prometheus'un dinamik ortamlarda izleyeceği hedefleri otomatik olarak bulmasını sağlayan mekanizmadır. Kubernetes, EC2, Consul gibi platformlarla entegre olabilir.
- Grafana (Entegrasyon): Prometheus'un kendisi temel görselleştirme sunsa da, genellikle karmaşık dashboard'lar ve derinlemesine analizler için Grafana ile birlikte kullanılır. Grafana, Prometheus'u bir veri kaynağı olarak kullanarak zengin görselleştirmeler sunar.
Bu bileşenler, Prometheus'u hem basit hem de karmaşık altyapılarda kullanılabilecek esnek bir izleme çözümü haline getirir.
Prometheus Kurulumu ve Temel Yapılandırma
Prometheus'u kurmak ve temel düzeyde yapılandırmak için birkaç adım izlenmelidir. Kurulum, hedef işletim sistemine ve tercih edilen yönteme bağlı olarak değişiklik gösterebilir (örn. binary indirme, Docker, Kubernetes). Bu rehberde, genel bir Linux sistemi üzerine binary kurulumu ele alınacaktır.
- İndirme: En güncel Prometheus binary'lerini resmi GitHub deposundan indirin. İşletim sisteminize ve mimarinize uygun olanı seçin (örn. `prometheus-x.y.z.linux-amd64.tar.gz`).
wget https://github.com/prometheus/prometheus/releases/download/v2.x.y/prometheus-2.x.y.linux-amd64.tar.gztar xvfz prometheus-2.x.y.linux-amd64.tar.gzcd prometheus-2.x.y.linux-amd64
- Temel Yapılandırma Dosyası (prometheus.yml): Prometheus'un çalışması için temel bir yapılandırma dosyası gereklidir. Bu dosya, Prometheus'un neleri izleyeceğini ve nasıl toplayacağını belirler. Varsayılan olarak, Prometheus kendisini de izler.
global: scrape_interval: 15s # Metrikleri her 15 saniyede bir çek scrape_configs: - job_name: 'prometheus' # Bu işin adı static_configs: - targets: ['localhost:9090'] # Prometheus'un kendi endpoint'i - Prometheus'u Çalıştırma: Yapılandırma dosyasını ve binary'leri içeren dizinde aşağıdaki komutu çalıştırarak Prometheus'u başlatın.
./prometheus --config.file=prometheus.yml
nohupveyasystemdservisleri kullanılabilir. - Erişim: Prometheus web arayüzü varsayılan olarak 9090 portunda çalışır. Tarayıcınızda
http://localhost:9090adresine giderek arayüze erişebilirsiniz. Burada "Status" menüsü altında "Targets" sekmesine giderek izlenen hedeflerin durumunu görebilirsiniz. - Exporter Kurulumu (Örnek: Node Exporter): İşletim sistemi metriklerini toplamak için
node_exporterkurmanız gerekir.- Node Exporter'ı indirip çalıştırın:
./node_exporter(varsayılan portu 9100'dür). prometheus.ymldosyasınanode_exporter'ı ekleyin:scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node_exporter' # Node exporter için yeni iş static_configs: - targets: ['localhost:9100'] # Node exporter'ın çalıştığı adres ve port
Prometheus'u yeniden başlatarak veya yapılandırmayı yeniden yükleyerek (
curl -X POST http://localhost:9090/-/reload) yeni yapılandırmayı uygulayın. - Node Exporter'ı indirip çalıştırın:
Bu temel kurulum, Prometheus'un çalışmaya başlaması için yeterlidir. Daha gelişmiş yapılandırmalar, servis keşfi, Alertmanager entegrasyonu ve farklı exporter'ların eklenmesi gibi adımları içerecektir.
Sık Yapılan Hatalar ve Çözümleri
Prometheus kurulumu ve yapılandırması sırasında karşılaşılabilecek bazı yaygın hatalar ve çözüm önerileri aşağıda listelenmiştir:
- Hedeflerin Scrape Edilmemesi (Target Not Scraped):
- Sorun: Prometheus arayüzünde hedeflerin "UP" yerine "DOWN" olarak görünmesi.
- Çözüm:
prometheus.ymldosyasındaki hedef adres ve portların doğruluğunu kontrol edin.- Prometheus sunucusunun hedef servise ağ üzerinden erişebildiğinden emin olun (firewall kuralları, ağ yapılandırması).
- Hedef servisin (örn. exporter) düzgün çalıştığını ve metrik endpoint'inin (genellikle `/metrics`) erişilebilir olduğunu doğrulayın.
- Prometheus yapılandırmasını yeniden yüklemeyi unutmayın.
- PromQL Sorgularının Hatalı Olması:
- Sorun: Sorguların beklenmedik sonuçlar vermesi veya hata mesajları üretmesi.
- Çözüm:
- PromQL sözdizimini dikkatlice kontrol edin. Etiket eşleştirmeleri, fonksiyon kullanımları vb.
- Prometheus'un web arayüzündeki "Graph" sekmesini kullanarak sorguların canlı veriler üzerinde nasıl çalıştığını test edin.
- Etiket isimlerinin doğru yazıldığından emin olun.
- Metrik adlarının tam ve doğru yazıldığını doğrulayın.
- Alertmanager'ın Uyarıları Göndermemesi:
- Sorun: Belirlenen koşullar sağlansa bile uyarı bildirimlerinin gelmemesi.
- Çözüm:
- Prometheus'un Alertmanager'a doğru şekilde yapılandırıldığını ve uyarıları gönderdiğini kontrol edin (Prometheus Status -> Alerts).
- Alertmanager'ın kendi yapılandırmasında (
alertmanager.yml) doğru receiver'ların (bildirim alıcıları) ve rota ayarlarının yapıldığından emin olun. - Bildirim göndermeye çalıştığınız kanalın (örn. Slack, e-posta) gerekli API anahtarları ve ayarlarının doğru olduğunu doğrulayın.
- Alertmanager'ın loglarını inceleyerek hata mesajlarını kontrol edin.
- Yüksek Disk Kullanımı veya Performans Sorunları:
- Sorun: Prometheus sunucusunun disk alanını hızla tüketmesi veya yavaşlaması.
- Çözüm:
prometheus.ymldosyasındakistorage.tsdb.retention.timeparametresi ile veri saklama süresini ayarlayın.- Toplanan metrik sayısını optimize edin. Gereksiz metrikleri veya yüksek frekansta veri çeken hedefleri azaltın.
- Disk I/O performansı yüksek bir depolama çözümü kullanın.
- Prometheus'un kendi metriklerini izleyerek olası performans darboğazlarını tespit edin.
Teknik Özellikler ve Standartlar
Prometheus, modern izleme sistemleri için belirlenen çeşitli teknik özellikler ve standartlara uyum sağlar:
- Protokol: Prometheus, metrikleri toplamak için standart HTTP protokolünü kullanır. Hedefler, genellikle `/metrics` endpoint'i üzerinden Prometheus'un anlayabileceği düz metin formatında (OpenMetrics veya Prometheus metrik formatı) verileri sunar.
- Veri Modeli: Zaman serisi veritabanı (TSDB) üzerine kuruludur. Veriler, isimlendirilmiş metrikler ve bu metrikleri tanımlayan anahtar-değer çiftleri şeklinde etiketlerden oluşur. Bu yapı, verilerin verimli bir şekilde sorgulanmasını ve analiz edilmesini sağlar.
- Sorgulama Dili: PromQL (Prometheus Query Language), metrik verileri üzerinde karmaşık sorgular çalıştırmak için tasarlanmış güçlü bir dildir. Fonksiyonlar, operatörler ve etiket filtreleme yetenekleri sunar.
- Metrik Formatı: Temel olarak Prometheus'un kendi metrik formatını kullanır, ancak OpenMetrics standardını da desteklemeye başlamıştır. Bu standart, farklı izleme sistemleri arasında uyumluluğu artırır.
- Veri Saklama: Yerleşik bir zaman serisi veritabanı (TSDB) kullanır. Veri saklama süresi (retention time) yapılandırma ile belirlenir.
- Endüstri Standartları: Cloud Native Computing Foundation (CNCF) üyesidir ve bulut yerel ekosistemindeki diğer araçlarla (Kubernetes, Docker vb.) sıkı entegrasyonu sayesinde endüstri standartlarına uygun bir izleme çözümü olarak kabul edilir.
Prometheus'un esnek veri modeli ve güçlü sorgulama yetenekleri, onu çeşitli senaryolarda kullanılabilir hale getirir.
2026 Sektör Verileri ve İstatistikler
Bulut bilişim ve izleme teknolojilerinin hızla geliştiği günümüz ortamında, Prometheus gibi araçların kullanımı giderek artmaktadır. Bu trendleri destekleyen güncel sektör verileri aşağıdaki gibidir:
- W3Techs 2026 verilerine göre, bulut tabanlı izleme çözümlerinin pazar payı, kurumsal IT altyapılarının %65'ini kapsamaktadır. Bu artış, dinamik ve ölçeklenebilir izleme ihtiyaçlarından kaynaklanmaktadır.
- Statista 2026 raporuna göre, küresel izleme ve analiz yazılımları pazarının yıllık bileşik büyüme oranı (CAGR) %12.5 olarak öngörülmektedir. Bu da sektörün sürekli bir büyüme içinde olduğunu göstermektedir.
- Cloudflare Radar 2026 verilerine göre, ortalama bir bulut yerel uygulamanın 50'den fazla mikroservisten oluştuğu ve bu tür dağıtık sistemlerin izlenmesinin kritik önem taşıdığı belirtilmektedir. Prometheus, bu karmaşıklığı yönetmek için popüler bir araçtır.
- Gartner'ın 2026 tahminlerine göre, şirketlerin %80'i operasyonel görünürlüğü artırmak için en az bir açık kaynak izleme aracını benimsemeyi planlamaktadır. Prometheus, bu araçlar arasında öne çıkmaktadır.
İlgili Konular
Sunucu performansı izleme ve izleme altyapısı kurma konusunda daha fazla bilgi edinmek için aşağıdaki rehberler faydalı olacaktır:
- Zabbix ile Sunucu Performansını İzleme Rehberi: Prometheus'a alternatif olarak Zabbix'in nasıl kurulup yapılandırılacağı ve sunucu performansını izlemek için nasıl kullanılacağı anlatılmaktadır.

