Elasticsearch にデータをシステムに割り当てることを許可する

Elasticsearch のデプロイメントにおけるデータの割り当ては、クラスタ割り当ての有効化設定を使用して制御できます。特定の状況では、ユーザーはシステム内のデータの割り当てを一時的に無効にしたり制限したりしたい場合があります。

すべてのデータ割り当てを再許可するのを忘れると、未割り当てのシャードが発生する可能性があります。

すべてのデータを(再)許可するためには、次の手順に従ってください:

シャードを割り当てるためには、シャードの割り当てを制限する設定の値を変更して、すべてのシャードが割り当てられるようにする必要があります。

これを達成するために、システム全体の cluster.routing.allocation.enable クラスタ設定を確認し、設定された値を all に変更します。

Kibana を使用する

  • 1. Elastic Cloud コンソールにログインします。
  • 2. Elasticsearch サービスパネルで、デプロイメントの名前をクリックします。
    デプロイメントの名前が無効になっている場合、Kibana インスタンスが正常でない可能性があります。その場合は、Elastic サポートにお問い合わせください。デプロイメントに Kibana が含まれていない場合は、最初に有効にする必要があります
  • 3. デプロイメントのサイドナビゲーションメニュー(左上隅の Elastic ロゴの下に配置)を開き、**Dev Tools

    Console**に移動します。
    Kibana Console

  • 4. cluster.routing.allocation.enable クラスタ設定を確認します:

Python

  1. resp = client.cluster.get_settings(
  2. flat_settings=True,
  3. )
  4. print(resp)

Ruby

  1. response = client.cluster.get_settings(
  2. flat_settings: true
  3. )
  4. puts response

Js

  1. const response = await client.cluster.getSettings({
  2. flat_settings: "true",
  3. });
  4. console.log(response);

Console

  1. GET /_cluster/settings?flat_settings

応答は次のようになります:

Console-Result

  1. {
  2. "persistent": {
  3. "cluster.routing.allocation.enable": "none"
  4. },
  5. "transient": {}
  6. }
システム内でデータが部分的にまたは完全に割り当てられるかどうかを制御する現在の設定値を表します。
  • 5. 変更して、設定の値を変更し、システム内のすべてのデータが完全に割り当てられるようにします:

Python

  1. resp = client.cluster.put_settings(
  2. persistent={
  3. "cluster.routing.allocation.enable": "all"
  4. },
  5. )
  6. print(resp)

Ruby

  1. response = client.cluster.put_settings(
  2. body: {
  3. persistent: {
  4. 'cluster.routing.allocation.enable' => 'all'
  5. }
  6. }
  7. )
  8. puts response

Js

  1. const response = await client.cluster.putSettings({
  2. persistent: {
  3. "cluster.routing.allocation.enable": "all",
  4. },
  5. });
  6. console.log(response);

Console

  1. PUT _cluster/settings
  2. {
  3. "persistent" : {
  4. "cluster.routing.allocation.enable" : "all"
  5. }
  6. }
allocation.enable システム全体の設定の新しい値は、すべてのシャードが割り当てられるように変更されました。

シャードを割り当てるためには、シャードの割り当てを制限する設定の値を変更して、すべてのシャードが割り当てられるようにする必要があります。

これを達成するために、システム全体の cluster.routing.allocation.enable クラスタ設定を確認し、設定された値を all に変更します。

Python

  1. resp = client.cluster.get_settings(
  2. flat_settings=True,
  3. )
  4. print(resp)

Ruby

  1. response = client.cluster.get_settings(
  2. flat_settings: true
  3. )
  4. puts response

Js

  1. const response = await client.cluster.getSettings({
  2. flat_settings: "true",
  3. });
  4. console.log(response);

Console

  1. GET /_cluster/settings?flat_settings

応答は次のようになります:

Console-Result

  1. {
  2. "persistent": {
  3. "cluster.routing.allocation.enable": "none"
  4. },
  5. "transient": {}
  6. }
システム内でデータが部分的にまたは完全に割り当てられるかどうかを制御する現在の設定値を表します。
  • 2. 変更して、設定の値を変更し、システム内のすべてのデータが完全に割り当てられるようにします:

Python

  1. resp = client.cluster.put_settings(
  2. persistent={
  3. "cluster.routing.allocation.enable": "all"
  4. },
  5. )
  6. print(resp)

Ruby

  1. response = client.cluster.put_settings(
  2. body: {
  3. persistent: {
  4. 'cluster.routing.allocation.enable' => 'all'
  5. }
  6. }
  7. )
  8. puts response

Js

  1. const response = await client.cluster.putSettings({
  2. persistent: {
  3. "cluster.routing.allocation.enable": "all",
  4. },
  5. });
  6. console.log(response);

Console

  1. PUT _cluster/settings
  2. {
  3. "persistent" : {
  4. "cluster.routing.allocation.enable" : "all"
  5. }
  6. }
allocation.enable システム全体の設定の新しい値は、すべてのシャードが割り当てられるように変更されました。