Elasticsearch Cluster Master-Data Node on CentOS7

### การทำ cluster ต้องมี 2 เครื่องขึ้นไปในการทำโดยถ้าแยก data-node ต้องมี master 3 เครื่องขึ้นไป ถ้ามี 3 master สามารถ down ได้ 1 เครื่อง โดยที่ระบบยังทำงานปรกติ

1) Import Elasticsearch PGP Key

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

2) Add Repo Elasticsearch

โดยเข้าไปที่ /etc/yum.repos.d/ สร้างไฟล์ไว้ในนี้ชื่อ elasticsearch.repo แล้วใส่คำสั่งต่อไปนี้ไว้ในไฟล์

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

3) Install elasticsearch

yum install elasticsearch-oss

3) Config Elasticsearch cluster master node

ไปที่ไฟล์ /etc/elasticsearch/elasticsearch.yml แล้วเพิ่มคำสั่งต่อไปนี้ไว้ที่ท้ายไฟล์

** cluster.initial_master_nodes ให้ใช้วิธี

Config Master Node

***cluster.name ต้องเหมือนกันทุกโหนด***

cluster.name: ใส่ชื่อ cluster ที่จะตั้งหรือใส่ชื่อ app
node.name: ชื่อโหนด
node.data: false
node.master: true
network.host: ip-เครื่อง
discovery.seed_hosts: ["ip-master-1","ip-master-2","ip-master-3"]
cluster.initial_master_nodes: ["ip-master-1","ip-master-2","ip-master-3"]

Config Data Node

cluster.name: ใส่ชื่อ cluster ที่จะตั้งหรือใส่ชื่อ app
node.name: ชื่อโหนด
node.data: true
node.master: false
network.host: ip-เครื่อง
discovery.seed_hosts: ["ip-master-1","ip-master-2","ip-master-3"]
cluster.initial_master_nodes: ["ip-master-1","ip-master-2","ip-master-3"]

จากนั้นสั่งรีสตาร์ททีละเครื่อง แล้วเช็คสถานะ cluster ได้จาก command ต่อไปนี้

curl -XGET http://ip:9200/_cluster/health?pretty
curl -XGET http://ip:9200/_cat/nodes?v