How To Install Elasticsearch

Elasticsearch best practices olarak dedicated serverlar üzerinde çalışmalıdır. Kurulum öncesinde aşağıda bulunan linkten (support matrix) OS ve JVM versiyon uyumlulukları kontrol edilmelidir.  Elastic java ile geliştirildiği için kurulumdan sonra kendi içindeki OpenJDK paketini kullanır. Ancak farklı bir java versiyonu ile çalıştırmak için ES_JAVA_HOME environment variable’ı set edilmelidir. Elasticsearch on-prime dediğimiz kendi data centerlarımızda yer alan sunuculara kurulabileceği gibi, cloud hizmeti alarak da kullanılabilir. (Elastic Cloud)

Elasticsearch için farklı kurulum yöntemleri bulunmaktadır.

  • Redhat-Centos-SLES-OpenSuse gibi rpm based sistemler için RPM paketlerinden kurulum.
  • Linux için tar.gz arşiv dosyasından kurulum.
  • Windows için .zip formatından kurulum.
  • Container image (docker) kurulum.

Bu dökümanda rpm (yum paket yöneticisi) ile redhat sistem üzerine kurulum adımları anlatılmıştır. Diğer kurulum methodları için https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html linkinde yer alan döküman takip edilebilir.

Kurulum Adımları

Linux üzerine elastic kurulumu için elastic rpm paketi https://www.elastic.co/guide/en/elasticsearch/reference/8.5/rpm.html#install-rpm adresinden indirip manuel kurulum yapılabileceği gibi https://www.elastic.co/guide/en/elasticsearch/reference/8.5/rpm.html#rpm-repo adresinden repository ayarları yapılıp yum (dnf) paket yöneticisi ile de yükleme işlemi yapılabilir.

  • /etc/yum.repos.d/ dizini altında elasticsearch.repo adında bir dosya oluşturulur. Daha sonra bu dosyanın içerisine aşağıdaki gibi repo adresi yazılır.

[elasticsearch]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md

  • Repo file oluşturulduktan sonra yum veya dnf komutu ile elasticsearch paketi kurulur.

sudo yum install –enablerepo=elasticsearch elasticsearch 
sudo dnf install –enablerepo=elasticsearch elasticsearch 

  • Elastic 8.5 versiyonu kurulduktan sonra security configürasyonları otomatik olarak yapılmış olarak gelir. Yapılan bu konfigürasyonlar şunlardır;

Authentication and authorization enable edilmiş ve elastic user’ı için bir password oluşturulmuştur.
TLS için sertifika ve key create edilmiştir. Transport ve HTTP katmanları için de bu key ve sertifika kullanılarak TLS konfigürasyonları aktif edilmiştir.

How To Add New Node to Elasticsearch Cluster

Kurulum sonrasında single node bir elastic cluster kurulmuş olur. Kurulan bu clusterı multinode bir cluster haline getirmek için yeni node’ler eklemek gerekir. Yeni node ekleyebilmek için eklenecek node üzerinde elastic servisleri başlatılmadan önce varolan node üzerinde bir enrollment token oluşturulur. Ve bu token ile clustera dahil edilmesi sağlanır.

  • Enrollment Token Oluşturma Adımları

/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node

  • Yeni node üzerinde aşağıdaki komut çalıştırılarak var olan clustera dahil edilmesi için konfigürasyonlar otomatik olarak yapılır.
  • Dikkat edilmesi gereken nokta; Servisler başlatılmadan önce transport.host parametresinin comment out edilmesi gerektiğidir. Bu bilgi official dökümanda yer almamaktadır.

/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node –enrollment-token <enrollment-token>

  • Elasticsearch kurulumundan sonra auto index create özelliği default olarak enable gelmektedir. Bu özellik sayesinde ihtiyaç duyulan bazı sistem indexleri otomatik olarak yaratılır. Eğer bu özellik disable edildi ise action.auto_create_index parametresi aşağıdaki gibi düzenlenerek bu indexlerin otomatik olarak create edilmesine izin verilmelidir.
    action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
Veysel YUKSEL
Latest posts by Veysel YUKSEL (see all)

Veysel YUKSEL

RDBMS ve NoSQL veri tabanı yönetimi ve Big Data teknolojileri.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir