CentOS Stream 9
Sponsored Link

Elastic Stack 8 : Elasticsearch クラスターを構成する
2022/12/09
 
Elasticsearch クラスターを構成します。
当例では 3 ノード構成で Elasticsearch クラスターを設定します。
Elasticsearch クラスターではノード毎に役割が設定可能ですが、当例では 各ノードそれぞれが、デフォルト設定の Master Eligible Node 兼 Data Node として設定します。
ノードの役割については公式サイトを参照ください。
⇒ https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html

[1]
[2] 1 台目のノードで、Elasticsearch を起動して、認証トークンを発行しておきます。
[root@node01 ~]#
vi /etc/elasticsearch/elasticsearch.yml
# 17行目 : コメント解除して変更 (任意のクラスター名)

cluster.name:
elastic-cluster
# 56行目 : コメント解除して変更 (全てリスンする)

network.host:
0.0.0.0
[root@node01 ~]#
systemctl enable --now elasticsearch
[root@node01 ~]#
/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node

eyJ2ZXIiOiI4LjUuMyIsImFkciI6WyIxMC4wLjAuNTE6OTIwMCJdLCJmZ3IiOiJjNjk2ZGIyMmFjMmY4Y2U2ZWQ4NTBjMTQ5ODMyN2VmNmE3ZmNiMDZiMjIzOTNlNTIxMjEwNTgyMzg0NjA3NTRkIiwia2V5IjoiVXVHODlZUUJCeElZUm9NSlBEMmk6YUFyT1E4V05SME9qZTJGY2hiZGtJUSJ9
[3] 全ノードで、Firewalld を有効にしている場合は、サービスポートの許可が必要です。
[root@node01 ~]#
firewall-cmd --add-port={9200/tcp,9300/tcp}

success
[root@node01 ~]#
firewall-cmd --runtime-to-permanent

success
[4] 2 台目以降のノードで、1 台目のノードで発行した認証トークンを指定して、クラスターに参加します。
[root@node02 ~]# /usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token \
eyJ2ZXIiOiI4LjUuMyIsImFkciI6WyIxMC4wLjAuNTE6OTIwMCJdLCJmZ3IiOiJjNjk2ZGIyMmFjMmY4Y2U2ZWQ4NTBjMTQ5ODMyN2VmNmE3ZmNiMDZiMjIzOTNlNTIxMjEwNTgyMzg0NjA3NTRkIiwia2V5IjoiVXVHODlZUUJCeElZUm9NSlBEMmk6YUFyT1E4V05SME9qZTJGY2hiZGtJUSJ9
This node will be reconfigured to join an existing cluster, using the enrollment token that you provided.
This operation will overwrite the existing configuration. Specifically:
  - Security auto configuration will be removed from elasticsearch.yml
  - The [certs] config directory will be removed
  - Security auto configuration related secure settings will be removed from the elasticsearch.keystore
Do you want to continue with the reconfiguration process [y/N]y

[root@node02 ~]#
vi /etc/elasticsearch/elasticsearch.yml
# 17行目 : コメント解除して変更 (1 台目と同じクラスター名)

cluster.name:
elastic-cluster
# 56行目 : コメント解除して変更 (全てリスンする)

network.host:
0.0.0.0
[root@node02 ~]#
systemctl enable --now elasticsearch
[5] 設定後はクラスターの状態を確認し、以下のように [status] が [green] 且つ ノードの数が設定数分の数値になっていれば OK です。
[root@node01 ~]#
curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt https://node01.srv.world:9200/_cat/nodes?v

Enter host password for user 'elastic':
ip        heap.percent ram.percent cpu load_1m load_5m load_15m node.role   master name
10.0.0.52           30          97   2    0.00    0.04     0.02 cdfhilmrstw -      node02.srv.world
10.0.0.51           37          96   1    0.16    0.06     0.05 cdfhilmrstw *      node01.srv.world
10.0.0.53           25          97   5    0.06    0.07     0.02 cdfhilmrstw -      node03.srv.world

[root@node01 ~]#
curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt https://node01.srv.world:9200/_cluster/health?pretty

Enter host password for user 'elastic':
{
  "cluster_name" : "elastic-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 3,
  "number_of_data_nodes" : 3,
  "active_primary_shards" : 2,
  "active_shards" : 4,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}
関連コンテンツ