Skip to content
Bloga dön
Teknoloji Sunucu İzleme Monitoring Prometheus Grafana Zabbix Nagios Teknik Blog Groq

Sunucu İzleme Araçlarıyla Proaktif Operasyon: Temel Kavramlar ve Uygulama Örnekleri

Sunucu izleme araçlarının temel prensiplerini, popüler açık kaynak çözümlerini ve gerçek ortamda uygulanabilecek örnek yapılandırmaları anlatan kapsamlı bir rehber.

Caner Serbest

Sistem ve Altyapı

6 dk okuma

Sunucu İzleme Araçlarıyla Proaktif Operasyon: Temel Kavramlar ve Uygulama Örnekleri

Sunucu ortamları büyüdükçe, performans, güvenilirlik ve güvenlik konularına yönelik proaktif bir yaklaşım kaçınılmaz hâle gelir. İzleme, yalnızca bir arıza anında müdahale aracı değil, aynı zamanda kapasite planlaması, güvenlik denetimi ve hizmet seviyesinin (SLA) korunması için de kritik bir bileşendir. Bu makalede, izleme sistemlerinin temel bileşenlerini açıklayacak, popüler açık kaynak çözümlerine (Prometheus, Grafana, Zabbix ve Nagios) kısa bir göz atacak ve gerçek bir Linux sunucu ortamında basit bir izleme zinciri kurmanın adımlarını göstereceğim.


1. İzleme Sisteminin Temel Bileşenleri

  1. Metric Collector (Veri Toplayıcı) – Sunuculardan ve uygulamalardan metrikleri toplar. Örneğin node_exporter (Prometheus) ya da Zabbix agent.
  2. Time‑Series Database (Zaman Serisi Veritabanı) – Toplanan verileri zaman damgasıyla saklar. Prometheus kendi TSDB’sine sahiptir, Zabbix ise MySQL/PostgreSQL gibi bir RDBMS kullanır.
  3. Alerting Engine (Uyarı Motoru) – Belirlenen eşik değerler aşıldığında alarm üretir. Prometheus Alertmanager, Zabbix’in yerleşik alarm sistemi bu işlevi görür.
  4. Visualization (Görselleştirme) – Toplanan metriklerin grafik, tablo veya pano (dashboard) şeklinde sunulması. Grafana, Zabbix UI ve Kibana en çok tercih edilen araçlardır.
  5. Exporters / Plugins (Veri Aktarıcıları) – Uygulama ve hizmetlerin metriklerini standart bir formatta dışa aktarır. Örnek: mysqld_exporter, blackbox_exporter.

Bu bileşenlerin birbirine tutarlı bir şekilde bağlanması, izleme zincirinin sağlıklı çalışmasını garantiler.


2. Popüler Açık Kaynak İzleme Çözümleri

AraçKullanım AlanıÖne Çıkan ÖzellikEn Uygun Senaryo
PrometheusZaman serisi veri toplamaPull‑model, etiket‑tabanlı veri, güçlü sorgu dili (PromQL)Mikro‑servis ve konteyner ortamları
GrafanaGörselleştirmeÇoklu veri kaynağı desteği, dinamik panolarTek bir UI üzerinden farklı TSDB’leri izlemek
ZabbixTam‑entegre izleme platformuAgent‑ve‑proxy mimarisi, otomatik keşif, detaylı alarm kurallarıGeleneksel veri merkezi ve hibrit ortamlar
Nagios CoreServis ve host izlemeModüler yapı, eklenti tabanlı kontrolKüçük ölçekli ortamlar ve özelleştirilmiş scriptler

Bu tablo, farklı senaryolara göre hangi aracın tercih edilebileceğini özetler. Aşağıda, Prometheus + Grafana kombinasyonunu örnek bir yapılandırma üzerinden inceleyeceğiz.


3. Örnek Senaryo: Linux Sunucusunda Prometheus‑Grafana Zinciri

3.1 Gereksinimler

  • Ubuntu 22.04 LTS (ya da CentOS 8) üzerinde bir sanal makine
  • root ya da sudo yetkisi
  • internet erişimi (paket indirme ve dışarıdan metrik toplama için)

3.2 Adım‑Adım Kurulum

3.2.1 Prometheus ve node_exporter kurulumu

# Sistem güncellemesi
sudo apt update && sudo apt upgrade -y

# Prometheus paketini resmi repo üzerinden ekleyelim
sudo apt install -y wget gnupg2
wget -qO - https://packages.prometheus.io/gpg.key | sudo apt-key add -

echo "deb https://packages.prometheus.io/deb stable main" | sudo tee /etc/apt/sources.list.d/prometheus.list
sudo apt update
sudo apt install -y prometheus

# node_exporter'i indir ve çalıştır
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz -O /tmp/node_exporter.tar.gz
sudo tar -xzf /tmp/node_exporter.tar.gz -C /opt
sudo mv /opt/node_exporter-1.7.0.linux-amd64 /opt/node_exporter

# systemd servisi oluştur
sudo tee /etc/systemd/system/node_exporter.service > /dev/null <<'EOF'
[Unit]
Description=Prometheus Node Exporter
After=network.target

[Service]
User=nobody
ExecStart=/opt/node_exporter/node_exporter
Restart=always

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now node_exporter

Bu adımlardan sonra http://<sunucu_ip>:9100/metrics adresinde metrikler erişilebilir olacaktır.

3.2.2 Prometheus yapılandırması

Prometheus’un prometheus.yml dosyasına aşağıdaki job tanımını ekleyin:

# /etc/prometheus/prometheus.yml
global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

Değişiklikleri uygulamak için hizmeti yeniden başlatın:

sudo systemctl restart prometheus

3.2.3 Grafana kurulumu ve veri kaynağı ekleme

# Grafana resmi repo ekleniyor
sudo apt install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo apt update
sudo apt install -y grafana

sudo systemctl enable --now grafana-server

Web tarayıcınızda http://<sunucu_ip>:3000 adresine gidin. Varsayılan kimlik bilgileri admin / admin dir. İlk girişte şifre değiştirmeniz istenecektir.

Grafana UI üzerinden:

  1. Configuration → Data Sources → Add data source
  2. Prometheus seçin.
  3. URL kısmına http://localhost:9090 yazın ve Save & Test ile bağlantıyı doğrulayın.

3.2.4 Basit bir Dashboard oluşturma

Grafana’da Create → Dashboard → Add new panel adımlarını izleyin. Aşağıdaki PromQL sorgularını kullanabilirsiniz:

  • CPU kullanım yüzdesi
    100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
  • Bellek kullanım oranı
    (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100
  • Disk I/O bekleme süresi
    rate(node_disk_io_time_seconds_total[5m])

Bu panoları kaydedip, Share → Snapshot seçeneği ile anlık görüntü alabilirsiniz.


4. Alarm Tanımlama: Alertmanager Kullanımı

Prometheus yalnızca veri toplar; eşik aşıldığında bildirim göndermek için Alertmanager gerekir.

sudo apt install -y alertmanager

/etc/alertmanager/alertmanager.yml dosyasını aşağıdaki gibi düzenleyin (örnek e‑posta alıcısı):

global:
  resolve_timeout: 5m

receivers:
  - name: 'mail'
    email_configs:
      - to: '[email protected]'
        from: '[email protected]'
        smarthost: 'smtp.example.com:587'
        auth_username: '[email protected]'
        auth_password: '******'

route:
  group_by: ['alertname']
  receiver: 'mail'
  repeat_interval: 1h

Prometheus yapılandırmasına Alertmanager entegrasyonu ekleyin:

# /etc/prometheus/prometheus.yml (ekstra bölüm)
alerting:
  alertmanagers:
    - static_configs:
        - targets: ['localhost:9093']

rule_files:
  - "alert.rules.yml"

Şimdi alert.rules.yml içinde basit bir kural tanımlayalım:

groups:
  - name: node_alerts
    rules:
      - alert: HighCPUUsage
        expr: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "CPU kullanımı yüksek ({{ $labels.instance }})"
          description: "CPU kullanımı son 2 dakikada %85'i aştı. Şu anki değer: {{ $value }}"

Yapılandırma dosyalarını kaydedip servisleri yeniden başlatın:

sudo systemctl restart prometheus
sudo systemctl restart alertmanager

Alertmanager UI (http://<ip>:9093) üzerinden aktif alarmları izleyebilir ve geçmiş olayları inceleyebilirsiniz.


5. Zabbix’e Kısa Bir Bakış

Prometheus‑Grafana kombini bulut‑yerel ve konteyner‑ağırlıklı ortamlar için idealdir, fakat klasik veri merkezlerinde hâlâ Zabbix tercih edilir. Zabbix’in öne çıkan özellikleri:

  • Agent‑ve‑Proxy mimarisi: Ağ içinde ve dışındaki cihazları tek bir konsoldan izleme.
  • Otomatik keşif: IP aralıkları üzerinden cihaz bulma ve şablon atama.
  • Detaylı trigger‑ve‑action mekanizması: Birden fazla koşul ve zaman dilimi tanımlayarak karmaşık alarm senaryoları oluşturma.

Zabbix kurulumu, zabbix_server, zabbix_agentd ve zabbix_frontend paketlerini içerir. Kurulum adımları, resmi dokümantasyonda adım‑adım anlatılmıştır; burada sadece temel bir yapılandırma örneği veriyoruz.

# Ubuntu örneği
sudo apt install -y zabbix-server-pgsql zabbix-frontend-php zabbix-apache-conf zabbix-agent

# PostgreSQL veritabanı oluşturma
sudo -u postgres psql -c "CREATE DATABASE zabbix;"
sudo -u postgres psql -c "CREATE USER zabbix WITH PASSWORD 'zabbix_pass';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix;"

/etc/zabbix/zabbix_server.conf içinde DB bağlantı bilgilerini güncelledikten sonra hizmeti başlatın:

sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2

Web arayüzünden (http://<ip>/zabbix) ilk kurulum sihirbazını tamamlayıp, Linux Server şablonunu hostunuza atayın. Şablon, CPU, bellek, disk ve ağ metriklerini otomatik olarak toplar.


6. İzleme Stratejileri ve En İyi Praktikler

  1. Kritik İş Yüklerini Önceliklendirin – Tüm servisleri aynı anda izlemek yerine, iş sürekliliği açısından en önemli uygulamalara alarm eşikleri tanımlayın.
  2. Eşik Değerleri Dinamik Tutun – Tek bir sabit eşik yerine, geçmiş ortalamalar ve trend analizine dayalı anomaly detection yaklaşımları (örnek: Prometheus‑Alertmanager’da for süresi, increase() fonksiyonu) daha az yanlış alarm üretir.
  3. Veri Saklama Süresini Planlayın – TSDB’lerde veri saklama süresi maliyetle doğrudan ilişkilidir. Örneğin, 15‑saniyelik örnekleme ile 30‑günlük saklama, orta ölçekli bir ortam için makul bir dengedir.
  4. Dashboard’ları İşbirliği İçin Paylaşın – Grafana’da team rolü oluşturarak, farklı departmanların kendi panolarını görmesini sağlayın ve tek bir kaynaktan veri tutarlılığı sağlayın.
  5. Kayıt (Log) ve Metrik Entegrasyonu – Metrik bir alarm tetiklendiğinde ilgili logları otomatik olarak çekmek, sorunun kök neden analizini hızlandırır. Loki (Grafana Labs) gibi log toplama çözümleri, Prometheus ile aynı etiket modelini kullanır.

7. Sonuç

Sunucu izleme, yalnızca bir “monitor” kurmak değil, proaktif bir operasyon kültürü oluşturmak demektir. Prometheus‑Grafana, esnek veri toplama ve güçlü görselleştirme sunarken; Zabbix ve Nagios gibi geleneksel araçlar, kapsamlı alarm yönetimi ve otomatik keşif özellikleriyle veri merkezlerinde hâlâ değerli konumdadır.

Bu rehberde, temel bileşenleri, popüler araçları ve gerçek bir Linux sunucu üzerinde adım‑adım bir izleme zinciri kurulumunu gösterdik. Okuyucular, burada elde ettikleri bilgiyle kendi ortamlarına uygun izleme stratejisini belirleyebilir, alarm eşiklerini optimize edebilir ve uzun vadeli operasyonel sürdürülebilirliği sağlayabilir.

İpucu: İzleme sisteminizi kurduktan sonra, düzenli bakım (örneğin TSDB temizleme, dashboard gözden geçirme ve alarm parametrelerini güncelleme) yapmayı unutmayın. Böylece izleme altyapınız zaman içinde yıpranmaz ve gerçek zamanlı farkındalık her zaman korunur.


Bu makale, Caner Serbest’in teknik blog serisinin bir parçası olarak hazırlanmıştır. Daha fazla içerik ve güncel konular için blogu takip etmeyi unutmayın.


Bu yazı Groq ile otomatik oluşturulmuştur.