CentOS Üzerinde Elasticsearch Cluster Kurulum

Artan veri hacmiyle birlikte, arama işlemlerinin hızlı ve tutarlı biçimde gerçekleştirilmesi artık sistemlerin temel ihtiyaçlarından biri haline geldi. Geleneksel tek sunucu tabanlı çözümler bu yükü taşımakta zorlanırken, Elasticsearch gibi dağıtık sistemler hem performans hem de ölçeklenebilirlik açısından önemli avantajlar sunuyor. Bu yazıda, CentOS tabanlı üç sunucu üzerinde Elasticsearch cluster kurulumu yapacağız.

Adım 1: Mimari Planlama ve Gereksinimlerin Belirlenmesi

Bu kurulumda her biri Elasticsearch node olarak görev yapacak 3 sunucu kullanacağız:
— 192.168.1.10 → node-1
— 192.168.1.11 → node-2
— 192.168.1.12 → node-3

Her node’un birbiriyle iletişim kurabilmesi için /etc/hosts dosyasına aşağıdaki kayıtlar girilmelidir:

192.168.1.10 node-1
192.168.1.11 node-2
192.168.1.12 node-3

Güvenlik Duvarı Ayarları:

firewall-cmd — add-port=9200/tcp — permanent
firewall-cmd — add-port=9300/tcp — permanent
firewall-cmd — reload

Adım 2: Elasticsearch Paketinin Yüklenmesi

Elasticsearch 8.x deposu aşağıdaki komutlarla eklenir ve kurulum gerçekleştirilir:

sudo rpm — import https://artifacts.elastic.co/GPG-KEY-elasticsearch

cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-8.x]
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=1
autorefresh=1
type=rpm-md
EOF

sudo yum install elasticsearch -y

Adım 3: Elasticsearch Yapılandırması (Her Node İçin)

Her node’un konfigürasyon dosyası: /etc/elasticsearch/elasticsearch.yml
Aşağıdaki yapılandırmalar node’ların IP adreslerine göre yapılmalıdır. discovery.seed_hosts ve cluster.initial_master_nodes alanları tüm node’ları içermelidir.

Node 1 (192.168.1.10):

node.name: node-1
network.host: 192.168.1.10
http.port: 9200

cluster.name: elastic-cluster
discovery.seed_hosts: [“192.168.1.10”, “192.168.1.11”, “192.168.1.12”]
cluster.initial_master_nodes: [“node-1”, “node-2”, “node-3”]

xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false

Node 2 (192.168.1.11):

node.name: node-2
network.host: 192.168.1.11
http.port: 9200

cluster.name: elastic-cluster
discovery.seed_hosts: [“192.168.1.10”, “192.168.1.11”, “192.168.1.12”]
cluster.initial_master_nodes: [“node-1”, “node-2”, “node-3”]

xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false

Node 3 (192.168.1.12):

node.name: node-3
network.host: 192.168.1.12
http.port: 9200

cluster.name: elastic-cluster
discovery.seed_hosts: [“192.168.1.10”, “192.168.1.11”, “192.168.1.12”]
cluster.initial_master_nodes: [“node-1”, “node-2”, “node-3”]

xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false

Adım 4: Elasticsearch Servisini Başlatmak

Her node’da aşağıdaki komutlarla Elasticsearch başlatılır:

sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

Servisin çalıştığını doğrulamak için:
curl http://localhost:9200

Adım 5: Cluster Sağlık Kontrolü

Cluster’ın durumunu görmek için herhangi bir node’da şu komutlar çalıştırılabilir:

curl -X GET http://localhost:9200/_cluster/health?pretty

Node’ların listelemesi:
curl -X GET http://localhost:9200/_cat/nodes?v

Sonuç

Bu rehberde, CentOS sunucular üzerinde 3 node’lu bir Elasticsearch cluster kurulumu gerçekleştirdik. Doğru yapılandırılan discovery.seed_hosts ve cluster.initial_master_nodes ayarları sayesinde node’lar birbirini başarılı şekilde tanıyarak küme halinde çalışmaya başladı.

Elasticsearch ile merkezi sistemlerin ötesine geçerek daha esnek, ölçeklenebilir ve yüksek performanslı bir arama altyapısı kurmak artık çok daha erişilebilir. Bu yazıda temel bir 3 node’lu cluster yapısının adım adım nasıl kurulabileceğini ele aldık. Bundan sonraki adımda sisteminize log toplama, izleme ya da güvenlik katmanları ekleyerek Elasticsearch mimarinizi daha da geliştirebilirsiniz.

  • Solutions
  • Technologies
  • Customer Success
  • Company
  • Team