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:
- Kaynak Kullanımı: Loki en düşük, Graylog en yüksek
- Kurulum Kolaylığı: Loki en kolay, Graylog en zor
- Özellik Zenginliği: Elasticsearch en zengin, Loki en basit
- 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.