Elasticsearch:クラスタ運用次元共通API


一、ノードディスク水位線https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cluster.html#disk-based-shard-allocation、ESのデフォルトはdataノードディスクの使用空間状況に応じて新しいshardsを割り当てるか、ノード上の既存のshardsを他のノードに移行する.
  • cluster.routing.allocation.disk.watermark.low:ESがディスク使用率がこの値を超えるノードに新しいshardsを割り当てないことを意味し、動的調整をサポートし、デフォルトの85%または;
  • curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/_cluster/settings -d '{"transient" : {"cluster.routing.allocation.disk.watermark.low":"85%"}}'
  • cluster.routing.allocation.disk.watermark.high:ESがディスク使用率がこの値を超えるノードに対してshardsを移動または再割り当てすることを意味し、動的調整をサポートし、デフォルトでは90%です.
  • curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/_cluster/settings -d '{"transient" : {"cluster.routing.allocation.disk.watermark.high":"90%"}}'
  • cluster.routing.allocation.disk.watermark.flood_ステージ:ESは、ディスク使用率がこの値を超えるノードのすべてのインデックスに読み取り専用(index.blocks.read_only_allow_delete)を設定し、新しいデータの書き込みを拒否し、動的調整をサポートします.デフォルトは95%です.
    curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/_cluster/settings -d '{"transient" : {"cluster.routing.allocation.disk.watermark.flood_stage":"95%"}}'

    2、以上の3つのノードのディスク使用率を制御するパラメータもパーセンテージ値をディスク領域の残りの絶対値に変更することをサポートし、APIは以下の通りである.
    PUT _cluster/settings 
    { 
      "transient": { 
        "cluster.routing.allocation.disk.watermark.low": "100gb",
        "cluster.routing.allocation.disk.watermark.high": "50gb",
        "cluster.routing.allocation.disk.watermark.flood_stage": "10gb"
      } 
    }

    二、クラスタ中のShardsはhttps://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cluster.html#cluster-shard-allocation-settings、clusterを分配して回復する.routing.allocation.enable:shards割当てルールを制御し、デフォルトallで、dataノードを迅速に再起動する必要がある場合は、値をnoneに設定することを推奨します.
  • all:クラスタ内のすべてのスライスの割り当てを許可します.
  • none:スライスクラスタ内のすべてのスライスは許可されていません.
  • primaries:クラスタ内のインデックスの新しいスライスのみを割り当てることができます.
  • new_primaries:クラスタ内の新しいインデックスを割り当てるプライマリスライスのみを許可します.
  • curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/_cluster/settings -d '{"transient" : {"cluster.routing.allocation.enable":"all"}}'

    2、スライス回復
  • cluster.routing.allocation.node_concurrent_incoming_recoveries:スライスリカバリ中に単一ノードがどれだけの同時スライス転送数を許可するか、デフォルト2;
  • curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/_cluster/settings -d '{"transient" : {"cluster.routing.allocation.node_concurrent_incoming_recoveries":"2"}}'
  • cluster.routing.allocation.node_concurrent_outgoing_recoveries:スライスリカバリ中に単一ノードがどれだけ同時スライス送信数を許可するか、デフォルト2;
  • curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/_cluster/settings -d '{"transient" : {"cluster.routing.allocation.node_concurrent_outgoing_recoveries":"2"}}'
  • cluster.routing.allocation.node_concurrent_recoveries:スライス転送と転送の同時数を同時に設定します.
  • curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/_cluster/settings -d '{"transient" : {"cluster.routing.allocation.node_concurrent_recoveries":"4"}}'

    3.スライスが単一dataノードに割り当てられる数を制御する
  • index.routing.allocation.total_shards_per_Node:indicesのスライスが単一ノードに割り当てられるスライス数を制御します.
  • curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/indices_test/_settings -d '{"index.routing.allocation.total_shards_per_node":"3"}'
  • cluster.routing.allocation.total_shards_per_Node:クラスタ内のすべてのスライスが単一ノードに割り当てられるスライス数を制御し、あまり使用されません.
  • PUT _cluster/settings 
    { 
        "transient" : { 
            "cluster.routing.allocation.exclude._ip" : "10.0.0.1"     } 
    }
    curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/_cluster/settings -d '{"transient" : {"cluster.routing.allocation.exclude._ip":"127.0.0.1"}}'

    三、クラスター中のShards rebalance https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-cluster.html#cluster-shard-allocation-filtering、cluster.routing.rebalance.Enable:クラスタshards rebalanceパラメータを制御し、デフォルトallで、ノードを迅速に再起動する必要がある場合は、値をnoneに設定することを推奨します.
  • all:クラスタ内のすべてのshardsがrebalanceを行うことを許可します.
  • none:クラスタ内のすべてのindicesのshardsがrebalanceを行うことを許可しません.
  • primaries:クラスタ内のプライマリshardsのみがrebalanceを許可します.
  • replicas:クラスタ内のコピーshardsのみがrebalanceを許可する.
  • curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/_cluster/settings -d '{"transient" : {"cluster.routing.rebalance.enable":"all"}}'

    2、cluster.routing.allocation.cluster_concurrent_rebalance:クラスタ内のスライスrebalanceの同時数を許可し、デフォルトは2であり、クラスタが新しいdataノードを拡張した後、このパラメータ値を大きくすることでスライスをより速く新しいノードに移行させ、クラスタスライスRebalanceに迅速に達する.
    curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/_cluster/settings -d '{"transient" : {"cluster.routing.allocation.cluster_concurrent_rebalance":"2"}}'

    四、インデックスsettings 1、インデックススライス数の調整
    curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/indices_test/_settings -d '{"index":{"number_of_replicas" : 1}}'

    2、インデックスrefresh周波数の調整
    curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/indices_test/_settings -d '{"index":{"refresh_interval" : "30s"}}'

    3、インデックスtranslog flushポリシーの調整
    curl -H 'Content-Type:application/json' -XPUT   http://127.0.0.1:9200/indices_test/_settings -d '{"index":{"translog.durability" : "async","translog.flush_threshold_size":"1gb"}}'