小規模なシステムでは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