ElasticSearch 101

Linux sistemleri ve ElasticSearch-5.0.1 version'una göre anlatılmıştır. Bu kılavuz dökümanda hızlıca ElasticSearch kurulumu, WebGui ayarlama ve LogStash ile bir Oracle tablosunu indexleyip sürekli senkronize tutulması anlatılmıştır.


ElasticSearch indirme, config ayarlama ve çalıştırma

Aşağıdaki adresden .tar.gz uzantılı olan indirilir.
  • https://www.elastic.co/downloads/elasticsearch

Tar.gz açıldıktan sonra elasticsearch/config/elasticsearch.yml içinde
  • cluster.name ve node.name kısımlarının yorumları kaldırılıp cluster ve node'nuza bir isim verilir. Ek olarak ElasticSearch için yazılmış web uygulamalarının da çalışmasını istiyorsanız aşağıdaki config'lerde eklenir
    • http.cors.allow-origin: "*"
    • http.cors.enabled: true 

$ /elasticsearch/bin/elasticsearch altındaki çalıştırılabilir program tetiklenir ve aşağıdaki gibi bir çıktı ile karşılaşmanız gerekir eğer tüm ayarlarınız doğruysa


ElasticSearch Web Gui

Şu adresden plugin indirilip bir yere açılır ve index.html açılır. Tıklandığında aşağıdaki sayfa gelecek ve connect'e bastığımızda yukarıda başlattığımız Elasticsearch'ün default port'una bağlanmış olacak.
  • https://mobz.github.io/elasticsearch-head/









LogStash ile OracleDB'den Data Aktarma

ElasticSearch'ün sitesinden logstash indirilip bir yere açılır. 
  • logstash/bin/logstash -f my.conf komutu ile aşağıdaki config verilir ve elastiscsearch'e index'leme başlar. Bu conf, OracleDB'den data indexlemek için kullanılır. Farklı yerlerden data toplamak için ilgili conf örneklerini internetten bulabilirsiniz.
  • Bu conf'un özelliği verilen date için en son timestamp /tmp/logstash-oradb.lastrun altında verilen file'da tutulur böylece tablo sürekli senkron olur ve yeni gelen date'ler sürekli index'lenir.
my.conf içeriği
input {
    jdbc {
        jdbc_validate_connection => true
        jdbc_connection_string => "jdbc:oracle:thin:@10.x.x.80:1522/DB"
        jdbc_user => "username"
        jdbc_password => "password"
        jdbc_driver_library => "/home/x/x/x/ojdbc7.jar"
        jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
        statement => "SELECT * FROM TABLE WHERE DATA_DATE >= :sql_last_value"
        last_run_metadata_path => "/tmp/logstash-oradb.lastrun"
        record_last_run => true
        schedule => "* * * * *"
       }
}
filter {
    
}
output {
    elasticsearch {
index => "myIndexName"
}
}

No comments:

Post a Comment