Elasticsearch node cluster yapısı kurulumu

ElasticSearch Java ile geliştirilmiş açık kaynak, lucene tabanlı, ölçeklenebilir bir tam metin(full text) arama motoru ve veri analiz aracıdır. Elasticsearch kullanan büyük şirketlere örnek olarak Mozilla, Foursquare ve GitHub örnek verilebilir. Big data analizinde oldukça başarılı olması ve dağıtık yapıda çalışabilmesi en büyük velinimetlerindendir.

Bu dersimizde dağıtık yapı yani cluster(küme) şeklinde 1 adet master(yönetici) 2 adette node (köle) şeklinde toplam 3 sunucudan oluşan yapı kuracağız.

Benim anlatımımda kullanacağım sistem aşağıdaki gibidir:

 Master elasticsearch:

İşletim sistemi: Ubuntu 16.04

IP: 10.0.0.2

Node 1:

İşletim sistemi: Ubuntu 16.04

IP: 10.0.0.3

Node 2:

İşletim sistemi: Ubuntu 16.04

IP: 10.0.0.4

Özet:

İşlemleri kısaca anlatmak gerekirse ilk önce java kurulumu, sonra port açma, daha sonra elasticsearch kurulumu en son kibana kurulumu ve servislerin başlatılması şeklinde olacaktır.

Adım 1: Java kurulumu

Sırasıyla alttaki kodları 3 sunucumuzda da, yani Master, node 1 ve node 2 de çalıştırıyoruz ve java kurulumlarını gerçekleştiriyoruz.

sudo add-apt-repository -y ppa:webupd8team/java

sudo apt-get update

sudo apt-get -y install oracle-java8-installer

Adım 2: Port açma

Sırası ile altta ki kodları 3 sunucuda da çalıştırıyoruz:

iptables -A INPUT -p tcp –dport 9200 -j ACCEPT
iptables -A INPUT -p tcp –dport 9300 -j ACCEPT

Adım 3: Elasticsearch kurulumu

Sırası ile altta ki kodları 3 sunucuda da çalıştırıyoruz:

sudo wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.4.3/elasticsearch-2.4.3.deb –no-check-certificate

sudo dpkg -i elasticsearch-2.4.3.deb

Alttaki kodlar ile Elasticsearch servisinin başlangıçta çalışmasını ayarlıyoruz.

sudo systemctl enable elasticsearch.service

sudo systemctl daemon-reload

sudo systemctl enable elasticsearch

Adım 4: Elasticsearch konfigrasyonu

Bu adımda 3 sunucumuzda farklı ayarlar yapıyoruz.  ilk önce master ayarlayalım.

Adım 4.1: Master konfigrasyonu:

sudo chmod -R 777 /etc/elasticsearch

sudo nano /etc/elasticsearch/elasticsearch.yml

yukarıda ki kodlar ile yazma izni vererek düzenleme moduna giriyoruz.

cluster.name: sabo
node.name: lmaster
node.master: true
node.data: true
discovery.zen.ping.multicast.enabled: true
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: [“10.0.0.1”, “10.0.0.2”, “10.0.0.3”]

tamamını üstteki kodlar ile değiştiriyoruz.

Adım 4.2: Node1 konfigrasyonu:

sudo chmod -R 777 /etc/elasticsearch

sudo nano /etc/elasticsearch/elasticsearch.yml

yukarıda ki kodlar ile yazma izni vererek düzenleme moduna giriyoruz.

cluster.name: sabo
node.name: node1
node.master: false
node.data: true
discovery.zen.ping.multicast.enabled: false
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: [“10.0.0.1”, “10.0.0.2”, “10.0.0.3”]

tamamını üstteki kodlar ile değiştiriyoruz.

Adım 4.3: Node 2 konfigrasyonu:

sudo chmod -R 777 /etc/elasticsearch

sudo nano /etc/elasticsearch/elasticsearch.yml

yukarıda ki kodlar ile yazma izni vererek düzenleme moduna giriyoruz.

cluster.name: sabo
node.name: node2
node.master: false
node.data: true
discovery.zen.ping.multicast.enabled: false
network.host: 0.0.0.0
discovery.zen.ping.unicast.hosts: [“10.0.0.1”, “10.0.0.2”, “10.0.0.3”]

tamamını üstteki kodlar ile değiştiriyoruz.

Adım 5: Head Plugin kurulumu

Sırası ile altta ki kodları sadece Master sunucuda çalıştırıyoruz.

cd /usr/share/elasticsearch/bin

./plugin install mobz/elasticsearch-head

Adım 6: ElasticSearch başlatma

Tebrikler kurulum işlemini tamamladınız! şimdi de Elasticsearch’ü sırasıyla Master, Node1 ve Node 2 olarak başlatıyoruz:

sudo systemctl start elasticsearch

Kurulumumuzu bitirdik.  Altta ki kodlar ile yeni bir index oluşturup veri ekliyoruz:

curl XPUT ‘localhost:9200/customer?pretty’

curl -XPUT ‘localhost:9200/customer/external/1?pretty’ -d { “name”: “Sabahattin Devrez” }’

hiç bir sorun yaşamadıysak altta ki linkten Cluster’ımızı kontrol edebilirsiniz

http://10.0.0.2:9200/_plugin/head/