Elasticsearch Nedir ve Neden Cluster Kurulumu Yapmalısınız?
Elasticsearch, tüm verinizi tek bir noktada toplayan ve bunları hızlıca sorgulamanızı sağlayan bir yazılımdır. Ancak, verileriniz zamanla büyüdükçe, tek bir makine ile bu veriyi yönetmek imkansız hale gelir. Burada devreye Elasticsearch Cluster girer. Elasticsearch Cluster, birden fazla düğümün (node) bir araya geldiği bir yapıdır. Bu yapı, büyük veri kümelerini daha hızlı işlemenize ve daha güvenli bir şekilde saklamanıza olanak tanır.
Elasticsearch Cluster Kurulumu İçin Gereksinimler
Elasticsearch Cluster kurulumuna başlamadan önce bazı ön gereksinimlere göz atalım. İlk olarak, Elasticsearch'ün en son sürümüne sahip olmalısınız. Bu sürümü resmi web sitesinden indirip, her bir node için kurulum yapmanız gerekecek.
Adım 1: Elasticsearch'ü İndirip Kurun
Her şeyden önce, Elasticsearch'ün en son sürümünü [resmi web sitesinden](https://www.elastic.co/downloads/elasticsearch) indirin. Ardından, her bir sunucuya (veya node’a) Elasticsearch kurulumunu gerçekleştirebilirsiniz. İşte temel kurulum komutları:
# Elasticsearch'u indirin
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.x.x-linux-x86_64.tar.gz
tar -xvzf elasticsearch-8.x.x-linux-x86_64.tar.gz
cd elasticsearch-8.x.x
# Elasticsearch'i başlatın
./bin/elasticsearch
Her bir node için bu adımları uygulayın. Bu işlemi tamamladıktan sonra, her bir node’un çalıştığını doğrulamak için `curl` komutunu kullanabilirsiniz.
curl -X GET "localhost:9200/"
Eğer her şey yolundaysa, Elasticsearch size bir JSON cevabı verecek.
Adım 2: Cluster Konfigürasyonu
Şimdi sıra geldi Elasticsearch Cluster’ınızı yapılandırmaya. Her bir node’un hangi cluster’a ait olduğunu belirlemek için `elasticsearch.yml` dosyasını düzenlemeniz gerekecek. Bu dosya, Elasticsearch'ün ayarlarını yapılandırmanıza olanak sağlar.
Dosyanın bulunduğu klasöre gidin ve düzenleme işlemini yapın:
cd /path/to/elasticsearch/config
nano elasticsearch.yml
Burada, birkaç önemli ayar yapacağız:
1. Cluster adı: Tüm node’ların aynı cluster içinde olabilmesi için ortak bir isim kullanmalıyız.
2. Node adı: Her node’a benzersiz bir isim atayacağız.
3. Network host: Elasticsearch’ün hangi IP üzerinden çalışacağını belirleyeceğiz.
4. Zen-düğüm keşfi: Cluster’a ekleyeceğiniz tüm node’ları birbirleriyle iletişim kurmasını sağlamak için kullanacağız.
İşte örnek bir yapılandırma:
cluster.name: "my-cluster"
node.name: "node-1"
network.host: 0.0.0.0
discovery.seed_hosts: ["node-1-ip", "node-2-ip", "node-3-ip"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
Yukarıdaki ayarlar ile, üç farklı node’dan oluşan bir cluster kurmuş olacağız. Her node’un IP adreslerini ve adlarını doğru bir şekilde belirtmeniz çok önemli. Yapılandırmayı tamamladıktan sonra, Elasticsearch’ü yeniden başlatın.
./bin/elasticsearch -d
Adım 3: Elasticsearch Cluster'ı Test Etme
Cluster kurulumunun başarılı olup olmadığını test etmek için aşağıdaki komutu kullanabilirsiniz:
curl -X GET "localhost:9200/_cluster/health?pretty=true"
Eğer her şey doğru şekilde yapılandırılmışsa, aşağıdaki gibi bir çıktı alacaksınız:
{
"cluster_name" : "my-cluster",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 5,
"active_shards" : 15,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"current_tasks" : 0,
"active_primary_shards_percent_as_number" : 100.0
}
Bu, cluster’ınızın başarılı bir şekilde kurulduğunu ve her şeyin doğru çalıştığını gösterir.
Adım 4: Veritabanı ve Veri Yükleme
Artık cluster’ınız çalışıyor, ancak verileri nasıl yükleyeceksiniz? Elasticsearch'e veri eklemek için `index` oluşturmanız gerekecek. İşte basit bir örnek:
curl -X POST "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
{
"title": "Elasticsearch'e Giriş",
"content": "Bu yazıda Elasticsearch Cluster kurulumunu öğreneceğiz."
}
'
Bu komut, “my_index” adlı bir index oluşturur ve içine bir belge ekler. Yüklediğiniz verileri ardından Elasticsearch üzerinden sorgulayabilirsiniz.
Sonuç
Ve işte bu kadar! Elasticsearch Cluster kurulumunu tamamladık. Artık verilerinizi hızlı bir şekilde sorgulama ve analiz etme konusunda güçlü bir altyapıya sahipsiniz. Cluster kurulumuyla, büyük veri kümeleriyle daha verimli çalışabilir ve sistemi ölçeklendirebilirsiniz.
Elasticsearch Cluster, büyük ölçekli verilerinizi çok daha yönetilebilir ve verimli hale getirecek. Unutmayın, her node'u ayrı bir fiziksel ya da sanal sunucuda çalıştırmak, daha güvenilir ve hızlı bir sistem oluşturmanıza yardımcı olacaktır. Başlangıçta karmaşık görünebilir, ancak adım adım gittiğinizde her şeyin ne kadar kolay olduğunu göreceksiniz.