Elasticsearch-modules
Elasticsearch-モジュール
Elasticsearchは、その機能を担う多数のモジュールで構成されています。 これらのモジュールには、次の2種類の設定があります-
- 静的設定-これらの設定は、Elasticsearchを開始する前にconfig(elasticsearch.yml)ファイルで設定する必要があります。 これらの設定による変更を反映するには、クラスター内のすべての関係ノードを更新する必要があります。
- 動的設定-これらの設定はライブElasticsearchで設定できます。
この章の以降のセクションで、Elasticsearchのさまざまなモジュールについて説明します。
クラスタレベルのルーティングとシャード割り当て
クラスターレベルの設定により、異なるノードへのシャードの割り当てとクラスターの再分散のためのシャードの再割り当てが決定されます。 これらは、シャードの割り当てを制御する次の設定です。
クラスタレベルのシャード割り当て
設定
可能な値
説明
cluster.routing.allocation.enable
all
このデフォルト値により、すべての種類のシャードにシャードを割り当てることができます。
原色
これにより、プライマリシャードにのみシャードの割り当てが許可されます。
new_primaries
これにより、新しいインデックスのプライマリシャードにのみシャードを割り当てることができます。
none
これは、シャードの割り当てを許可しません。
cluster.routing.allocation .node_concurrent_recoveries
数値(デフォルトでは2)
これにより、同時シャード回復の数が制限されます。
cluster.routing.allocation .node_initial_primaries_recoveries
数値(デフォルトでは4)
これにより、並列初期プライマリリカバリの数が制限されます。
cluster.routing.allocation .same_shard.host
ブール値(デフォルトではfalse)
これにより、同じ物理ノード内の同じシャードの複数のレプリカの割り当てが制限されます。
indexs.recovery.concurrent _streams
数値(デフォルトでは3)
これは、ピアシャードからのシャードリカバリ時に、ノードごとのオープンネットワークストリームの数を制御します。
indexs.recovery.concurrent _small_file_streams
数値(デフォルトでは2)
これにより、断片回復時のサイズが5 MB未満の小さなファイルのノードあたりのオープンストリーム数が制御されます。
cluster.routing.rebalance.enable
all
このデフォルト値により、すべての種類のシャードのバランスを取ることができます。
原色
これにより、プライマリシャードに対してのみシャードバランシングが可能になります。
レプリカ
これにより、レプリカシャードに対してのみシャードバランシングが可能になります。
none
これは、あらゆる種類のシャードバランシングを許可しません。
cluster.routing.allocation .allow_rebalance
常に
このデフォルト値は常にリバランスを許可します。
indexs_primaries _active
これにより、クラスター内のすべてのプライマリシャードが割り当てられたときにリバランスが可能になります。
Indices_all_active
これにより、すべてのプライマリシャードとレプリカシャードが割り当てられたときにリバランスが可能になります。
cluster.routing.allocation.cluster _concurrent_rebalance
数値(デフォルトでは2)
これにより、クラスター内の同時シャードバランシングの数が制限されます。
cluster.routing.allocation .balance.shard
浮動小数点値(デフォルトでは0.45f)
これにより、すべてのノードに割り当てられたシャードの重み係数が定義されます。
cluster.routing.allocation .balance.index
浮動小数点値(デフォルトでは0.55f)
これは、特定のノードに割り当てられたインデックスごとの断片数の比率を定義します。
cluster.routing.allocation .balance.threshold
非負の浮動小数点値(デフォルトでは1.0f)
これは、実行する必要がある操作の最小最適化値です。
ディスクベースのシャード割り当て
Setting | Possible value | Description |
---|---|---|
cluster.routing.allocation.disk.threshold_enabled | Boolean value (by default true) | This enables and disables disk allocation decider. |
cluster.routing.allocation.disk.watermark.low | String value(by default 85%) | This denotes maximum usage of disk; after this point, no other shard can be allocated to that disk. |
cluster.routing.allocation.disk.watermark.high | String value (by default 90%) | This denotes the maximum usage at the time of allocation; if this point is reached at the time of allocation, then Elasticsearch will allocate that shard to another disk. |
cluster.info.update.interval | String value (by default 30s) | This is the interval between disk usages checkups. |
cluster.routing.allocation.disk.include_relocations | Boolean value (by default true) | This decides whether to consider the shards currently being allocated, while calculating disk usage. |
発見
このモジュールは、クラスターがその中のすべてのノードの状態を検出および維持するのに役立ちます。 クラスターの状態は、ノードが追加または削除されると変化します。 クラスター名の設定は、異なるクラスター間の論理的な違いを作成するために使用されます。 クラウドベンダーが提供するAPIを使用するのに役立つモジュールがいくつかあり、それらは以下のとおりです-
- Azureディスカバリー
- EC2ディスカバリー
- Googleコンピューティングエンジンの検出 *禅の発見
ゲートウェイ
このモジュールは、クラスターの完全な再起動にわたってクラスターの状態と断片データを維持します。 以下は、このモジュールの静的設定です-
Setting | Possible value | Description |
---|---|---|
gateway.expected_nodes | numeric value (by default 0) | The number of nodes that are expected to be in the cluster for the recovery of local shards. |
gateway.expected_master_nodes | numeric value (by default 0) | The number of master nodes that are expected to be in the cluster before start recovery. |
gateway.expected_data_nodes | numeric value (by default 0) | The number of data nodes expected in the cluster before start recovery. |
gateway.recover_after_time | String value (by default 5m) | This is the interval between disk usages checkups. |
cluster.routing.allocation. disk.include_relocations | Boolean value (by default true) |
This specifies the time for which the recovery process will wait to start regardless of the number of nodes joined in the cluster. gateway.recover_ after_nodes gateway.recover_after_master_nodes gateway.recover_after_data_nodes |
HTTP
このモジュールは、HTTPクライアントとElasticsearch API間の通信を管理します。 このモジュールを無効にするには、http.enabledの値をfalseに変更します。
以下は、このモジュールを制御するための設定です(elasticsearch.ymlで設定されています)-
S.No | Setting & Description |
---|---|
1 |
これはElasticsearchにアクセスするためのポートで、9200〜9300の範囲です。 |
2 |
http.publish_port このポートはhttpクライアント用であり、ファイアウォールの場合にも役立ちます。 |
3 |
http.bind_host これは、httpサービスのホストアドレスです。 |
4 |
http.publish_host これは、httpクライアントのホストアドレスです。 |
5 |
http.max_content_length これは、httpリクエストのコンテンツの最大サイズです。 デフォルト値は100mbです。 |
6 |
http.max_initial_line_length これはURLの最大サイズであり、デフォルト値は4kbです。 |
7 |
http.max_header_size これは、httpヘッダーの最大サイズであり、デフォルト値は8kbです。 |
8 |
http.compression これにより、圧縮のサポートが有効または無効になり、デフォルト値はfalseです。 |
9 |
http.pipelinig これにより、HTTPパイプラインが有効または無効になります。 |
10 |
http.pipelining.max_events これにより、HTTP要求を閉じる前にキューに入れるイベントの数が制限されます。 |
指標
このモジュールは、すべてのインデックスに対してグローバルに設定される設定を維持します。 以下の設定は、主にメモリ使用量に関連しています-
サーキットブレーカー
これは、操作がOutOfMemroyErrorを引き起こさないようにするために使用されます。 この設定は、主にJVMヒープサイズを制限します。 たとえば、indexes.breaker.total.limit設定は、デフォルトでJVMヒープの70%に設定されます。
フィールドデータキャッシュ
これは、主にフィールドで集計するときに使用されます。 割り当てるのに十分なメモリを確保することをお勧めします。 フィールドデータキャッシュに使用されるメモリ量は、indexes.fielddata.cache.size設定を使用して制御できます。
ノードクエリキャッシュ
このメモリは、クエリ結果をキャッシュするために使用されます。 このキャッシュは、最長時間未使用(LRU)エビクションポリシーを使用します。 Indices.queries.cahce.size設定は、このキャッシュのメモリサイズを制御します。
インデックスバッファ
このバッファは、新しく作成されたドキュメントをインデックスに保存し、バッファがいっぱいになるとそれらをフラッシュします。 index.memory.index_buffer_sizeのように設定すると、このバッファーに割り当てられるヒープの量が制御されます。
シャードリクエストキャッシュ
このキャッシュは、すべてのシャードのローカル検索データを保存するために使用されます。 キャッシュは、インデックスの作成中に有効にするか、URLパラメーターを送信して無効にすることができます。
Disable cache - ?request_cache = true
Enable cache "index.requests.cache.enable": true
指数回復
回復プロセス中にリソースを制御します。 以下は設定です-
Setting | Default value |
---|---|
indices.recovery.concurrent_streams | 3 |
indices.recovery.concurrent_small_file_streams | 2 |
indices.recovery.file_chunk_size | 512kb |
indices.recovery.translog_ops | 1000 |
indices.recovery.translog_size | 512kb |
indices.recovery.compress | true |
indices.recovery.max_bytes_per_sec | 40mb |
TTL間隔
存続時間(TTL)間隔は、ドキュメントが削除されるまでの時間を定義します。 以下は、このプロセスを制御するための動的設定です-
Setting | Default value |
---|---|
indices.ttl.interval | 60s |
indices.ttl.bulk_size | 1000 |
Node
各ノードには、データノードであるかどうかのオプションがあります。 node.data 設定を変更することにより、このプロパティを変更できます。 値を false に設定すると、ノードがデータノードではないことを定義します。