Elasticsearch
クラスタ
サーチ…
備考
クラスタヘルスは、割り当てられたシャードの数(「アクティブ」)、割り当てられていない再配置されているシャード数など、クラスタに関する多くの情報を提供します。さらに、クラスタ内の現在のノード数とデータノード数を提供します。これにより、欠落しているノードをポーリングすることができます(たとえば、 15になると予想されますが、 14 、 。
Elasticsearchについて知っている人には、「割り当て済み」と「未割り当て」の断片が問題の追跡に役立つことがあります。
クラスタヘルスから最もよく確認されるフィールドは、次の3つの状態のいずれかになることができるstatusです。
- 赤
- 黄
- 緑
色はそれぞれ1つだけです - 非常に単純なもの:
- 赤は、 少なくとも 1つのプライマリーシャードがないことを示します。
- 1次シャードが見つからないということは、ほとんどの場合、索引を使用して新しいデータを書き込む(索引付けする)ことができないことを意味します。
- 技術的には、その索引で利用可能なプライマリー断片にはまだ索引付けすることができますが、実質的には、与えられた文書を受け取るシャードを一般的に制御しないためできません。
- 赤いクラスタに対しても検索は可能ですが、検索するインデックスにシャードがない場合に部分的な結果が得られることを意味します。
- 通常は、プライマリシャードが割り当てられていることを意味し
initializing_shards(initializing_shards)。 - ノードをクラスタから去ったばかりの場合(たとえば、実行しているマシンが電源を失ったなど)、一次シャードが一時的に欠落していることが理にかなっています。
- このプライマリシャードのレプリカシャードは、このシナリオではプライマリシャードに昇格されます。
- 1次シャードが見つからないということは、ほとんどの場合、索引を使用して新しいデータを書き込む(索引付けする)ことができないことを意味します。
- 黄色はすべてのプライマリー断片がアクティブであることを示しますが、少なくとも 1つのレプリカ断片はありません。
- 不足しているレプリカは、 整合性設定でインデックス作成に影響を与える必要がある場合にのみ、インデックス作成に影響します。
- デフォルトでは、任意のプライマリに対して1つのレプリカしか存在せず、1つの欠落したレプリカでインデックス付けが行われる可能性があります。
- 通常は、複製シャードが割り当てられていることを意味し
initializing_shards(initializing_shards)。 - レプリカを有効にした1つのノードクラスタは常に 最高で黄色です。主シャードがまだ割り当てられていない場合は、赤色になることがあります。
- 単一のノードしか持っていない場合は、レプリカを使用しないようにするため、レプリカを無効にすることは理にかなっています。それは緑色にすることができます。
- 不足しているレプリカは、 整合性設定でインデックス作成に影響を与える必要がある場合にのみ、インデックス作成に影響します。
- 緑は、すべてのシャードがアクティブであることを示します。
- 緑色のクラスタで許可される唯一のシャード活動は、
relocating_shardsです。 - 新しいインデックス、したがって新しいシャードは、各シャードが割り当てられたときにクラスターを赤から黄色、緑色に変えます(最初は最初に黄色に、可能であれば複製を緑色にします)。
- Elasticsearch 5.x以降では、割り当てに時間がかかりすぎるまで、新しいインデックスはクラスタを赤くしません 。
- 緑色のクラスタで許可される唯一のシャード活動は、
人間が読める表形式のクラスタヘルス
例では、基本的なHTTP構文を使用します。この例の<#>は、コピーするときに削除する必要があります。
_cat APIを使用すると、さまざまな理由で人間が読める表形式の出力を得ることができます。
GET /_cat/health?v <1>
-
?vはオプションですが、 "冗長"な出力が必要なことを意味します。
_cat/healthはElasticsearch 1.x以降存在していましたが、ここではElasticsearch 5.xの出力例です:
冗長出力の場合:
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1469302011 15:26:51 elasticsearch yellow 1 1 45 45 0 0 44 0 - 50.6%
ヘッダーのない、人間が読める、表形式のクラスターヘルス
例では、基本的なHTTP構文を使用します。この例の<#>は、コピーするときに削除する必要があります。
_cat APIを使用すると、さまざまな理由で人間が読める表形式の出力を得ることができます。
GET /_cat/health <1>
_cat/healthはElasticsearch 1.x以降存在していましたが、ここではElasticsearch 5.xの出力例です:
冗長出力なし:
1469302245 15:30:45 elasticsearch yellow 1 1 45 45 0 0 44 0 - 50.6%
選択したヘッダを持つ、人間が読める、表形式のクラスタヘルス
例では、基本的なHTTP構文を使用します。この例の<#>は、コピーするときに削除する必要があります。
Elasticsearchのほとんどの_cat APIと同様に、APIはデフォルトのフィールドセットで選択的に応答します。ただし、必要に応じて、APIの他のフィールドが存在します。
GET /_cat/health?help <1>
-
?helpと、APIは簡単な説明と同様にフィールド(および短い名前)を返します。
_cat/healthはElasticsearch 1.x以降存在していましたが、ここではElasticsearch 5.xの出力例です:
この例の作成日に使用可能なフィールド:
epoch | t,time | seconds since 1970-01-01 00:00:00
timestamp | ts,hms,hhmmss | time in HH:MM:SS
cluster | cl | cluster name
status | st | health status
node.total | nt,nodeTotal | total number of nodes
node.data | nd,nodeData | number of nodes that can store data
shards | t,sh,shards.total,shardsTotal | total number of shards
pri | p,shards.primary,shardsPrimary | number of primary shards
relo | r,shards.relocating,shardsRelocating | number of relocating nodes
init | i,shards.initializing,shardsInitializing | number of initializing nodes
unassign | u,shards.unassigned,shardsUnassigned | number of unassigned shards
pending_tasks | pt,pendingTasks | number of pending tasks
max_task_wait_time | mtwt,maxTaskWaitTime | wait time of longest task pending
active_shards_percent | asp,activeShardsPercent | active number of shards in percent
これを使って、これらのフィールドだけを印刷することができます:
GET /_cat/health?h=timestamp,cl,status&v <1>
-
h=...は、返すフィールドのリストを定義します。 -
v(冗長)は、ヘッダーを印刷することを定義します。
Elasticsearch 5.xのインスタンスからの出力:
timestamp cl status
15:38:00 elasticsearch yellow
JSONベースのクラスタヘルス
例では、基本的なHTTP構文を使用します。この例の<#>は、コピーするときに削除する必要があります。
_cat APIは、多くの場合、人間がクラスタに関する詳細を一目で_catするのに便利です。しかし、しばしば、ソフトウェアで使用する解析可能な出力を一貫して欲しがる。一般的に、JSON APIはこの目的のために用意されています。
GET /_cluster/health
_cluster/healthはElasticsearch 1.x以降存在していましたが、ここではElasticsearch 5.xの出力例です:
{
"cluster_name": "elasticsearch",
"status": "yellow",
"timed_out": false,
"number_of_nodes": 1,
"number_of_data_nodes": 1,
"active_primary_shards": 45,
"active_shards": 45,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 44,
"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": 50.56179775280899
}