Elasticsearch’ün Dayanılmaz Cazibesi

Ertugrul Akbas
3 min readNov 9, 2021

Elasticsearch, Apache Lucene altyapısı üzerinde, Java programlama dili kullanılarak geliştirilmiş bir metin (full text) arama motoru ve analiz aracıdır. Benim gibi log ve SIEM işi ile ilgili herkesin çok yakından bildiği ve sevdiği bir araçtır. Ben de hem profesyonel, hem de akademik olarak üzerinde uzunca süre çalıştım. Çok başarılı ve yaygın bir araçtır.

Bununla birlikte kullanım noktasında avantaj ve dezavantajlarını bilerek hareket etmek gerekir. Ülkemizde geliştirilen Log Yönetimi ve/veya SIEM çözümlerinin 1 tanesi hariç hepsinde bu altyapı mevcuttur. Her ne kadar Gartner’ın meşhur listesinde Elasticsearch ücretsiz sürümü alıp ben SIEM yaptım diyen yok ise de Türkiye gibi Hindistan, Nepal, Çin, Rusya gibi ülkelerde onlarca hatta yüzlerce böyle firma bulmak mümkündür. Ayrıca yüzlerce açık kaynak başka güvenlik aracı da Elasticsearch ücretsiz sürümü kullanır.

Bu tür SIEM lerin tasarımında kullanılan Elasticsearch Veri Tabanı sayesinde büyük veri üzerinde hızlı arama ve analiz yapılmasına olanak sağlar. Bununla birlikte bu olanağı sağlamak için yüzlerce terabyte (TB) disk de kullanmak zorunda kalırsınız. Yani arama hızı ile kullanılan disk arasındaki ilişki üstel fonksiyon şeklindedir. Eğer bu hızlı aramayı son 12 aylık veri için yapmak isterseniz EPS değerine bağlı olarak petabytelarca disk gerekir.

İlginç bir şekilde bu ilişki ElasticSearch ücretsiz sürümü anlatan hiçbir makalede işlenmemekte. Bundan dolayı bu ilişkiyi biraz detaylı inceleyeceğim.

Yukarıda da belirttiğim gibi Apache Lucene altyapısı üzerinde, Java programlama dili kullanılarak geliştirilmiştir ve hızı indeksten gelir.

Apache Lucene’in indekseme için harcayacağı disk miktarı formülü aşağıdadır.

disk space used(original) = 1/3 original for each indexed field + 1 * original for stored + 2 * original per field with term vectors [1]

Elasticsearch ücretsiz sürümü alınıp bunun üzerine ara yüz ve/veya bazı geliştirmeler yaparak ortaya çıkan Elasticsearch türevi uygulamalar temelde yukarıdaki matematiksel formüle bağlıdır. Bu da disk kullanımını doğrudan ilgilendirir.

Benim de çokça haşır neşir olduğum ve dünyada on binlerce mühendisin kullandığı bu güzel açık kaynak aracın diğer bir özelliği de üretici firma tarafından ücretsiz olarak sağlanan bir korelasyon özelliğinin olmamasıdır. Eğer korelasyon özelliği katmak isterseniz ya kendiniz geliştirecek ya da başka başka geliştiriciler tarafından açık kaynak olarak sunulmuş paketlerden birini temel alacaksınız. O zaman da benim yukarıda hız ile disk kullanımı arasındaki ilişkiyi analiz ettiğim gibi her paketin avantaj ve dezavantajlarını analiz etmek gerekir. Örnek vermek gerekirse gerçek zamanlı korelasyonu destek desteklemediği veya korelasyon piramidinde nereye tekabül ettiğine bakmak faydalı olabilir. Bu iki konuda daha önce yazdığım makalelerin linkleri aşağıdadır

Çok popüler olan ve yaygın kullanılan bu güzel aracı her derde deva olarak kabul ederseniz yanılırsınız. Çok güçlü yönleri olduğu gibi bu gücün getirdiği bazı dezavantajlar da vardır. İhtiyacımıza ve problemimizi çözüp çözmediğine bakarak tercihimizi rahatlıkla yapabiliri, çünkü artık elimizde temel konularda yapmamız gereken analizlere dair en azından yol haritamız var.

Referanslar

  1. https://lucidworks.com/post/estimating-memory-and-storage-for-lucenesolr/

--

--