Prometheus Nedir ve Neden Kullanılır?
Bir sabah, sistem yöneticisi Ahmet, büyük bir uygulamanın sunucularını izlemek ve performans verilerini toplamak için yeni bir çözüm arayışına girdi. Zaten birçok izleme aracını denemişti ama hepsi bir noktada yetersiz kalıyordu. Ahmet'in aklında bir seçenek vardı: Prometheus. Peki, Prometheus nedir? Neden popülerdir?
Prometheus, açık kaynaklı bir izleme ve uyarı sistemidir. Sadece bir "metrik" toplama aracı olmakla kalmaz, aynı zamanda bu verileri sorgulamak, saklamak ve analiz etmek için oldukça güçlü bir altyapı sunar. Ahmet, "Bu gerçekten ihtiyacım olan şey!" diye düşündü. Artık sistemin her köşesinden veri alabilecek ve anında reaksiyon verebilecekti.
Adım 1: Prometheus'u İndirip Kurmak
Prometheus'un kurulum süreci oldukça basittir. İlk önce Prometheus'un resmi web sitesine gidin ve platformunuza uygun olan sürümü indirin. Bunun için terminalinize şu komutları yazabilirsiniz:
# Prometheus'u indiriyoruz
wget https://github.com/prometheus/prometheus/releases/download/v2.41.0/prometheus-2.41.0.linux-amd64.tar.gz
# Dosyayı çıkartıyoruz
tar -xvzf prometheus-2.41.0.linux-amd64.tar.gz
# Prometheus dizinine geçiyoruz
cd prometheus-2.41.0.linux-amd64/
Prometheus, çok basit bir yapılandırma ile çalışmaya başlar. Ahmet, bu adımları izleyerek, sistemi birkaç dakikada başlatabilir.
Adım 2: Prometheus'u Başlatmak
Prometheus'u çalıştırmaya başlamak için sadece aşağıdaki komutu yazmanız yeterli:
./prometheus --config.file=prometheus.yml
Bu komutla, Prometheus arka planda çalışmaya başlayacak ve varsayılan olarak 9090 numaralı portta erişilebilir hale gelecek. Ahmet, tarayıcısına `http://localhost:9090` yazıp, Prometheus'un görsel arayüzüne girdiğinde, "İşte bu kadar kolay!" dedi.
Adım 3: Yapılandırma Dosyasını Düzenlemek
Prometheus'un temel yapılandırma dosyası `prometheus.yml` dosyasıdır. Bu dosya, Prometheus'un hangi verileri toplayacağına dair talimatlar içerir. Ahmet, dosyayı düzenlemeye karar verdi.
Örneğin, Prometheus'un bir "Node Exporter" aracından sistem metriklerini alması için şu şekilde yapılandırma yapabiliriz:
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['localhost:9100']
Yukarıdaki konfigürasyonla, Prometheus, her 15 saniyede bir `localhost:9100`'daki verileri toplayacaktır. Ahmet, `prometheus.yml` dosyasını kaydedip Prometheus'u yeniden başlatmak için aşağıdaki komutu kullanarak değişiklikleri uyguladı:
./prometheus --config.file=prometheus.yml
Adım 4: Exporter'ları Kullanmak
Prometheus, verileri toplamak için "exporter" adı verilen araçlar kullanır. Ahmet, sistemi daha derinlemesine izlemek için "Node Exporter" kurmaya karar verdi. Bu araç, sunucusunun donanım ve işletim sistemi ile ilgili bilgileri toplar. Node Exporter’ı kurmak için aşağıdaki komutları izledi:
# Node Exporter'ı indiriyoruz
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
# Dosyayı çıkartıyoruz
tar -xvzf node_exporter-1.3.1.linux-amd64.tar.gz
# Node Exporter'ı başlatıyoruz
cd node_exporter-1.3.1.linux-amd64/
./node_exporter
Artık Prometheus, Node Exporter'dan verileri toplamaya başlayacaktır. Ahmet, `localhost:9100` adresine giderek, sistem metriklerini gerçek zamanlı olarak görüntüleyebilecektir.
Adım 5: Verileri Görselleştirmek
Prometheus’un temel amacı sadece veri toplamak değil, aynı zamanda bu veriyi anlamlı hale getirmektir. Grafana gibi araçlarla Prometheus’tan alınan verileri görselleştirebilirsiniz. Ahmet, Grafana'yı kurarak görselleştirme işlemini başlatmaya karar verdi.
Grafana'yı kurmak için şu adımları takip edebilirsiniz:
# Grafana'yı kuruyoruz
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt-get update
sudo apt-get install grafana
Grafana'ya Prometheus'u veri kaynağı olarak eklediğinde, sistemin metriklerini görsel olarak takip edebilecekti.
Adım 6: Uyarıları Yapılandırmak
Prometheus, yalnızca veri toplamakla kalmaz, aynı zamanda verilerin belirli eşikleri aşıp aşmadığını kontrol eder ve size uyarılar gönderir. Örneğin, sunucunun CPU kullanımı %90'ı geçtiğinde size bildirim gönderebilir.
Uyarı kurallarını `prometheus.yml` dosyasına şu şekilde ekleyebilirsiniz:
alerting:
alertmanagers:
- static_configs:
- targets:
- 'localhost:9093'
rule_files:
- "alert.rules"
# alert.rules dosyasındaki bir kural örneği
groups:
- name: example
rules:
- alert: HighCpuUsage
expr: avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) < 0.1
for: 5m
labels:
severity: critical
annotations:
summary: "CPU usage is over 90%"
Bu yapılandırma ile, CPU kullanımı %90'ı geçtiğinde uyarı alırsınız.
Sonuç
Ahmet, Prometheus'u kurup yapılandırmayı başarıyla tamamladı. Artık sisteminin tüm metriklerini gerçek zamanlı izleyebiliyor, performans sorunlarını kolayca tespit edebiliyor ve her şeyin yolunda olduğundan emin olabiliyordu. Prometheus'un güçlü ve esnek yapısı sayesinde, her geçen gün daha verimli bir sistem yönetimi sağlıyordu.