irfo
Moderatör
- Katılım
- 7 Ocak 2026
- Mesajlar
- 290
- Tepkime puanı
- 2
- Puanları
- 18
Modern sistemler karmaşıklaştıkça, "Sistemim çalışıyor mu?" sorusu yerini "Sistemim neden bu şekilde davranıyor?" sorusuna bıraktı. DevOps dünyasında birbirinin yerine sıkça kullanılan ancak aralarında felsefi ve teknik farklar bulunan iki kritik kavram vardır: Monitoring (İzleme) ve Observability (Gözlemlenebilirlik).
Kısaca özetlemek gerekirse; Monitoring bize bir şeylerin ters gittiğini söyler, Observability ise o şeyin neden ters gittiğini anlamamızı sağlar.
Monitoring, sistemin sağlığını önceden belirlenmiş metrikler üzerinden takip etme sürecidir. Genellikle "bilinen bilinmeyenlere" (known-unknowns) odaklanır. Yani neyin bozulabileceğini tahmin eder ve o noktaları izlersiniz.
Observability, sistemin dış çıktılarından (loglar, metrikler, izler) yola çıkarak sistemin iç durumunu ne kadar iyi anlayabildiğinizin bir ölçüsüdür. "Bilinmeyen bilinmeyenlere" (unknown-unknowns) odaklanır. Hiç tahmin etmediğiniz bir hata türü ortaya çıktığında, eldeki verilerle sorunun köküne inebilme yeteneğidir.
Bir sistemi gerçekten "gözlemlenebilir" kılmak için şu üç veri türünün bir arada olması gerekir:
Sisteminizi izlemeye başlamak için basit bir Prometheus konfigürasyonu şu şekilde görünebilir:
Monitoring, sistemin stabil kalması için gereken temel bir ihtiyaçtır; Observability ise karmaşık sistemlerde hayatta kalabilmek için geliştirilmiş bir yetenektir. Bir DevOps mühendisi için sadece dashboardlara bakmak yeterli değildir; verileri birbiriyle ilişkilendirerek sistemin ruhunu okuyabilmek gerekir.
Kısaca özetlemek gerekirse; Monitoring bize bir şeylerin ters gittiğini söyler, Observability ise o şeyin neden ters gittiğini anlamamızı sağlar.
Monitoring (İzleme) Nedir?
Monitoring, sistemin sağlığını önceden belirlenmiş metrikler üzerinden takip etme sürecidir. Genellikle "bilinen bilinmeyenlere" (known-unknowns) odaklanır. Yani neyin bozulabileceğini tahmin eder ve o noktaları izlersiniz.
- [] Odak Noktası: Dashboardlar, eşik değerleri (thresholds) ve alarmlar. [] Cevap Aradığı Soru: "Sistem ayakta mı?", "CPU kullanımı %90'ı geçti mi?", "Veritabanı erişilebilir mi?"
- Araçlar: Zabbix, Nagios, Prometheus (temel seviye).
Observability (Gözlemlenebilirlik) Nedir?
Observability, sistemin dış çıktılarından (loglar, metrikler, izler) yola çıkarak sistemin iç durumunu ne kadar iyi anlayabildiğinizin bir ölçüsüdür. "Bilinmeyen bilinmeyenlere" (unknown-unknowns) odaklanır. Hiç tahmin etmediğiniz bir hata türü ortaya çıktığında, eldeki verilerle sorunun köküne inebilme yeteneğidir.
- [] Odak Noktası: Bağlam (context), olaylar arası ilişki ve derinlemesine analiz. [] Cevap Aradığı Soru: "Neden sadece belirli bir bölgedeki kullanıcılar ödeme hatası alıyor?", "Bu mikro servis neden rastgele aralıklarla yavaşlıyor?"
- Araçlar: Grafana, New Relic, Datadog, Jaeger.
Temel Farklar Tablosu
| Özellik | Monitoring (İzleme) | Observability (Gözlemlenebilirlik) |
|---|---|---|
| Amacı | Sorunu tespit etmek (Ne?) | Sorunu açıklamak (Neden?) |
| Veri Tipi | Metrik odaklı (Sayısal) | Log, Metrik ve Trace (Üç sütun) |
| Yaklaşım | Reaktif (Alarm sonrası müdahale) | Proaktif (Davranış analizi) |
| Hedef Kitle | Operasyon ekipleri | Geliştiriciler ve SRE ekipleri |
Gözlemlenebilirliğin Üç Sütunu (The Three Pillars)
Bir sistemi gerçekten "gözlemlenebilir" kılmak için şu üç veri türünün bir arada olması gerekir:
- [] Metrics (Metrikler): Zaman içindeki sayısal değişimler. (Örn: Saniyedeki istek sayısı). [] Logs (Günlükler): Sistemde gerçekleşen tekil olayların metin kayıtları. (Örn: "X kullanıcısı giriş yapamadı").
- Traces (İzler): Bir isteğin mikro servisler arasındaki tüm yolculuğunun takibi.
Örnek: XenForo Sunucusu İçin Prometheus Metrik Yapılandırması
Sisteminizi izlemeye başlamak için basit bir Prometheus konfigürasyonu şu şekilde görünebilir:
YAML:
global: scrape_interval: 15s # Her 15 saniyede bir veri topla
scrape_configs:
job_name: 'xenforo_server' static_configs:
targets: ['localhost:9100'] # Node Exporter adresi
job_name: 'mysql_monitor' static_configs:
targets: ['localhost:9104'] # MySQL Exporter adresi
Sonuç
Monitoring, sistemin stabil kalması için gereken temel bir ihtiyaçtır; Observability ise karmaşık sistemlerde hayatta kalabilmek için geliştirilmiş bir yetenektir. Bir DevOps mühendisi için sadece dashboardlara bakmak yeterli değildir; verileri birbiriyle ilişkilendirerek sistemin ruhunu okuyabilmek gerekir.