Sobes.tech
Middle

ELK ve EFK esnek yığını hakkında ne biliyorsunuz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Elastic Stack (ELK), merkezi log toplama, analiz ve görselleştirme için araçlar setidir. EFK, Logstash yerine Fluentd kullanarak onun varyantıdır.

ELK Bileşenleri:

  • Elasticsearch: Lucene tabanlı dağıtık arama ve analiz motoru. Logların depolanması, indekslenmesi ve aranması için kullanılır.
  • Logstash: Veri işleme hattı. Farklı kaynaklardan veri alır, filtreler, dönüştürür ve Elasticsearch'e gönderir.
  • Kibana: Elasticsearch'ta depolanan verilerin görselleştirilmesi için web arayüzü. Panolar, grafikler oluşturmayı ve etkileşimli analizler yapmayı sağlar.

Stack genellikle Beats içerir — sunuculardan veri toplamaya yönelik hafif ajanlar (Filebeat loglar için, Metricbeat metrikler için vb.).

EFK Bileşenleri:

  • Elasticsearch: ELK'ye benzer şekilde, depolama ve arama için kullanılır.
  • Fluentd: Açık kaynaklı log toplayıcı. Logstash ile benzer işlevler görür, ancak daha hafif kabul edilir ve daha esnek bir eklenti sistemi vardır. Kubernetes gibi konteyner ortamlarında çok popülerdir.
  • Kibana: ELK'ye benzer şekilde, görselleştirme için kullanılır.

Ana fonksiyonlar ve avantajlar:

  • Logların merkeziyeti: Birden fazla sunucu ve uygulamadan logların tek bir yerde toplanması.
  • Arama ve analiz: Büyük veri hacimleri üzerinde hızlı arama ve karmaşık analizler.
  • İzleme ve uyarı: Trendlerin görselleştirilmesi, anormalliklerin tespiti ve loglara dayalı uyarıların yapılandırılması.
  • Sorun giderme: Olay ve hataların nedenlerini bulmayı hızlandırır.
  • Ölçeklenebilirlik: Tüm bileşenlerin yatay ölçeklenmesi.

Logstash ve Fluentd Karşılaştırması:

Özellik Logstash Fluentd
Mimari JVM tabanlı, monolitik Ruby/C tabanlı, modüler, Ruby eklentileriyle birlikte
Bellek kullanımı Sık sık daha yüksek bellek kullanımı Daha az bellek gerektirir
Performans İyi, ancak ağır olabilir Yüksek yük altında genellikle daha verimli
Ortam Geleneksel sunucu ortamları, VM'ler Özellikle konteyner ortamlarında popüler (Docker, K8s)
Eklentiler Çok sayıda yerleşik eklenti Topluluk tarafından geliştirilmiş çok sayıda eklenti
Yapılandırma Kendi sözdizimi JSON veya YAML

Kullanım örneği:

# Kubernetes'te Docker loglarını toplamak için Filebeat yapılandırma örneği
- module: docker
  containers:
    ids: '*'
    stream: 'stdout' # Sadece stdout loglarını topla
    paths:
      - /var/lib/docker/containers/${data.docker.container.id}/*.log

  processors:
  - add_kubernetes_metadata:
      in_cluster: true # Kubernetes meta verilerini otomatik ekle
# Elasticsearch'e log göndermek için Fluentd yapılandırma örneği
<source>
  @type forward
  port 24224
  bind 0.0.0.0
</source>

<match kubernetes.**>
  @type elasticsearch
  host elasticsearch-logging.default.svc.cluster.local # Elasticsearch adresi
  port 9200
  logstash_format true
  logstash_prefix kubernetes
  <buffer>
    flush_interval 5s
  </buffer>
</match>

ELK ve EFK arasındaki seçim, altyapıya, araç tercihlerine ve performans ile kaynak gereksinimlerine bağlıdır. Konteyner ortamlarında, Fluentd'nin hafifliği ve Kubernetes ile entegrasyonu nedeniyle EFK genellikle tercih edilen seçenektir.