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.
Elasticsearch Kurulumu
Elasticsearch kurulumu sonrası servisi kurmak için powershell den aşağıdaki komutu çalıştırıyoruz.
Sonrasında servisi başlatmak için .\elasticsearch-service manager komutunu çalıştırıp “Start” a basıyoruz.
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.
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. Input, Filter 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.
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.
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.
Ardından çıkan ekranda aşağıdaki bilgileri kullanıyoruz.
İlişkili servisi elasticsearch seçiyoruz.
“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.
Originally published on November 10, 2017.