top of page

Elasticsearch


ree

Elasticsearch, “bir indeks”, “bir arama motoru”, “analitik veritabanı”, “büyük veri çözümü” gibi çeşitli tanımlarla açıklanabilir. Elasticsearch, Elastic Stack adı verilen ve giderek büyüyen bir ekosistemle birlikte, web sitesi veya doküman araması, log verilerini toplama ve analiz etme, iş zekası aracı olarak veri analizi ve görselleştirme gibi birçok kullanım durumuna hizmet eder.

Elasticsearch Nedir?

Elasticsearch, Apache Lucene üzerine inşa edilmiş, açık kaynaklı, dağıtık bir arama ve analiz motorudur. JSON isteklerini işleyip JSON verileri geri verebilen bir sunucu olarak düşünülebilir. Elasticsearch, büyük veri hacimlerini hızlı ve neredeyse gerçek zamanlı olarak depolama, arama ve analiz etme yeteneğine sahiptir.

Elasticsearch Nasıl Çalışır?

Elasticsearch, verileri JSON tabanlı dokümanlar halinde organize eder. Dokümanlar, benzer özelliklere sahip belgelerden oluşan indekslerde gruplandırılır. Ters indeks yapısını kullanarak verileri arar ve analiz eder. Dağıtık mimarisi sayesinde, büyük veri setlerinde hızlı ve neredeyse gerçek zamanlı performans sunar.

Temel Kavramlar

  • Dokümanlar: JSON formatında ifade edilen, indekslenebilen temel bilgi birimidir.

  • İndeksler: Benzer karakteristiklere sahip dokümanların koleksiyonudur.

  • Ters İndeks: Kelimeleri doküman konumlarına eşleyen veri yapısıdır.

  • Cluster: Birbirine bağlı bir veya daha fazla düğümden oluşan grup.

  • Node: Kümenin bir parçası olan tek bir sunucu.

  • Shards: İndeksi alt parçalara bölen yapılar.

  • Replicas: İndeksin yedek kopyalarıdır.

Elastic Stack (ELK)

Elasticsearch, Elastic Stack’in merkezi bileşenidir. Elastic Stack, veri toplama, zenginleştirme, depolama, analiz ve görselleştirme için açık kaynak araçlardan oluşur. Bileşenleri:

  • Kibana: Elasticsearch verilerini görselleştiren ve yönetim aracı.

  • Logstash: Verileri toplayan, işleyen ve Elasticsearch’e gönderen sunucu tarafı veri işleme hattı.

  • Beats: Verileri Logstash veya Elasticsearch’e gönderen hafif veri gönderme ajanları.

Elasticsearch Kullanım Alanları

  • Uygulama Araması: Veri erişimi, geri alımı ve raporlaması için arama platformları.

  • Web Sitesi Araması: İçeriği etkili ve doğru şekilde arama.

  • Kurumsal Arama: Doküman, e-ticaret ürünleri, blog, insan araması ve daha fazlası.

  • Log ve Log Analitiği: Log verilerini gerçek zamanlı olarak toplama ve analiz etme.

  • Altyapı Metriği ve Konteyner İzleme: Performans parametrelerini analiz etme.

  • Güvenlik Analitiği: Güvenlik loglarını analiz etme.

  • İş Analitiği: İş analitiği aracı olarak kullanımı.

Şirket Kullanım Durumları

  • Netflix: Müşteri hizmet operasyonlarını ve güvenlik loglarını izlemek ve analiz etmek için Elasticsearch kullanır.

  • eBay: Elasticsearch ile kolay Elasticsearch küme sağlama platformu oluşturdu.

  • Walmart: Müşteri satın alma modellerini, mağaza performans metriklerini ve tatil analitiğini analiz etmek için Elastic Stack’i kullanır.

Windows Üzerinde Elasticsearch Kurulumu için Adım Adım Kılavuz

Arşivi İndir ve Çıkar

  • Elasticsearch 8.14.2 .zip arşivini resmi indirme sayfasından indir.

  • Arşivi istediğiniz bir konuma çıkarın, bu işlem %ES_HOME% olarak adlandırılan bir dizin oluşturur.

Komut Satırı Kurulumu

  • Bir terminal penceresi (Komut İstemi veya PowerShell) açın ve %ES_HOME% dizinine gidin:


cd C:\Path\To\elasticsearch-8.14.2

Sistem İndekslerinin Otomatik Oluşturulmasını Etkinleştir

  • %ES_HOME%\config\ dizininde bulunan elasticsearch.yml yapılandırma dosyasını düzenleyin.

  • Otomatik indeks oluşturma devre dışı bırakılmışsa, aşağıdaki satırı ekleyin:


action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
  • Elasticsearch’u başlatmak için şu komutu çalıştırın:


.\bin\elasticsearch.bat

ree
  • İlk başlangıçta, güvenlik özellikleri otomatik olarak yapılandırılacak ve elastic kullanıcısı için bir şifre ile Kibana için bir kayıt jetonu üretilecektir.

Oluşturulan Şifreyi Kaydet

  • elastic kullanıcısı için oluşturulan şifreyi bir ortam değişkeni olarak saklayın:


$ELASTIC_PASSWORD = "your_password"

Elasticsearch ilk kez başladığında, güvenlik otomatik yapılandırma süreci HTTP katmanını 0.0.0.0'a bağlar, ancak taşıma katmanını yalnızca localhost’a bağlar. Bu, varsayılan olarak güvenlik etkinleştirilmiş tek düğümlü bir kümeyi ek bir yapılandırmaya ihtiyaç duymadan başlatabilmenizi sağlamak için kasıtlı olarak yapılmıştır.

Yeni bir düğümü kaydetmeden önce, üretim kümelerinde localhost dışında bir adrese bağlanma veya bootstrap kontrollerini karşılama gibi ek işlemler genellikle gereklidir. Bu süre zarfında, otomatik olarak oluşturulan bir kayıt belirteci (enrollment token) süresi dolabilir, bu nedenle kayıt belirteçleri otomatik olarak oluşturulmaz.

Ek olarak, aynı ana makinedeki düğümler ek yapılandırma olmadan kümeye katılabilir. Başka bir ana makineden düğümlerin kümenize katılmasını istiyorsanız, taşıma.host (transport.host)’u desteklenen bir değere ayarlamanız gerekir (örneğin, önerilen 0.0.0.0 değerini yorumdan kaldırmak gibi) veya diğer ana makinelerin erişebileceği bir arabirime bağlı bir IP adresi. Daha fazla bilgi için taşıma ayarlarına (transport settings) başvurun.

Yeni düğümleri kümenize kaydetmek için, kümenizdeki mevcut herhangi bir düğümde elasticsearch-create-enrollment-token aracını kullanarak bir kayıt belirteci oluşturun. Ardından, yeni bir düğümü başlatıp — enrollment-token parametresini kullanarak mevcut bir kümeye katılmasını sağlayabilirsiniz.

o anki tokeni almak için bu komutu kulllanabiliriz

bin\elasticsearch-create-enrollment-token.bat — scope kibana
ree

Elasticsearch çalıştırıldığında ayrı bir terminalde, Elasticsearch’ü kurduğunuz dizine gidin ve yeni düğümleriniz için bir kayıt belirteci oluşturmak üzere elasticsearch-create-enrollment-token aracını çalıştırın.

bin\elasticsearch-create-enrollment-token -s node

Yeni düğümlerinizi Elasticsearch kümenizle kaydettirmek için kullanacağınız kayıt tokenini kopyalayın.

Yeni düğümünüzün kurulum dizininden, Elasticsearch’i başlatın ve kayıt tokenini — enrollment-token parametresi ile iletin.

bin\elasticsearch --enrollment-token <kayıt-tokeni>

Elasticsearch otomatik olarak sertifikalar ve anahtarlar oluşturur ve bunları aşağıdaki dizinde saklar:

config\certs

Kaydetmek istediğiniz herhangi bir yeni düğüm için önceki adımı tekrarlayın.

Elasticsearch Durumunu Kontrol Et

  • Elasticsearch’ün çalıştığını doğrulamak için, 9200 portundaki HTTP arayüzüne bir istek gönderin:

curl --cacert %ES_HOME%\config\certs\http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200

  • İsteğin https kullandığından emin olun.

Elasticsearch’u Hizmet Olarak Kur

  • Elasticsearch’u bir hizmet olarak kurarak otomatik başlatma ve arka planda çalışmayı etkinleştirin:

C:\Path\To\elasticsearch-8.14.2\bin\elasticsearch-service.bat install
  • Hizmeti başlatın:

C:\Path\To\elasticsearch-8.14.2\bin\elasticsearch-service.bat start
  • elastic kullanıcısı için şifre oluşturmak için:

C:\Path\To\elasticsearch-8.14.2\bin\elasticsearch-reset-password -u elastic

Elasticsearch’u Komut Satırından Yapılandır

  • Ek yapılandırmalar, -E sözdizimi kullanılarak uygulanabilir:

.\bin\elasticsearch.bat -Ecluster.name=my_cluster -Enode.name=node_1


Notlar

  • Elasticsearch, bilgileri konsola ve %ES_HOME%\logs konumundaki log dosyalarına kaydeder.

  • Elasticsearch’u durdurmak için, çalıştığı terminalde Ctrl-C tuşlarına basın.

  • Daha karmaşık kurulumlar için, düğümleri bir kümeye kaydetme veya JVM ayarlarını değiştirme gibi işlemler için resmi dokümantasyona başvurun.

Örnek Dizin Yapısı

.zip arşivini çıkardıktan sonra dizin yapınız şöyle olmalıdır:

elasticsearch-8.14.2/
│
├── bin/
│   ├── elasticsearch.bat
│   ├── elasticsearch-plugin.bat
│   └── ...
├── config/
│   ├── elasticsearch.yml
│   ├── jvm.options
│   └── ...
├── data/
│   └── ...
├── logs/
│   └── ...
├── plugins/
│   └── ...
└── ...

Faydalı Komutlar

  • Elasticsearch’u Başlat: .\bin\elasticsearch.bat

  • Hizmet olarak kur: .\bin\elasticsearch-service.bat install

  • Hizmeti başlat: .\bin\elasticsearch-service.bat start

  • Hizmeti durdur: .\bin\elasticsearch-service.bat stop

  • Şifre sıfırla: .\bin\elasticsearch-reset-password -u elastic

Kibana Arayüzüne Erişim:

  • Kibana başlatıldıktan sonra, tarayıcınızı açın ve adres çubuğuna http://localhost:5601 yazın.

  • Bu URL’yi ziyaret ettiğinizde, Kibana giriş ekranıyla karşılaşacaksınız.

Token ile Doğrulama:

  • Elasticsearch’i başlattığınızda terminalde oluşturulan kayıt tokenini kopyalayın.

  • Kibana giriş ekranında, “Enrollment Token” veya benzeri bir alan göreceksiniz. Buraya kopyaladığınız kayıt tokenini yapıştırın.

  • Tokeni girdikten sonra, “Connect” veya benzeri bir düğmeye tıklayarak devam edin.

Elasticsearch Arayüzüne Erişim:

ree

  • Kibana, başarılı bir şekilde doğrulandıktan sonra, Elasticsearch arka planında çalışmaya başlayacak ve Kibana arayüzünde Elasticsearch’e erişim sağlayabileceksiniz.

  • Kibana arayüzünden, veri görselleştirmeleri yapabilir, sorgular oluşturabilir ve Elasticsearch kümenizdeki verilere erişebilirsiniz.

Kibana

Kibana, Elasticsearch ile birlikte çalışan güçlü bir veri görselleştirme ve yönetim aracıdır. İşte Kibana’nın temel işlevleri ve Elasticsearch ile nasıl entegre olduğu hakkında bilgi:

Kibana’nın İşlevleri:

Veri Görselleştirme:


Kibana, Elasticsearch’e depolanan verileri görselleştirmek için histograms, çizgi grafikleri, pasta grafikleri ve haritalar gibi çeşitli araçlar sunar.Kullanıcılar, veri görselleştirmeleri oluşturarak verileri analiz edebilir ve önemli içgörüler elde edebilir.

Gerçek Zamanlı Analiz:

Kibana, gerçek zamanlı veri analizine olanak tanır. Elasticsearch’den gelen veriler anlık olarak görselleştirilebilir ve analiz edilebilir.Bu özellik, özellikle log analizi ve altyapı izleme gibi uygulamalarda çok faydalıdır.

Gösterge Tabloları (Dashboards):

Kullanıcılar, çeşitli görselleştirmeleri bir araya getirerek özelleştirilmiş gösterge tabloları oluşturabilirler.Bu tablolar, belirli veri setlerinin genel bir görünümünü sunar ve kullanıcılara verileri daha iyi anlamalarını sağlar.


Arama ve Filtreleme:


Kibana, kullanıcılara Elasticsearch verilerini hızlı ve kolay bir şekilde arama ve filtreleme imkanı tanır.Gelişmiş arama yetenekleri, kullanıcıların belirli verileri hızlı bir şekilde bulmalarına yardımcı olur.


Keşif (Discovery):


Kibana’nın Keşif bölümü, kullanıcılara ham verileri görüntüleme ve analiz etme olanağı sağlar.Bu bölümde, kullanıcılar Elasticsearch’deki indeksleri keşfedebilir ve belirli veri noktalarına odaklanabilir.


Uyarılar ve İzleme:


  • Kibana, kullanıcıların belirli koşullara dayalı olarak uyarılar oluşturmasına olanak tanır.

  • Bu uyarılar, anormal davranışları veya belirli olayları tespit etmek için kullanılabilir.

Kibana ve Elasticsearch Entegrasyonu:

Veri Kaynağı:Kibana, Elasticsearch’ü veri kaynağı olarak kullanır. Elasticsearch’deki indeksler ve belgeler Kibana tarafından analiz edilir ve görselleştirilir.

REST API Kullanımı:Kibana, Elasticsearch ile iletişim kurmak için REST API’lerini kullanır. Bu sayede, veriler üzerinde arama, filtreleme ve analiz işlemleri gerçekleştirilir.

Veri İnceleme:Kibana, kullanıcıların Elasticsearch’deki verileri daha kolay anlamaları ve incelemeleri için çeşitli araçlar sunar. Bu, kullanıcıların veriyle etkileşim kurmasını ve analiz yapmasını kolaylaştırır.


Kurulum


Kibana’yı Windows üzerinde kurmak için .zip paketini kullanabilirsiniz.

Bu paket hem ücretsiz hem de abonelik tabanlı özellikler içerir. Tüm özellikleri denemek için 30 günlük bir deneme süresi başlatabilirsiniz.

En son kararlı sürümü Download Kibana sayfasında bulabilirsiniz. Diğer sürümler için Past Releases sayfasına göz atabilirsiniz.

.zip Paketini İndirme ve Kurma

Kibana v8.14.3 için .zip windows arşivini şu adresten indirin: https://artifacts.elastic.co/downloads/kibana/kibana-8.14.3-windows-x86_64.zip

Favori unzip aracınız ile arşivi açın. Bu işlem, kibana-8.14.3-windows-x86_64 adında bir klasör oluşturur, buna $KIBANA_HOME olarak atıfta bulunacağız. Bir terminal penceresinde $KIBANA_HOME dizinine CD yapın, örneğin:

c:\kibana-8.14.3-windows-x86_64

Kibana’yı Başlatma ve Elasticsearch ile Bağlantı KurmaElasticsearch’i ilk kez başlattığınızda aşağıdaki güvenlik yapılandırması otomatik olarak gerçekleşir:

TLS için taşıma ve HTTP katmanları için sertifikalar ve anahtarlar oluşturulur.TLS yapılandırma ayarları elasticsearch.yml dosyasına yazılır.elastic kullanıcısı için bir şifre oluşturulur.Kibana için bir kayıt tokeni oluşturulur.Sonrasında Kibana’yı başlatabilir ve Kibana’yı Elasticsearch ile güvenli bir şekilde bağlamak için kayıt tokenini girebilirsiniz. Kayıt tokeni 30 dakika boyunca geçerlidir.

Kibana’yı Komut Satırından ÇalıştırmaKibana’yı aşağıdaki gibi komut satırından başlatabilirsiniz:

.\bin\kibana.bat
ree

Varsayılan olarak, Kibana arka planda çalışır, günlüklerini STDOUT’a yazdırır ve Ctrl-C ile durdurulabilir.

Eğer Kibana’yı ilk kez başlatıyorsanız, bu komut terminalinizde benzersiz bir bağlantı linki oluşturur ve Kibana örneğinizi Elasticsearch ile kaydetmeniz için size yönlendirir.

Terminalinizde oluşturulan bağlantıya tıklayarak Kibana’yı tarayıcınızda açın.

Tarayıcınızda, Elasticsearch’i başlattığınızda terminalde oluşturulan kayıt tokenini yapıştırın ve Kibana örneğinizi Elasticsearch ile bağlamak için düğmeye tıklayın.

Elasticsearch’i başlattığınızda oluşturulan elastic kullanıcısı şifresi ile Kibana’ya giriş yapın.

Elastic kullanıcısı için şifreyi sıfırlamanız gerekiyorsa veya diğer yerleşik kullanıcılar için şifre sıfırlama aracını çalıştırın. Kibana veya Elasticsearch düğümleri için yeni kayıt tokenleri oluşturmak için elasticsearch-create-enrollment-token aracını çalıştırın. Bu araçlar Elasticsearch bin dizininde bulunur.


Kibana’yı Yapılandırma


Kibana, varsayılan olarak $KIBANA_HOME/config/kibana.yml dosyasından yapılandırmasını yükler. Bu yapılandırma dosyasının formatı Configuring Kibana’da açıklanmıştır.


.zip Arşivinin Dizin Yapısı


.zip paketi tamamen kendi kendine yeten bir yapıdadır. Tüm dosyalar ve dizinler varsayılan olarak $KIBANA_HOME içindedir — arşivi açarken oluşturulan dizin.

Bu çok kullanışlıdır çünkü Kibana’yı kullanmaya başlamak için herhangi bir dizin oluşturmanıza gerek yoktur ve Kibana’yı kaldırmak $KIBANA_HOME dizinini kaldırmak kadar kolaydır. Ancak, daha sonra önemli verileri silmemek için yapılandırma ve veri dizinlerinin varsayılan konumlarını değiştirmeniz önerilir.

Bu şekilde, Kibana’yı Windows üzerinde kurabilir, başlatabilir ve Elasticsearch ile nasıl entegre edebileceğinizi özetleyebilirim.

Daha fazlası için mediumdan beni takip edebilirsiniz https://songulkizilay.medium.com/


 
 
bottom of page