Droplet’leriniz İçin Kapsamlı İzleme Kurulumu Rehberi
Bulut altyapılarında çalışan uygulamaların ve servislerin kesintisiz ve yüksek performanslı bir şekilde çalışması, günümüz dijital dünyasında kritik öneme sahiptir. DigitalOcean Droplet’leriniz, web sitelerinizden API’lerinize, veritabanlarınızdan mikroservislerinize kadar çeşitli iş yüklerini barındırabilir. Bu Droplet’lerin sağlığını, performansını ve kaynak kullanımını sürekli olarak izlemek, olası sorunları proaktif bir şekilde tespit etmek, performansı optimize etmek ve kullanıcı deneyimini iyileştirmek için vazgeçilmezdir. Bu rehberde, DigitalOcean Droplet’leriniz için neden izleme yapmanız gerektiğini, DigitalOcean’ın yerleşik çözümlerini, popüler harici araçları ve özellikle Prometheus ile Grafana kullanarak kapsamlı bir izleme sistemi kurmanın adım adım detaylarını ele alacağız.
Neden İzleme Yapmalıyız?
İzleme, bir sistemin veya uygulamanın davranışını anlamak, sorunları tespit etmek ve performans iyileştirmeleri yapmak için veri toplama ve analiz etme sürecidir. Droplet’leriniz için izleme yapmanın temel nedenleri şunlardır:
Performans Sorunlarını Erken Tespit Etme
CPU kullanımı, bellek tüketimi, disk G/Ç (I/O) ve ağ trafiği gibi temel metrikleri izleyerek, performans düşüşlerini veya darboğazları kullanıcılar etkilenmeden önce fark edebilirsiniz. Örneğin, aniden yükselen CPU kullanımı, bir uygulamanın kaynak sızdırması yaptığını veya beklenenden daha fazla yük altında olduğunu gösterebilir.
Kaynak Kullanımını Optimize Etme
Hangi kaynakların ne kadar kullanıldığını bilmek, Droplet boyutlarını doğru ayarlamanıza yardımcı olur. Gereksiz yere büyük Droplet’ler kullanmak maliyetleri artırırken, yetersiz kaynaklara sahip Droplet’ler performans sorunlarına yol açar. İzleme verileri, kapasite planlaması ve kaynak tahsisi için değerli bilgiler sunar.
Güvenlik Açıklarını İzleme
Anormal ağ trafiği desenleri, başarısız giriş denemeleri veya beklenmedik dosya değişiklikleri gibi güvenlik odaklı metrikler, potansiyel güvenlik tehditlerini veya saldırıları işaret edebilir. İzleme, bu tür anormalliklere karşı erken uyarı sağlayarak müdahale süresini kısaltır.
Uygulama Sağlığını Koruma
Sadece Droplet’in kendisinin değil, üzerinde çalışan uygulamaların da sağlığını izlemek önemlidir. HTTP yanıt süreleri, hata oranları, veritabanı bağlantı havuzu durumu gibi uygulama metrikleri, kullanıcı deneyimini doğrudan etkileyen sorunları ortaya çıkarır.
Kapasite Planlama
Uzun vadeli izleme verileri, trafik artışı veya yeni özelliklerin eklenmesi gibi gelecekteki ihtiyaçlar için kapasite planlaması yapmanızı sağlar. Mevcut kaynakların ne zaman yetersiz kalacağını tahmin ederek, altyapınızı önceden ölçeklendirebilirsiniz.
DigitalOcean’ın Yerleşik İzleme Çözümleri
DigitalOcean, tüm Droplet’leriniz için temel düzeyde izleme yetenekleri sunar. Bu özellikler, Droplet kontrol panelinizden kolayca erişilebilir ve hızlı bir genel bakış için oldukça faydalıdır.
Metrikler
DigitalOcean paneli üzerinden her Droplet için aşağıdaki temel metrikleri grafikler halinde görüntüleyebilirsiniz:
* CPU Kullanımı: İşlemci kullanım yüzdesi.
* Disk G/Ç (I/O): Diske yazılan ve diskten okunan veri miktarı.
* Ağ Trafiği: Droplet’e gelen (inbound) ve Droplet’ten giden (outbound) ağ trafiği.
* Bellek Kullanımı: Kullanılan ve boşta olan bellek miktarı.
Bu metrikler, Droplet’inizin genel sağlığı hakkında anlık bilgi sağlar ve küçük ölçekli projeler veya hızlı kontroller için yeterli olabilir.
Uyarılar (Alerts)
DigitalOcean, belirli metrikler eşik değerleri aştığında size bildirim gönderecek uyarılar ayarlamanıza olanak tanır. Örneğin:
* CPU kullanımı belirli bir yüzdeyi aştığında.
* Bellek kullanımı kritik bir seviyeye ulaştığında.
* Disk alanı belirli bir oranın altına düştüğünde.
Bu uyarılar e-posta veya Slack gibi kanallar aracılığıyla size ulaşabilir. Bu sayede, manuel olarak kontrol etmeye gerek kalmadan önemli olaylardan haberdar olabilirsiniz.
Sınırlamaları
DigitalOcean’ın yerleşik izleme araçları başlangıç için iyi olsa da, daha karmaşık veya büyük ölçekli altyapılar için bazı sınırlamaları vardır:
* Derinlik Eksikliği: Uygulama seviyesinde metrikler veya özel metrikler toplama yeteneği sınırlıdır. Örneğin, belirli bir web uygulamasının yanıt süresini veya veritabanı sorgu hızını izleyemezsiniz.
* Özelleştirme Kısıtlılığı: Uyarı kuralları ve görselleştirme seçenekleri oldukça temeldir. Karmaşık uyarı mantıkları veya özel panolar oluşturmak mümkün değildir.
* Log Yönetimi: Yerleşik izleme, log yönetimi özellikleri sunmaz. Uygulama ve sistem loglarını toplamak, depolamak ve analiz etmek için ayrı çözümlere ihtiyaç duyulur.
* Merkezi Olmayan Yapı: Birden fazla Droplet veya farklı servisleriniz varsa, tüm bu sistemleri tek bir yerden bütüncül bir şekilde izlemek zorlaşabilir.
Bu sınırlamalar nedeniyle, daha kapsamlı ve esnek bir izleme çözümü için harici araçlara yönelmek genellikle daha iyi bir stratejidir.
Harici İzleme Araçları ve Çözümleri
DigitalOcean’ın yerleşik izleme yeteneklerinin ötesine geçmek için birçok güçlü harici araç bulunmaktadır. Bu araçlar, daha derinlemesine metrik toplama, gelişmiş görselleştirme, esnek uyarı sistemleri ve log yönetimi gibi özellikler sunar.
Prometheus ve Grafana
Açık kaynak dünyasının en popüler izleme kombinasyonlarından biridir.
* Prometheus: Zaman serisi verilerini toplamak, depolamak ve sorgulamak için tasarlanmış bir sistemdir. “Pull” tabanlı bir modelle çalışır; yani hedeflerden (Droplet’ler, uygulamalar vb.) metrikleri çeker. Esnek bir sorgu dili (PromQL) ve uyarı yöneticisi (Alertmanager) ile birlikte gelir.
* Grafana: Prometheus gibi çeşitli veri kaynaklarından gelen metrikleri görselleştirmek için kullanılan açık kaynaklı bir platformdur. Zengin pano oluşturma yetenekleri, farklı grafik türleri ve özelleştirilebilir arayüzü ile izleme verilerini anlamlandırmayı kolaylaştırır.
Bu ikili, maliyet etkinliği, esnekliği ve topluluk desteği sayesinde geniş bir kullanım alanına sahiptir.
Datadog
Ticari bir SaaS (Hizmet Olarak Yazılım) izleme platformudur. Sunucular, konteynerler, uygulamalar ve bulut servisleri dahil olmak üzere geniş bir yelpazede entegrasyon sunar. Metrik, log ve APM (Uygulama Performans Yönetimi) yeteneklerini tek bir platformda birleştirir. Geniş özellik seti ve kullanım kolaylığına sahiptir, ancak maliyetli olabilir.
New Relic
Yine ticari bir APM ve izleme platformudur. Özellikle uygulama performansını izleme konusunda güçlüdür. Kod seviyesinde görünürlük, hata analizi, dağıtık izleme ve altyapı izleme gibi özellikler sunar. Büyük ölçekli kurumsal uygulamalar için tercih edilebilir.
Zabbix
Prometheus gibi açık kaynaklı ancak daha geleneksel bir izleme çözümüdür. “Agent” tabanlı bir yaklaşımla çalışır; yani izlenecek her sunucuya bir Zabbix agent kurulur. Metrik, log ve ağ izleme yetenekleri sunar ve oldukça esnek bir yapıya sahiptir. Kurulumu ve yönetimi Prometheus/Grafana’ya göre biraz daha karmaşık olabilir.
Netdata
Hafif ve gerçek zamanlı bir performans izleme aracıdır. Her sunucuya kurulur ve yerel olarak metrikleri toplar, görselleştirir. Düşük kaynak tüketimi ile yüzlerce metriği saniyeler içinde gösterir. Hızlı bir genel bakış için mükemmeldir, ancak merkezi bir depolama veya gelişmiş uyarı yetenekleri için ek entegrasyonlar gerektirebilir.
ELK Stack (Elasticsearch, Logstash, Kibana)
Özellikle log yönetimi ve analizi için kullanılan güçlü bir açık kaynaklı çözümdür.
* Elasticsearch: Logları ve diğer yapılandırılmamış verileri depolamak, aramak ve analiz etmek için kullanılan dağıtık bir arama motorudur.
* Logstash: Çeşitli kaynaklardan logları toplayan, işleyen ve Elasticsearch’e gönderen bir veri işleme pipeline’ıdır.
* Kibana: Elasticsearch’teki verileri görselleştirmek ve sorgulamak için kullanılan bir arayüzdür.
ELK Stack, Droplet’lerinizdeki uygulama ve sistem loglarını merkezi bir yerde toplayarak sorun giderme ve güvenlik analizi için paha biçilmez bilgiler sunar.
Bu rehberde, açık kaynak dünyasının en popüler ve esnek çözümlerinden biri olan Prometheus ve Grafana ikilisini kullanarak Droplet’leriniz için nasıl kapsamlı bir izleme sistemi kuracağınızı adım adım göstereceğiz.
Prometheus ve Grafana ile Kapsamlı İzleme Kurulumu (Adım Adım)
Bu bölümde, DigitalOcean Droplet’lerinizde Prometheus ve Grafana kullanarak nasıl bir izleme altyapısı kuracağınızı detaylı bir şekilde anlatacağız. Genel yaklaşımımız, bir “Monitor Droplet” üzerinde Prometheus ve Grafana’yı çalıştırmak ve izlemek istediğimiz diğer “Hedef Droplet”lere Node Exporter kurarak metrikleri toplamaktır.
Adım 1: Monitor Droplet’i Oluşturma
Öncelikle Prometheus ve Grafana’yı barındıracak ayrı bir DigitalOcean Droplet’i oluşturun. Bu Droplet, izleme altyapınızın kalbi olacaktır.
1. DigitalOcean kontrol panelinize giriş yapın.
2. Yeni bir Droplet oluşturun. Ubuntu 22.04 veya üstü gibi güncel bir Linux dağıtımı tercih edin.
3. Minimum 1 CPU ve 2 GB RAM (Basic Droplet) genellikle başlangıç için yeterlidir, ancak izleyeceğiniz Droplet sayısına ve topladığınız metrik miktarına göre daha büyük bir Droplet seçmeniz gerekebilir.
4. Droplet’inize “monitor-droplet” veya benzeri bir isim verin.
5. SSH anahtarınızı eklediğinizden emin olun.
Droplet oluşturulduktan sonra SSH ile bağlanın:
ssh root@monitor_droplet_ip_adresi
İlk olarak, sisteminizi güncelleyin:
sudo apt update && sudo apt upgrade -y
Adım 2: Prometheus Kurulumu
Şimdi Monitor Droplet’inize Prometheus’u kuralım.
Prometheus Kullanıcısı ve Dizinleri Oluşturma
Güvenlik amacıyla Prometheus’u ayrı bir kullanıcı altında çalıştıracağız:
sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus
Prometheus İndirme ve Kurulumu
Prometheus’un en son kararlı sürümünü indirin. Sürüm numarasını [Prometheus indirme sayfasından](https://prometheus.io/download/) kontrol edebilirsiniz.
# Örnek sürüm numarası, güncel olanı kontrol edin
PROMETHEUS_VERSION="2.49.1"
wget https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz
tar xvf prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz
cd prometheus-${PROMETHEUS_VERSION}.linux-amd64
Prometheus ikili dosyalarını ve konsol şablonlarını sistem dizinlerine taşıyın:
sudo mv prometheus /usr/local/bin/
sudo mv promtool /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool
sudo mv consoles /etc/prometheus
sudo mv console_libraries /etc/prometheus
sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
Prometheus Yapılandırma Dosyası Oluşturma
/etc/prometheus/prometheus.yml dosyasını oluşturun ve aşağıdaki içeriği ekleyin:
sudo nano /etc/prometheus/prometheus.yml
İçerik:
global:
scrape_interval: 15s # Metrikleri ne sıklıkla çekeceğini belirler
scrape_timeout: 10s
Alertmanager yapılandırması (şimdilik boş bırakılabilir)
alerting:
alertmanagers:
- static_configs:
- targets:
# - localhost:9093
Kural dosyaları (şimdilik boş bırakılabilir)
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
Metriklerin çekileceği hedefler
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"] # Prometheus'un kendi metrikleri
# Buraya Node Exporter hedeflerini ekleyeceğiz
# - job_name: "node_exporter_targets"
# static_configs:
# - targets: ["droplet_ip_adresi_1:9100", "droplet_ip_adresi_2:9100"]
Bu dosya, Prometheus’un kendi metriklerini izlemesini sağlar. Daha sonra buraya izlemek istediğimiz diğer Droplet’leri ekleyeceğiz. Dosyayı kaydedin ve kapatın (CTRL+X, Y, Enter).
Prometheus Systemd Servisi Oluşturma
Prometheus’un bir servis olarak çalışmasını sağlamak için bir systemd dosyası oluşturalım:
sudo nano /etc/systemd/system/prometheus.service
İçerik:
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
Dosyayı kaydedin ve kapatın.
Şimdi systemd’yi yeniden yükleyin, Prometheus servisini başlatın ve başlangıçta otomatik başlaması için etkinleştirin:
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
sudo systemctl status prometheus
Servis durumunun active (running) olduğunu kontrol edin.
Prometheus’un web arayüzüne http://monitor_droplet_ip_adresi:9090 adresinden erişebilirsiniz. DigitalOcean güvenlik duvarınızda 9090 portunu açmanız gerekebilir.
Adım 3: Node Exporter Kurulumu (Hedef Droplet’ler İçin)
Node Exporter, Linux sunucularından sistem düzeyinde metrikleri (CPU, bellek, disk, ağ vb.) toplar ve Prometheus’un çekebileceği bir formatta sunar. İzlemek istediğiniz her Droplet’e Node Exporter kurmanız gerekmektedir.
Aşağıdaki adımları izlemek istediğiniz her Hedef Droplet’te tekrarlayın:
Node Exporter Kullanıcısı ve Dizinleri Oluşturma
sudo useradd --no-create-home --shell /bin/false node_exporter
Node Exporter İndirme ve Kurulumu
Node Exporter’ın en son kararlı sürümünü indirin. Sürüm numarasını [Node Exporter indirme sayfasından](https://prometheus.io/download/#node-exporter) kontrol edebilirsiniz.
# Örnek sürüm numarası, güncel olanı kontrol edin
NODE_EXPORTER_VERSION="1.7.0"
wget https://github.com/prometheus/node_exporter/releases/download/v${NODE_EXPORTER_VERSION}/node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64.tar.gz
tar xvf node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64.tar.gz
cd node_exporter-${NODE_EXPORTER_VERSION}.linux-amd64
Node Exporter ikili dosyasını sistem dizinine taşıyın:
sudo mv node_exporter /usr/local/bin/
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
Node Exporter Systemd Servisi Oluşturma
sudo nano /etc/systemd/system/node_exporter.service
İçerik:
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
Dosyayı kaydedin ve kapatın.
Şimdi systemd’yi yeniden yükleyin, Node Exporter servisini başlatın ve başlangıçta otomatik başlaması için etkinleştirin:
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
sudo systemctl status node_exporter
Servis durumunun active (running) olduğunu kontrol edin.
Node Exporter’ın metriklerine http://hedef_droplet_ip_adresi:9100/metrics adresinden erişebilirsiniz.
Güvenlik Duvarı Ayarları
Her Hedef Droplet’te, Prometheus’un metrikleri çekebilmesi için 9100 portunu açmanız gerekir. Sadece Monitor Droplet’inizin IP adresinden gelen bağlantılara izin vermek en güvenlisidir.
sudo ufw allow from monitor_droplet_ip_adresi to any port 9100
sudo ufw enable # Eğer ufw aktif değilse
Adım 4: Prometheus’a Hedef Droplet’leri Ekleme
Monitor Droplet’inize geri dönün ve Prometheus yapılandırma dosyasını güncelleyin:
sudo nano /etc/prometheus/prometheus.yml
scrape_configs bölümüne yeni bir iş ekleyin:
- job_name: "node_exporter_targets"
static_configs:
- targets: ["hedef_droplet_ip_adresi_1:9100", "hedef_droplet_ip_adresi_2:9100"]
labels:
instance: "web_server_01" # İsteğe bağlı etiketler
- targets: ["hedef_droplet_ip_adresi_3:9100"]
labels:
instance: "db_server_01" # Her Droplet'e anlamlı bir isim verin
Her Hedef Droplet’inizin IP adresini ve 9100 portunu targets listesine ekleyin. labels ile Droplet’lerinize açıklayıcı isimler verebilirsiniz, bu Grafana’da faydalı olacaktır.
Dosyayı kaydedin ve Prometheus servisini yeniden başlatın:
sudo systemctl restart prometheus
sudo systemctl status prometheus
Prometheus web arayüzünde (http://monitor_droplet_ip_adresi:9090/targets) hedeflerin UP durumda olduğunu kontrol edin.
Adım 5: Grafana Kurulumu
Şimdi Monitor Droplet’inize Grafana’yı kuralım.
Grafana İndirme ve Kurulumu
Grafana’yı APT deposundan kurmak en kolay yoldur:
sudo apt-get install -y apt-transport-https software-properties-common wget
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana
Grafana Servisini Başlatma
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo systemctl status grafana-server
Servis durumunun active (running) olduğunu kontrol edin.
Grafana’nın web arayüzüne http://monitor_droplet_ip_adresi:3000 adresinden erişebilirsiniz. DigitalOcean güvenlik duvarınızda 3000 portunu açmanız gerekebilir.
Varsayılan kullanıcı adı ve şifre admin/admin‘dir. İlk girişte şifrenizi değiştirmeniz istenecektir.
Adım 6: Grafana’ya Prometheus’u Veri Kaynağı Olarak Ekleme
1. Grafana web arayüzüne giriş yapın.
2. Sol menüden “Connections” -> “Data sources” seçeneğine gidin.
3. “Add new data source” butonuna tıklayın.
4. “Prometheus”u seçin.
5. Ayarlar sayfasında:
* Name: Prometheus (veya istediğiniz bir isim)
* URL: http://localhost:9090 (Prometheus aynı Droplet’te çalıştığı için localhost kullanıyoruz. Ayrı bir Droplet’te olsaydı Prometheus Droplet’inin IP adresini yazacaktık.)
6. “Save & test” butonuna tıklayın. “Data source is working” mesajını görmelisiniz.
Adım 7: Hazır Panoları İçe Aktarma ve Özelleştirme
Grafana, Prometheus Node Exporter metrikleri için birçok hazır pano sunar. Bu panoları içe aktararak hızlıca görselleştirmeye başlayabilirsiniz.
1. Sol menüden “Dashboards” -> “Browse” seçeneğine gidin.
2. “Import” butonuna tıklayın.
3. [Grafana Dashboards](https://grafana.com/grafana/dashboards/) web sitesine gidin ve “Node Exporter Full” gibi popüler bir pano arayın (örneğin, ID: 1860).
4. Pano ID’sini Grafana’daki “Import” ekranına yapıştırın ve “Load” butonuna tıklayın.
5. “Prometheus” veri kaynağınızı seçin ve “Import” butonuna tıklayın.
Artık Node Exporter’dan gelen tüm sistem metriklerini güzel grafiklerle görüntüleyen bir panonuz olmalı. Açılır menülerden izlemek istediğiniz Droplet’i seçebilirsiniz.
İzleme Stratejileri ve En İyi Uygulamalar
Sadece araçları kurmak yeterli değildir; doğru şeyleri izlemek ve bu verileri anlamlandırmak da önemlidir.
Ne İzlemeliyiz?
İzleme stratejinizi belirlerken aşağıdaki popüler metrik gruplarını göz önünde bulundurun:
RED Metrikleri (Rate, Errors, Duration)
Özellikle servisler ve API’ler için kritik öneme sahiptir:
* Rate: Servis tarafından işlenen istek sayısı/saniye.
* Errors: Başarısız olan istek sayısı/saniye.
* Duration: İsteklerin işlenme süresi (gecikme).
USE Metrikleri (Utilization, Saturation, Errors)
Altyapı bileşenleri (CPU, bellek, disk, ağ) için geçerlidir:
* Utilization: Bir kaynağın ne kadar meşgul olduğu (örn. CPU kullanım yüzdesi).
* Saturation: Bir kaynağın ne kadar dolu olduğu ve ek iş yükünü kaldıramayacağı (örn. kuyruk uzunlukları, bellek takası).
* Errors: Kaynakla ilgili hata sayısı (örn. disk hataları, ağ paketi düşmeleri).
Golden Signals (Latency, Traffic, Errors, Saturation)
Google SRE ekibi tarafından önerilen bu sinyaller, kullanıcıya yönelik sistemlerin sağlığını izlemek için temeldir:
* Latency: İstekleri işlemek için geçen süre.
* Traffic: Sisteme gelen talep miktarı (örn. HTTP istek sayısı).
* Errors: Başarısız olan isteklerin oranı.
* Saturation: Sistemin ne kadar dolu olduğu.
Uyarı Mekanizmaları
İzleme verileri, proaktif müdahale için uyarılara dönüştürülmelidir.
* Eşik Değerleri Belirleme: Metriklerin normal davranışını anlayın ve anormal durumu tetikleyecek eşik değerleri belirleyin (örn. CPU > %90, Disk doluluğu > %80, Hata oranı > %5).
* Uyarı Grupları ve Bildirim Kanalları: Uyarıları ilgili ekiplere veya kişilere iletmek için e-posta, Slack, PagerDuty gibi kanallar kullanın. Prometheus’un Alertmanager bileşeni bu konuda oldukça güçlüdür.
* Yanlış Pozitifleri Azaltma: Çok fazla uyarı, “uyarı yorgunluğuna” neden olabilir. Uyarıları, gerçekten müdahale gerektiren durumlara odaklanacak şekilde optimize edin. Geçici yükselmeleri veya beklenen bakım çalışmalarını göz ardı etmeyi öğrenin.
* Runbook’lar Oluşturma: Her uyarı için ne yapılması gerektiğini açıklayan basit runbook’lar (çözüm adımları) hazırlayın. Bu, sorun giderme süresini kısaltır.
Log Yönetimi
Metrikler size “ne” olduğunu söylerken, loglar “neden” olduğunu anlamanıza yardımcı olur.
* Merkezi Log Toplama: Tüm Droplet’lerinizden uygulama ve sistem loglarını merkezi bir konuma (örn. ELK Stack, Loki, Grafana’nın kendi log çözümü) toplayın.
* Log Analizi ve Korelasyonu: Logları anahtar kelimeler, hata kodları veya belirli desenler açısından analiz edin. Metriklerle logları korele etmek, sorunların kök nedenini bulmak için çok güçlü bir yöntemdir. Örneğin, CPU kullanımındaki bir artışla aynı zamana denk gelen belirli bir hata mesajı, sorunun kaynağını hızla işaret edebilir.
Kapasite Planlama
İzleme verileri, gelecekteki ihtiyaçları tahmin etmek için kullanılabilir.
* Trend Analizi: Uzun vadeli metrik verilerini analiz ederek, kaynak kullanımındaki eğilimleri belirleyin.
* Gelecek İhtiyaçları Tahmin Etme: Mevcut büyüme oranlarına göre, Droplet’lerinizin ne zaman daha fazla CPU, bellek veya disk alanına ihtiyaç duyacağını tahmin edin. Bu, altyapınızı proaktif olarak ölçeklendirmenizi sağlar.
Güvenlik İzlemesi
İzleme, güvenlik duruşunuzu güçlendirmek için de kullanılabilir.
* Giriş Denemeleri: Başarısız SSH giriş denemeleri, şüpheli aktiviteyi gösterebilir.
* Güvenlik Duvarı Günlükleri: Güvenlik duvarı reddedilen bağlantıları izleyin.
* Anormallikler: Beklenmedik port açılışları, dosya değişiklikleri veya ağ trafiği desenleri gibi anormallikleri tespit edin.
Maliyet ve Ölçeklenebilirlik Hususları
İzleme altyapısı kurarken maliyet ve ölçeklenebilirlik önemli faktörlerdir.
Ücretsiz/Açık Kaynak vs. Ücretli Çözümler
* Prometheus/Grafana (Açık Kaynak): Başlangıç maliyeti düşüktür (sadece Droplet maliyeti). Ancak kurulum, bakım ve ölçeklendirme için kendi ekibinizin bilgi birikimi ve zamanı gereklidir. Büyük ölçekte kendi altyapınızı yönetmek karmaşıklaşabilir.
* Datadog/New Relic (Ücretli SaaS): Kurulum ve bakım yükü daha azdır. Geniş özellik setleri ve destek sunarlar. Ancak, izlediğiniz Droplet sayısı, topladığınız metrik miktarı ve veri saklama süresine göre maliyetler hızla artabilir.
Kaynak Tüketimi (İzleme Araçlarının Kendisi)
İzleme araçlarının kendisi de CPU, bellek ve disk alanı tüketir. Özellikle Prometheus, topladığı zaman serisi verilerini diske yazar. Yüksek hacimli metrikler topluyorsanız, Monitor Droplet’inizin yeterli kaynağa sahip olduğundan emin olun.
* Prometheus: Metrik saklama süresi (retention) ve metrik sayısına bağlı olarak disk alanı ihtiyacı artar.
* Node Exporter: Çok hafiftir, genellikle kaynak tüketimi ihmal edilebilir düzeydedir.
Veri Saklama Politikaları
Metrik verilerini ne kadar süreyle saklayacağınızı belirleyin. Uzun süreli saklama, trend analizi ve kapasite planlaması için önemlidir, ancak disk alanı maliyetini artırır. Prometheus’ta storage.tsdb.retention.time parametresi ile bu süreyi ayarlayabilirsiniz.
Sonuç
DigitalOcean Droplet’leriniz için kapsamlı bir izleme sistemi kurmak, operasyonel mükemmelliğin temelidir. Bu rehberde ele aldığımız Prometheus ve Grafana ikilisi, açık kaynak dünyasında güçlü, esnek ve maliyet etkin bir çözüm sunar. Adım adım kurulum talimatlarını takip ederek, Droplet’lerinizin performansını, sağlığını ve kaynak kullanımını derinlemesine analiz edebileceğiniz bir altyapı oluşturabilirsiniz.
Unutmayın ki izleme, sürekli bir süreçtir. Sistemleriniz geliştikçe, izlediğiniz metrikleri, uyarı kurallarını ve panoları da gözden geçirmeniz ve güncellemeniz gerekecektir. Doğru izleme stratejileri ve araçlarıyla, Droplet’lerinizde çalışan uygulamalarınızın her zaman en iyi performansta ve güvenli bir şekilde çalıştığından emin olabilirsiniz. Bu, hem maliyet tasarrufu sağlar hem de kullanıcılarınıza kesintisiz bir deneyim sunar.
