ご利用の Alibaba Cloud Elasticsearch クラスターが完全に稼働しているかどうかを確認し、対応が必要な未割り当てのシャードを特定するために、Cluster health API を実行します。
前提条件
作業を開始する前に、次の要件を満たしていることを確認してください。
-
Elasticsearch クラスター。詳細については、「Elasticsearch クラスターの作成」をご参照ください。
クラスターのヘルスステータスの確認
-
ご利用の Elasticsearch クラスターの Kibana コンソールにログインします。詳細については、「Kibana コンソールへのログイン」をご参照ください。
-
左側のナビゲーションウィンドウで、[Dev Tools] をクリックします。
-
[Console] タブで、次のコマンドを実行します。
GET /_cluster/health成功した応答は、次の例のようになります。
{ "cluster_name" : "es-cn-45xxxxxxxxxxxxk1q", "status" : "green", "timed_out" : false, "number_of_nodes" : 2, "number_of_data_nodes" : 2, "active_primary_shards" : 18, "active_shards" : 36, "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 } -
statusフィールドを確認して、クラスターのヘルスステータスを判断します。greenの場合は、特に操作は必要ありません。yellowまたはredの場合は、他の操作を実行する前に影響を受けたインデックスを回復させてください。ステータス シャードの割り当て状況 運用上の影響 greenすべてのプライマリシャードおよびレプリカシャードが割り当て済み クラスターは完全に稼働中 yellowすべてのプライマリシャードは割り当て済みですが、1 つ以上のレプリカシャードが未割り当て クラスターは稼働していますが、完全な冗長性が確保されていません。パスワード変更やクラスター構成のスペックアップなどの操作が完了するまでに通常より時間がかかります red1 つ以上のプライマリシャードが未割り当て 一部のデータが利用できません
黄色のクラスターの復旧
クラスターは、レプリカシャードを割り当てられない場合に yellow 状態になります。これは通常、設定されたレプリカ数が「利用可能なノード数-1」を超えることが原因です。たとえば、クラスターに 3 つのノードがあり、あるインデックスがプライマリシャードあたり 3 つのレプリカシャードを持つように設定されている場合、すべてのレプリカシャードを割り当てることができず、クラスターは yellow になります。
影響を受けたインデックスを特定して修正するには、次の手順を実行します。
-
すべてのインデックスのステータスを照会し、未割り当てのレプリカシャードを持つインデックスを特定します。
curl -u <username>:<password> http://<host>:9200/_cat/indices出力結果で、
yellowステータスのインデックスを探します。このインデックスには未割り当てのレプリカシャードがあります。
-
影響を受けたインデックスのレプリカ数を、ノード数-1 を超えないように減らします。
curl -XPUT -u <username>:<password> http://<host>:9200/<index-name>/_settings -H 'Content-Type: application/json' -d '{"index":{"number_of_replicas":(<number-of-nodes - 1>)}'たとえば、クラスターに 3 つのノードがある場合は、
number_of_replicasを2に設定します。次のプレースホルダーを置き換えてください。
プレースホルダー 説明 <username>Kibana のユーザー名 <password>Kibana のパスワード <host>ご利用のクラスターのエンドポイント <index-name>未割り当てのレプリカシャードを持つインデックスの名前 <number-of-nodes - 1>ご利用のクラスター内のデータノード数から 1 を引いた値
number_of_replicas を更新後のノード数に合わせて調整してください。レプリカ数をクラスター規模と同期させることで、信頼性と安定性が向上します。