Software Architecture

Elasticsearch, Grafana Loki, Graylog: Log Yönetimi İçin Hangi Çözüm?

Elasticsearch vs Grafana Loki vs Graylog: Log Yönetimi İçin Hangi Çözüm?

Log yönetimi, modern yazılım geliştirmede kritik bir konudur. Uygulamalarımızın sağlığını izlemek, hataları tespit etmek ve performans sorunlarını analiz etmek için güçlü bir log yönetim sistemi gereklidir. Bu yazıda, en popüler üç log yönetim çözümünü detaylı bir şekilde karşılaştıracağız: Elasticsearch, Grafana Loki ve Graylog.

Genel Bakış

Elasticsearch

Ne? Elasticsearch, güçlü bir arama ve analiz motorudur. Genel amaçlı bir NoSQL veritabanı olarak kullanılabilir ve log yönetimi için ELK Stack (Elasticsearch + Logstash + Kibana) kombinasyonunda kullanılır.

Ne Değil? Doğrudan bir log toplama aracı değildir. Logstash veya Beats gibi araçlarla birlikte kullanılır.

Grafana Loki

Ne? Loki, Prometheus ekosisteminden ilham alınarak geliştirilmiş, hafif ve verimli bir log toplama sistemidir. Label-based indexing yaklaşımı kullanır.

Ne Değil? Tam özellikli bir arama motoru değildir. LogQL ile sorgulama yapılabilir ancak Elasticsearch'in sağladığı full-text search özelliklerine sahip değildir.

Graylog

Ne? Graylog, kurumsal düzeyde log yönetim platformudur. Log toplama, işleme, analiz ve görselleştirme özelliklerini tek bir platformda birleştirir.

Ne Değil? Veri deposu değildir. Arka planda Elasticsearch veya OpenSearch kullanır.

Detaylı Karşılaştırma Tablosu

Özellik Elasticsearch Loki Graylog
Lisans Açık kaynak (ücretsiz) Açık kaynak (ücretsiz) Açık kaynak (ücretsiz)
Enterprise Elastic Stack (ücretli) Grafana Enterprise Graylog Enterprise
Altyapı Maliyeti Yüksek (RAM/disk) Düşük Yüksek (3 sistem)
Kurulum Zorluğu Orta Çok Kolay Zor
Bakım Zorluğu Yüksek Düşük Yüksek
Minimum RAM 2-4 GB 512 MB 4-8 GB
Disk Kullanımı Yüksek (index) Düşük (compressed) Yüksek (ES üzerinden)
CPU Kullanımı Orta-Yüksek Düşük Orta-Yüksek
Bağımlılıklar Yok Yok MongoDB + ES/OS
Bileşen Sayısı 1 1 3+
Öğrenme Eğrisi Yüksek Düşük Orta
Sorgulama Dili Query DSL LogQL Lucene
Arama Özellikleri Çok Güçlü Orta Güçlü
Full-Text Search ✅ Evet ❌ Hayır ✅ Evet
Dashboard Kibana (ayrı) Grafana (ayrı) Built-in
Alerting Kibana/ElastAlert Grafana Alerting Built-in
Log İşleme Logstash gerekir Sınırlı Pipelines (güçlü)
Görselleştirme Kibana Grafana Built-in
Ölçeklenebilirlik Çok İyi İyi Çok İyi
Horizontal Scaling ✅ Evet ✅ Evet ✅ Evet
Real-time Indexing ✅ Evet ✅ Evet ✅ Evet
RESTful API ✅ Evet ✅ Evet ✅ Evet
Client Libraries Çok Fazla Sınırlı Orta
Kurulum Süresi 30-60 dk 5-10 dk 1-2 saat
Yapılandırma Kompleks Basit Orta
Dokümantasyon Çok İyi İyi İyi
Topluluk Desteği Çok Büyük Büyük Orta
Enterprise Support ✅ Var ✅ Var ✅ Var
RBAC ✅ Var (Enterprise) ✅ Var (Grafana) ✅ Var
Audit Logs ✅ Var ❌ Yok ✅ Var
Content Packs ❌ Yok ❌ Yok ✅ Var
Streams/Pipelines Logstash Sınırlı ✅ Built-in
Kullanım Amacı Genel amaçlı arama Sadece loglar Log management
Veri Tipleri Tüm tipler Sadece loglar Sadece loglar
Metrik Desteği Sınırlı Prometheus entegre Sınırlı
Tracing Desteği APM (ücretli) ❌ Yok ❌ Yok
Güvenlik X-Pack (ücretli) Grafana güvenliği Built-in
Backup/Restore Snapshot API Sınırlı ES snapshot
Retention Yönetimi Index lifecycle Sınırlı ES lifecycle
Multi-tenant ✅ Var ✅ Var (Grafana) ✅ Var
Web UI Kibana Grafana Built-in
CLI Araçları ✅ Var ✅ Var ✅ Var
Docker Support ✅ Var ✅ Var ✅ Var
Kubernetes ✅ Var ✅ Var ✅ Var
Windows Support ✅ Var ✅ Var ✅ Var

Mimari Farklılıklar

Elasticsearch

[Uygulamalar] → [Logstash/Beats] → [Elasticsearch] → [Kibana]
  • Avantaj: Genel amaçlı, çok esnek
  • Dezavantaj: Yüksek kaynak kullanımı, kompleks yapılandırma

Loki

[Uygulamalar] → [Promtail] → [Loki] → [Grafana]
  • Avantaj: Basit, hafif, hızlı
  • Dezavantaj: Sadece loglar için, sınırlı arama

Graylog

[Uygulamalar] → [Graylog] → [MongoDB] → [Elasticsearch] → [Graylog UI]
  • Avantaj: Enterprise özellikler, built-in dashboard
  • Dezavantaj: Kompleks kurulum, yüksek kaynak ihtiyacı

Sorgulama Örnekleri

Elasticsearch Query DSL

{
  "query": {
    "bool": {
      "must": [
        { "match": { "message": "error" } },
        { "range": { "@timestamp": { "gte": "now-1h" } } }
      ]
    }
  },
  "aggs": {
    "errors_by_level": {
      "terms": { "field": "level.keyword" }
    }
  }
}

Loki LogQL

{app="eksa_b2b_odeme", env="production"} 
  |= "error" 
  | json 
  | line_format "{{.timestamp}} - {{.message}}"
  | rate(5m)

Graylog Search

message:error AND level:ERROR 
  AND timestamp:[2024-01-01 TO 2024-01-02]

Hangi Çözümü Seçmelisiniz?

Elasticsearch Seçin Eğer:

  • ✅ Full-text search gereksiniminiz varsa
  • ✅ Çok çeşitli veri tipleri (log, metrik, doküman) depolayacaksanız
  • ✅ Karmaşık aggregations ve analizler yapacaksanız
  • ✅ ELK Stack kurulumu yapacaksanız
  • ✅ Yeterli kaynak (RAM/CPU) mevcut

Loki Seçin Eğer:

  • ✅ Sadece log toplama yeterli
  • ✅ Düşük kaynak kullanımı önemli
  • ✅ Basit ve hızlı kurulum istiyorsunuz
  • ✅ Prometheus/Grafana ekosistemini kullanıyorsunuz
  • ✅ Mikroservis mimarisi kullanıyorsunuz
  • ✅ Self-hosted çözüm tercih ediyorsunuz

Graylog Seçin Eğer:

  • ✅ Enterprise log management gereksiniminiz var
  • ✅ Built-in dashboard tercih ediyorsunuz
  • ✅ Gelişmiş log işleme (pipelines, enrichment) gerekiyor
  • ✅ Çok sayıda farklı kaynaktan log toplayacaksanız
  • ✅ RBAC ve audit log gereksinimi var
  • ✅ Content packs ile hazır entegrasyonlar istiyorsunuz

Gerçek Dünya Senaryoları

Senaryo 1: Küçük-Orta Ölçekli Proje

Öneri: Loki

  • Basit kurulum
  • Düşük maliyet
  • Hızlı başlangıç
  • Yeterli özellikler

Senaryo 2: Enterprise Proje

Öneri: Graylog veya Elasticsearch

  • Gelişmiş özellikler
  • Enterprise support
  • Compliance gereksinimleri
  • RBAC ve audit

Senaryo 3: Mikroservis Mimarisi

Öneri: Loki

  • Prometheus entegrasyonu
  • Label-based yaklaşım
  • Düşük overhead
  • Grafana ile görselleştirme

Senaryo 4: Genel Amaçlı Arama ve Analiz

Öneri: Elasticsearch

  • Full-text search
  • Çok çeşitli veri tipleri
  • Güçlü aggregations
  • Esnek yapı

Performans Karşılaştırması

Disk Kullanımı

  • Elasticsearch: Yüksek (index'ler büyük)
  • Loki: Düşük (compressed storage)
  • Graylog: Yüksek (ES üzerinden)

Query Performansı

  • Elasticsearch: Çok hızlı (index'lenmiş veriler)
  • Loki: Hızlı (label-based)
  • Graylog: Hızlı (ES üzerinden)

Kurulum Süresi

  • Elasticsearch: 30-60 dakika
  • Loki: 5-10 dakika
  • Graylog: 1-2 saat

Maliyet Analizi

Açık Kaynak Versiyonlar

  • Elasticsearch: Ücretsiz
  • Loki: Ücretsiz
  • Graylog: Ücretsiz

Enterprise Versiyonlar

  • Elastic Stack: Yıllık $95/GB (log volume'a göre)
  • Grafana Enterprise: Yıllık $8/user
  • Graylog Enterprise: Fiyatlandırma mevcut değil (iletişim gerekir)

Altyapı Maliyeti (Aylık)

  • Elasticsearch: Yüksek (RAM/disk)
  • Loki: Düşük
  • Graylog: Yüksek (3 sistem)

Sonuç ve Öneriler

Her üç çözüm de kendi kullanım senaryolarında mükemmeldir. Seçim yaparken şu faktörleri göz önünde bulundurun:

  1. Kaynak Kullanımı: Loki en düşük, Graylog en yüksek
  2. Kurulum Kolaylığı: Loki en kolay, Graylog en zor
  3. Özellik Zenginliği: Elasticsearch en zengin, Loki en basit
  4. Bakım Gereksinimi: Loki en az, Elasticsearch/Graylog daha fazla

Genel Öneri:

  • Küçük-orta ölçekli projeler için → Loki
  • Enterprise gereksinimler için → Graylog
  • Genel amaçlı arama için → Elasticsearch

Hangi çözümü seçerseniz seçin, doğru yapılandırma ve bakım ile tümü güçlü log yönetim sistemleri sağlayabilir.


Not: Bu karşılaştırma 2024 yılı itibariyle yapılmıştır. Özellikler ve fiyatlandırmalar zamanla değişebilir.