Logstash nedir, nasıl çalışır?

Logstash nedir, nasıl çalışır?

Bu yazımızda biçimi veya karmaşıklığı ne olursa olsun veriyi dinamik olarak ayıklayıp, dönüştürüp, yükleyen popüler ETL araçlarından olan Logstash’ten bahsedeceğiz.
Burcu Koçulu15 Ağu 2022

Günümüzde şirketler, çeşitli türlerde ve boyutta veri toplamaktadırlar. Bu verileri bir sistemden başka bir sisteme taşımak halihazırda zorlu bir iş olup birçok farklı kaynak ve hedef olduğunda işler daha da zorlaşmaktadır. Bu sorunu aşabilmek için ETL (Extract-Transform-Load) araçları, birçok şirket tarafından yoğun bir şekilde kullanılmaktadır. Bu yazıda, popüler ETL(Ayıklama-Dönüştürme-Yükleme) araçlarından olan, Logstash’ten bahsedeceğim. 

 

Log (Günlük Tutma) nedir?

Logstash’i tanıtmadan önce, log nedir ondan kısaca bahsetmek isterim. Log dosyaları, sunucu ya da işletim sisteminde meydana gelen veya diğer yazılımsal olayları kaydeden dosyalardır. Bu dosyalar incelenerek, sistemin çalışması hakkında bilgi edinilebilir. Birçok işletim sistemi, framework ve program log (günlük tutma) sistemi içerir.

 

Logstash nedir?

ELK (Elastic) stack’in (Elasticsearch, Logstash, Kibana) önemli üyelerinden biri olan Logstash, açık kaynaklı bir veri işleme motorudur ve ETL aracıdır. 

 

 

Logstash, log dosyalarına ek olarak xml, html ve csv gibi dosyaları gerçek zamanlı olarak işleyebilir. Aynı zamanda veri manipülasyonu yapılarak, yalnızca gerekli veriler ile çalışılabilir.  Logstash birçok kaynak ve hedefi de desteklemektedir. 

 

Logstash’in çalışma sistemi nasıldır?

Logstash, plugin (eklenti) tabanlı bir bileşendir, yani hangi tür kaynak/hedef sistemlerini desteklediği ve yapabileceği dönüşümler açısından oldukça genişletilebilir bir yapıdadır. 

Logstash, veriyi bir pipeline (veri akış hattı) üzerinde işler.Pipeline”lar, “plugin”lerin birleşimi ile oluşur. Bir Logstash nesnesi -birbirinden bağımsız olan- birden çok pipeline’ı çalıştırabilir. 

 

 

Üç temel plugin kullanılmaktadır: Input (girdi), filter (filtre) ve output (çıktı).

Input (Girdi): Belirli bir kaynaktan veriyi çekmek için kullanılır. Sıkça kullanılan input pluginleri:

  • beats, elasticsearch, file, http, csv, kafka, s3, syslog vb. 
  • Desteklenen tüm input pluginlerinin listesini buradan inceleyebilirsiniz. 

Filter (Filtre): Veri manipülasyonu için kullanılır. İstenmeyen bazı parametrelerin silinmesi, filtreleme, bazı değerlerin veya formatın değiştirilmesi gibi işlemler uygulanabilir. Sıkça kullanılan filter pluginleri: 

  • grok, alter, aggregate, drop, mutate, clone, csv, date vb.
  • Desteklenen tüm filter pluginlerinin listesini buradan inceleyebilirsiniz. 

Output (Çıktı): Hedef sisteme veriyi yüklemek veya göndermek için kullanılır.  

  • file, http, kafka, s3, sqs vb.
  • Desteklenen tüm output pluginlerinin listesini buradan inceleyebilirsiniz.

Aşağıda örnek bir pipeline görmektesiniz. Burada input olarak Filebeat’ten veri çekilip, bu veriler pipeline.log dosyası olarak kaydedilmektedir.

 

 

Veri akış hatları tasarlama, oluşturma ve bunun için gerekli araçlardan biri olan Logstash ile ilgili daha detaylı bilgiye erişmek ve sektörden gerçek veriler ile çeşitli projeler üzerine çalışmak için Miuul Data Engineer Path kariyer yolculuğu programını inceleyebilirsiniz. 

 

Kaynaklar


 

Miuul topluluğunun bir parçası ol!

Abone ol butonuna tıklayarak Miuul'dan pazarlama ve haber içerikleri almayı onaylıyorum.