ElasticSearch Kurulum-1

ELASTICSEARCH

Elasticsearch, Java ile geliştirilmiş, Lucence üzerine kurulu  açık kaynak kodlu bir text arama motoru ve database aracıdır. Veri saklama işini relational olarak değil documented oriented olarak yapar ve elasticsearch bu dökümanları birer JSON objesi olarak tutar. Elasticsearchte REST API kullanılabildiği için her bir JSON objesi http üzerinden gönderilebilir, alınabilir, silinebilir veya query işlemleri uygulanabilir.

Peki elasticsearch bir datayı nasıl saklar?. Bunu anlayabilmek için elasticsearchte kullanılan bazı terimlerin neler olduğunu anlamamız gerekir.

Index: Index elasticsearchte datanın saklandığı yerdir. SQL in databasei gibi görülebilir. Indexlenen her bir data mutlaka JSON objesi olmak zorundadır. Indexlerin isimleri mutlaka unique olmalı ve küçük harflerle belirlenmiş olmalıdır.

  • curl ‘localhost:9200/_cat/indices?v’ komutuyla istenen serverdaki tüm indexlerin isimleri ve boyutları görülebilir.

Type: Typeler indexlerin içersindeki tablolardır. Typeların isimleri mutlaka unique ve küçük harflerle belirlenmiş olmalıdır.

Mapping: Mapping bir datanın elasticsearchte nasıl saklandığı, elasticsearche nasıl aktarıldığının belirtildiği kısımdır. Datanın indexin içerisindeki hangi typea gönderileceği bu typlerin fieldları ve fieldların tutacağı datanın tipi, bu datanın analyze edilip edilmeyeceği gibi şeyler mapping sayesinde belirlenir. Aşağıdaki tabloda ElasticSearch’in data yapısı ile diğer SQl ve MongoDB’nin karşılaştırmasını görebilirsiniz.

db

Kurulum:

Ubuntu üzerinde çalıştığımız için kurulum bu işletim sistemine göre olacak. Öncelikle java versiyonunu kontrol etmeliyiz ve sürüm olarak önerilen 1.7* üzeri olması tercih edilmektedir.

Not: Kontrol için -> sudo java -version

java_version1.8

Yukarıdaki gibi bir çıktı almıyorsanız,

-> sudo apt-get install openjdk-8-jdk   ile kurulum yapabilirsiniz.

  • Daha sonra elasticSearch kurulumu için,

wgethttps://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.5/elasticsearch-2.3.5.tar.gz

elasticsearch

  • İndirdiğimiz dosyayı istediğimiz herhangi bir dizine çıkartıp terminalden dizindeki dosyanın içerisindeki dosyasına gidip /bin/elasticsearch komutu ile elasticsearch’ü çalıştırıyoruz.

elastic search’i root olarak çalıştırdığımız zaman, aşağıdaki gibi hata alıyorsanız,

/bin/elasticsearch scripti içersine ES_JAVA_OPTS=”-Des.insecure.allow.root=true” komutunu eklemeniz yeterlidir.

elasticSearch ile ilgili konfigurasyon değişikliği, cluster gibi ayarları yapabilimeniz için kurulu dizin altında /config/elasticsearch.yml dosyasını nano veya vi gibi editörlerle yapabiliriz.

 

ElasticSearch’de config dosyasında node ismini belirtmezseniz elasticsearch random isimlerle node’lar üretir. İstediğiniz bir node ismini vermek istiyorsanız config dosyası altında yml dosyasını açıp, node.name başındaki  “#” işareti kaldırıp kendinize ait isim verebilirsiniz.

Snip20160809_6

 

 

 

 

 

 

 

ElasticSearch sunucunuza istediğiniz interface’den erişilmesini istiyorsanız aynı config dosyası içerisinde network.host alanını ” 0.0.0.0″ yaparak tüm interface’lerinizden gelen istekleri kabul edebilirsiniz.

Snip20160809_5

Bu aşamalardan sonra /bin/elasticsearch scriptini çalıştırdığımızda, aşağıdaki gibi bir çıktı almamız gerekmektedir ve gördüğünüz gibi node ismi, config dosyası içerisinde tanımladığımız görülecektir.

Snip20160809_1

Bu aşamadan sonra network üzerindeki bir bilgisayarın browser’ından elasticsearch’in default portu 9200 üzerinden http://x.x.x.x:9200 soket açarak bağlanabilirsiniz.

  • Localhostu ve 9200 portunu kullanmak istemiyorsanız. Yine terminalden elasticsearchün bulunduğu dizine gidip config dosyası içerisindeki elasticsearch.yml dosyasından  9200 portunu kendi isteğine göre değiştirebilirsiniz.

 

KİBANA

Kibana elasticsearch ile birlikte çalışan açık kaynak kodlu analiz ve görüntüleme platformudur. Kibana ile elasticsearchün indexlerinde bulunan dataların içerisinde arama yapılabilir, yine bu dataları kibana  kullanarak grafiklere dökebiliriz. Daha sonra bu grafikleri başka projelerinizde kullanmak için kaydebiliriz.

Kurulum:

  • https://www.elastic.co/downloads/kibana adersinden tar uzantılı dosyayı indirin.
  • Daha sonra indirdiğiniz dosyayı istediğiniz dizinin altında çıkartın.
  • Önce elasticsearchünüz çalıştırın.
  • Terminali açıp kibananın bulunduğu dizine gidin. Daha sonra o dosya dizininin altındaki bin dosyasının içine girip ./kibana komutunu çalıştırın.
  • Browserınızdan http://0.0.0.0:5601 adersine girip kibananın çalışıp çalışmadığını kontrol edebilirsiniz.

Default olan 0.0.0.0 adresini ve 5601 portunu config dosyasının içindeki kibana.yml dosyasından değiştirebilirsiniz. Eğer elasticsearchün default adresini ve portunu değiştirdiyseniz yine bu dosyanın içindeki elasticsearch ile ilgili olan default ayarları da değiştirmeniz gerekir.

LOGSTASH

Logstash logları toplayan, işleyen ve elasticsearche aktaran bir üründür. Bir sonraki başlıkta anlatağım beats mantığı ile elasticsearch arasındaki köprü gibi düşünülebilir.

Kurulum:

  • https://www.elastic.co/downloads/logstash adresinden tar. Uzantılı dosyayı indirdikten sonra istediğimiz dizine çıkartıyoruz.
  • Logstash çalıştırırken hangi config dosyası ile çalıştıracağımızı da belirtmemiz gerektiği için çıkarttığınız logstash dosyasının içindeki bin klasöründe config dosyası oluşturmamız gerekiyor. https://www.elastic.co/guide/en/logstash/current/configuration.html adersinden config dosyasının nasıl oluşturulduğuna ve farklı config dosyalarının örneklerine bakabilirsiniz.
  • Daha sonra terminalden /bin klasörünün içerisine girip ./logstash agent –f logstash.conf komutunu çalıştırıyoruz.

 

 

 

BEATS

Beatler logstashin ihtiyacı olan logları ona sağlayan aktarıcılar olarak düşünülebilir. Örneğin Windows event loglarını logstashe aktarmak isterseniz winlogbeat beatini, veya twitterda belli birinin twittlerini okumak isterseniz beatscommunityde bulunan twitterbeatini kullanabilirsiniz. Kendi ürünleriniz için kendi beatslerinizi yazıp logstashinizi  ürünlerinizden çektiğiniz data ile besleyebilirsiniz.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

*