dullwhaleのメモ帳

何度も同じことを調べなくてよいように...

Elasticsearch 7系を1クラスタ1ノードで動かす場合の設定

小規模なシステムではElasticsearchを1ノードだけで動かすことがある。 その場合に設定しておくべき項目をメモしておく。

設定ファイルは大抵 /etc/elasticsearch/elasticsearch.yml にある。

まず、1ノードでしか動かさないから無駄なディスカバリを無効化する。

discovery.type: single-node

読み取り専用のレプリカシャードは、書き込み可能なプライマリシャードと同じノードに配置できないため、1ノードだけで動かしているのにレプリカシャードが作られるとステータスはYellowになる。

シャードの状況は次のコマンドで確認する。

curl -XGET localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason

レスポンスにr UNASSIGNEDのような文字列があれば、レプリカシャードを作成したが、ノードに割り当てられなかったという上記の状況を表している。 既にレプリカシャードが作られてしまっていたら、次のような手順で削除できる。 ただし、Elasticsearchの負荷が一時的に上昇しダウンタイムが発生するかもしれない

curl -H "Content-Type: application/json" -XPUT localhost:9200/*/_settings -d '{"number_of_replicas":0}'

シャードの状況を再度確認する。

curl -XGET localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason

Discovery and cluster formation settings | Elasticsearch Guide [7.17] | Elastic