Elasticsearch Kullanımı

Dokümanın hazırlanmasındaki katkılarından dolayı Mustafa Tek arkadaşımıza teşekkür ederiz.

Elasticsearch Nedir?

Elasticsearch, Apache Lucene altyapısından geliştirilmiş, hafif, kolay kurulan, açık kaynak kodlu, ücretsiz, ölçeklendirilebilen bir arama motorudur. Java tabanlı olarak geliştirilen Elasticsearch Restful API üzerinden hizmet vermekte, 3.part görsel araçları ve güvenlik seçenekleri ile çok hızlı ve kullanışlıdır. Restful API üzerinden hizmet verdiği için tüm programlama dilleri ile kullanılabilmektedir. Hem Windows Hem Linux işletim sistemlerinde kolayca çalışabilir.

Veritabanımızla elasticsearch uygulamasını senkronize halde kullanabilmek için river yapısı bulunmaktadır. Ancak, river yapısına artık destek verilmemesinden dolayı bu ihtiyaç için logstash ürününü kullanmaya karar verdik.

Logstash Nedir?

Uygulamanız ve Elasticsearch arasında adeta köprü görevi gören bir yazılımdır.

Logstash farklı kanallardan veri toplayıp, konfigürasyon seviyesinde filtrelerle belirli kurallara göre parçalamanızı sağlayan ve farklı tipterde kanallara dağıtabilen gerçek zamanlı ve açık kaynaklı bir veri toplama moturudur.

Logstash, ayrıştırma işlemini kendi komut seti içerisinde klasik regex eşleştirmeleri ile yapabildiği gibi LOGLEVEL, TIMESTAMP_ISO8601, DATETIME.. gibi ön tanımlı çok sayıda veri tipleriyle de kolayca yapabilmenizi sağlar.

Kurulum İşlemleri

İndirmeniz gerekenler;

Java SDK Kurulumu

Java kurulumu sonrası JAVA_HOME ayarını yapıyoruz.

worddav9fd2e4832aac682ccc1b8f3af93b4d3d.png

Elasticsearch Kurulumu

Elasticsearch kurulumu sonrası servisi kurmak için powershell den aşağıdaki komutu çalıştırıyoruz.

worddav558f00bec07c78c9a32c68944cd756f4.png

Sonrasında servisi başlatmak için  .\elasticsearch-service manager komutunu çalıştırıp “Start” a basıyoruz.
worddav2855bec8d7bdeef26e13377f1a26d77e

Sonrasında elasticsearch uygulamasına erişim var mı diye kontrol etmek için tarayıcımızdan http://127.0.0.1:9200 adresine gidiyoruz.

worddavdf232c30f21c2c11692cb148d878a893

Logstash Kurulumu

Logstash zip dosyası indirilip açılarak uygun bir yere kopyalanır. Ardından bin klasörü içerisinde logstash.conf dosyası oluşturulur.

Logstash konfigürasyon dosyası, json benzeri bir yapıya sahiptir. Konfigürasyon dosyası 3’e ayrılır. InputFilter ve Output.

Konfigürasyon dosyası, veri kaynaklarının tanımlandığı input{}, işleme tanımlamalarının yapıldığı filter{} ve işlenen verinin aktarılacağı kaynaklarla ilgili tanımlamaların yapıldığı output{} olmak üzere üç bölümden oluşur.

input {
    # Bu bölümde logstash i besleyecek veri kaynakları
    # ve veri kaynaklarının opsiyonları ile ilgili
    # ayarlar yeralır.
}
filter {
    # Bu bölümde gelen verinin nasıl parse edileceği,
    # verinin hangi bölümünün hangi alanlarda tutulacağı
    # gibi tanımlamalar yeralır.
}
output {
    # Burada işlenen verinin hangi kaynaklara aktarılacağı
    # ve kaynakların ayarları ile ilgili tanımlamalar yeralır.
}

PostgreSQL için aşağıdaki şekilde bir konfigürasyon yeterli oluyor. Burada input alanına belirttiğimiz sql sonucu outpu alanındaki elasticsearch alanını dolduruyor.

1

Bu konfigürasyon bir defalık elasticsearch’e aktarım yapıyor. İsterseniz schedule ayarı yaparak belli aralıklarda index’in güncellenmesini sağlayabilirsiniz.

 

Uygulamanın sürekli ayakta kalabilmesi için windows servis olarak sisteme ekleyebiliriz. Bunun için nssm uygulamasını kullanacağız. https://nssm.cc/ adresinden uygulamayı indirip aşağıdaki komutu çalıştırıyoruz.

C:\nssm-2.24-101\win64\nssm install Logstash

Ardından çıkan ekranda aşağıdaki bilgileri kullanıyoruz.

2

Path: C:\Users\hp\Desktop\logstash-5.6.3\bin\logstash.bat
Startup directory: C:\Users\hp\Desktop\logstash-5.6.3\bin
Arguments: --path.config "C:\Users\hp\Desktop\logstash-5.6.3\bin\logstash.conf" --path.logs "C:\Users\hp\Desktop\logstash-5.6.3\logs" --config.reload.automatic

İlişkili servisi elasticsearch seçiyoruz.

3

“Install Service” diyoruz, servisimizin başarıyla eklendiği mesajını alıyoruz.

Sonuç

Kurulum işlemlerimiz bittikten sonra index_adi/doküman_adi/id şeklinde kayıtlara erişebiliyoruz.

4

Reklamlar