Blogchevron_rightSunucu Yönetimichevron_rightMikroservislerde ELK Stack ile Log Yönetimi Rehberi

Mikroservislerde ELK Stack ile Log Yönetimi Rehberi

S
Serversium
calendar_today17 Mayıs 2026
schedule5 dk okuma
Mikroservislerde ELK Stack ile Log Yönetimi Rehberi

Mikroservis Mimarisinde Log Yönetimi: ELK Stack Kapsamlı Rehber

Mikroservis mimarisi, modern yazılım geliştirme süreçlerinde ölçeklenebilirlik ve esneklik sağlayan popüler bir yaklaşımdır. Ancak bu mimaride onlarca hatta yüzlerce servisin birbirleriyle iletişim kurması, merkezi log yönetimi olmadan kabus haline gelebilir. Bu makalede, mikroservis ortamlarında log yönetimi için en yaygın kullanılan çözüm olan ELK Stack'i detaylı olarak inceleyeceğiz.

Gartner'a göre, kurumsal IT departmanları 2025 yılına kadar günlük üretilen veri miktarını ortalama 25 kat artırmış olacak. Bu veri patruluğu, özellikle dağıtık sistemlerde kritik önem taşımaktadır.

ELK Stack Nedir ve Neden Tercih Edilmeli?

ELK Stack, dört ana bileşenden oluşan açık kaynaklı bir log yönetimi ve analiz platformudur. Bu stack, büyük ölçekli sistemlerde merkezi log toplama, arama ve görselleştirme için endüstri standardı haline gelmiştir.

Elasticsearch, Logstash, Kibana ve Beats bileşenlerinin entegrasyonu, yüksek erişilebilirlik gereksinimleri olan sistemlerde güvenilir bir altyapı sunar.

ELK Stack Bileşenleri ve İşlevleri

1. Elasticsearch: Arama ve İndeksleme Motoru

Elasticsearch, dağıtık ve RESTful bir arama motorudur. JSON formatında belge depolar ve Lucene altyapısı üzerine inşa edilmiştir. Mikroservis loglarını gerçek zamanlı olarak indeksler ve milyarlarca kaydı saniyeler içinde aramanıza olanak tanır.

Temel özellikleri:

  • Tam metin arama yetenekleri
  • Gerçek zamanlı indeksleme
  • Dağıtık mimari ile yatay ölçeklenebilirlik
  • RESTful API desteği
  • Kümeleme (clustering) desteği

2. Logstash: Veri İşleme ve Pipeline

Logstash, log verilerini toplamak, dönüştürmek ve Elasticsearch'e aktarmak için kullanılan ETL (Extract, Transform, Load) aracıdır. Farklı kaynaklardan gelen verileri standartlaştırır ve zenginleştirir.

Logstash pipeline'ı üç aşamadan oluşur: Input → Filter → Output. Bu yapı, ham log verilerinin yapılandırılmış formata dönüştürülmesini sağlar.

Mikroservis ortamında Docker container logları, sistem logları ve uygulama logları için Docker veya Kubernetes entegrasyonları mevcuttur.

3. Kibana: Görselleştirme ve Dashboard

Kibana, Elasticsearch verilerini görselleştirmenize olanak tanıyan web tabanlı bir arayüzdür. Dashboard'lar, grafikler ve tablolar oluşturarak sistem sağlığını monitör etmenizi sağlar.

Kibana'nın sunduğu görselleştirme seçenekleri arasında çizgi grafikleri, pasta grafikleri, haritalar, tablolar ve metrikler bulunur. Anlık uyarı (alerting) sistemi ile kritik olaylardan haberdar olabilirsiniz.

4. Beats: Hafif Veri Toplayıcılar

Beats, Logstash'in yerine veya onunla birlikte kullanılabilen hafif veri toplayıcılardır. Her beats türü farklı veri tiplerini toplamak üzere tasarlanmıştır:

  • Filebeat: Log dosyalarını toplar
  • Metricbeat: Sistem metriklerini toplar
  • Packetbeat: Ağ trafiğini analiz eder
  • Winlogbeat: Windows event loglarını toplar
  • Heartbeat: Uptime monitoring sağlar

Mikroservis Mimarisinde Log Yönetimi Zorlukları

Mikroservis mimarisi, monolitik uygulamalara kıyasla benzersiz log yönetimi zorlukları ortaya çıkarır. Her servis bağımsız olarak çalışır ve kendi loglarını üretir. Bu durum, hata ayıklama ve sistem izleme süreçlerini karmaşıklaştırır.

Dağıtık İzleme (Distributed Tracing)

Mikroservisler arası isteklerin takibi kritiktir. Bir kullanıcı isteği birçok servisten geçer ve her birinin logu ayrı tutulur. Bu durumda,Correlation ID kullanarak isteklerin sonunu başına bağlamak esastır.

OpenTelemetry ve Jaeger gibi araçlar, ELK Stack ile entegre edilerek dağıtık izleme yeteneklerini genişletir. Distributed tracing, veri merkezi ortamlarında performans optimizasyonu için vazgeçilmezdir.

Log Formatı Standartlaştırması

Her mikroservis farklı log formatları üretebilir. JSON formatı, makine tarafından okunabilir ve aranabilir olduğu için standart olarak önerilir. Zorunlu alanlar şunları içermelidir:

  • Timestamp (ISO 8601 formatında)
  • Log seviyesi (DEBUG, INFO, WARN, ERROR)
  • Servis adı
  • Correlation ID
  • Mesaj

ELK Stack Kurulumu ve Yapılandırması

Docker ile ELK Stack Kurulumu

En hızlı başlangıç yöntemi, Docker Compose kullanarak ELK Stack'i ayağa kaldırmaktır. Aşağıdaki docker-compose.yml dosyası temel bir kurulum sağlar:

version: '3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.11.0
    environment:
      - discovery.type=single-node
      - xpack.security.enabled=false
    ports:
      - "9200:9200"
    volumes:
      - elasticsearch-data:/usr/share/elasticsearch/data
  
  logstash:
    image: docker.elastic.co/logstash/logstash:8.11.0
    ports:
      - "5044:5044"
    volumes:
      - ./logstash/pipeline:/usr/share/logstash/pipeline
  
  kibana:
    image: docker.elastic.co/kibana/kibana:8.11.0
    ports:
      - "5601:5601"
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200

volumes:
  elasticsearch-data:

Logstash Pipeline Yapılandırması

Logstash pipeline'ı, log verilerinin nasıl işleneceğini belirler. Aşağıdaki örnek, mikroservis loglarını işlemek için temel bir yapılandırma sunar:

input {
  beats {
    port => 5044
  }
}

filter {
  json {
    source => "message"
  }
  
  mutate {
    add_field => { "servis_adı" => "%{service}" }
  }
  
  date {
    match => [ "timestamp", "ISO8601" ]
  }
}

output {
  elasticsearch {
    hosts => ["elasticsearch:9200"]
    index => "mikroservis-loglari-%{+YYYY.MM.dd}"
  }
}

Bu yapılandırma, gelen JSON loglarını parsed eder, gerekli alanları ekler ve Elasticsearch'e aktarır. PHP-FPM performans ayarları gibi sistem konfigürasyonları da benzer pipeline mantığı ile izlenebilir.

Mikroservis Log Yönetimi En İyi Uygulamaları

1. Yapılandırılmış Loglama (Structured Logging)

Her log kaydı JSON formatında olmalı ve makine tarafından kolayca parse edilebilir olmalıdır. Bu yaklaşım, Logstash filtrelerinin daha etkili çalışmasını sağlar.

{
  "timestamp": "2024-01-15T10:30:00Z",
  "level": "ERROR",
  "service": "odeme-servisi",
  "trace_id": "abc-123-def",
  "message": "Ödeme işlemi başarısız",
  "error_code": "PAYMENT_001",
  "user_id": "user_456"
}

2. Merkezi Log Deposu Kullanımı

Tüm mikroservisler loglarını merkezi ELK Stack'e göndermelidir. Bu, tek bir noktadan tüm sistemi izlemeyi mümkün kılar. Merkezi depolama, felaket kurtarma planlaması için de kritiktir.

3. Log Seviyelerinin Doğru Kullanımı

Log seviyeleri tutarlı şekilde kullanılmalıdır:

  • DEBUG: Geliştirme ortamında detaylı bilgi
  • INFO: Normal operasyonel olaylar
  • WARN: Potansiyel sorunlar
  • ERROR: Hatalar ve istisnalar

4. Retansiyon Politikaları

Elasticsearch'de log verilerinin ne kadar süre saklanacağı belirlenmeli ve Index Lifecycle Management (ILM) yapılandırılmalıdır. Önerilen politikalar:

  • Sıcak (Hot): Son 7 gün - aktif yazma ve okuma
  • Ilık (Warm): 7-30 gün - daha az okuma, daha az kaynak
  • Soğuk (Cold): 30-90 gün - arşiv amaçlı saklama
  • Silme (Delete): 90+ gün - otomatik temizleme

ELK Stack Alternatifleri ve Karşılaştırması

ELK Stack dışında farklı log yönetimi çözümleri de mevcuttur. İşte en popüler alternatiflerin karşılaştırması:

Özellik ELK Stack Graylog Splunk Loki
Lisans Apache 2.0 GPLv3 Proprietary Apache 2.0
Kurulum Kolaylığı Orta Kolay Kolay Kolay
Ölçeklenebilirlik Çok Yüksek Yüksek Çok Yüksek Orta
Maliyet Ücretsiz Ücretsiz/Ücretli Yüksek Ücretsiz
Grafana Entegrasyonu Var Var Var Native

According to a 2024 survey by DevOps.com, %67 of organizations using microservices prefer ELK Stack for log management due to its flexibility and extensive ecosystem. Splunk is preferred in enterprise environments where premium support is required.

Grafana Loki: Hafif Alternatif

Grafana Loki, Prometheus ekibi tarafından geliştirilen ve Grafana ile native entegrasyon sunan bir log aggregation sistemidir. Daha az kaynak tüketir ancak Elasticsearch kadar gelişmiş arama yetenekleri sunmaz. Küçük ölçekli mikroservis deployment'ları için idealdir.

Performans Optimizasyonu

Elasticsearch Performans İpuçları

Yüksek hacimli mikroservis ortamlarında Elasticsearch performansı kritiktir:

  1. Doğru shard sayısı: Her index için shard sayısı, beklenen veri hacmine göre belirlenmeli. Genel kural, her shard'ın 30-50GB'ı geçmemesidir.
  2. Index template yapılandırması: Mapping'ler önceden tanımlanarak dinamik mapping'in performans etkisi azaltılmalıdır.
  3. Document bundling: Küçük log eventleri yerine, birkaç log satırını birleştiren batch işleme tercih edilebilir.
  4. Hardware requirements: Minimum 8GB RAM ve SSD depolama önerilir. Production ortamları için kaliteli sunucu altyapısı kritiktir.

Logstash Performans Ayarları

Logstash throughput'unu artırmak için:

  • Pipeline workers sayısını CPU core sayısına göre ayarlayın
  • Batch size ve queue ayarlarını optimize edin
  • Gerekli olmayan filtreleri kaldırın
  • Memory queue yerine persistent queue kullanın

Güvenlik

library_booksBenzer İçerikler

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber
Sunucu Yönetimi
calendar_today5 Nisan 2026
schedule5 dk

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber

Cloud sunucular, dinamik kaynak dağıtımıyla işletmelerin kesintisiz büyümesini sağlar. Avantajlardan karşılaştırmalara tüm detaylar bu rehberde yer alıyor.

S
Serversiumarrow_forward
Linux vs Windows Sunucu: Hangisi Projeye Uygun?
Sunucu Yönetimi
calendar_today6 Nisan 2026
schedule5 dk

Linux vs Windows Sunucu: Hangisi Projeye Uygun?

Linux ve Windows Sunucu arasındaki teknik farkları, maliyet avantajlarını ve proje uyumluluğunu detaylı olarak karşılaştırıyoruz. Yazılım stack'inize en uygun işletim sistemini seçmek için kapsamlı rehberimizle doğru altyapı kararını verin.

S
Serversiumarrow_forward
Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber
Sunucu Yönetimi
calendar_today16 Nisan 2026
schedule5 dk

Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber

Ubuntu 24 üzerinde Plesk kurulumunu adım adım öğrenin. Bu rehberde sistem gereksinimleri, kurulum adımları ve temel yapılandırma ayarlarını bulabilirsiniz.

S
Serversiumarrow_forward