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.
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.
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, 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ı).
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.
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:
Hedef sisteme veriyi yüklemek veya göndermek için kullanılır.
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