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.