cat health API
cat APIは、コマンドラインまたはKibanaコンソールを使用して人間が消費することを目的としています。アプリケーションによる使用は意図されていません。アプリケーションでの使用には、cluster health APIを使用してください。
クラスターの健康状態を返します。これは、cluster health APIに似ています。
Request
GET /_cat/health
Prerequisites
- Elasticsearchのセキュリティ機能が有効になっている場合、このAPIを使用するには
monitor
またはmanage
cluster privilegeが必要です。
Description
cat health APIを使用して、クラスターの健康状態を取得できます。
このAPIは、故障しているクラスターを確認するためによく使用されます。クラスターの健康状態をログファイルやアラートシステムとともに追跡するのを助けるために、APIは2つの形式でタイムスタンプを返します:
HH:MM:SS
、これは人間が読みやすいですが、日付情報は含まれていません。- Unix
epoch
time、これは機械でソート可能で、日付情報を含みます。これは、数日かかるクラスターの回復に役立ちます。
cat health APIを使用して、複数のノードにわたるクラスターの健康状態を確認できます。Example across nodesを参照してください。
また、APIを使用して、大規模なクラスターの回復を長期間にわたって追跡することもできます。Example with a large clusterを参照してください。
Query parameters
format
- (オプション、文字列) HTTP accept headerの短縮版。 有効な値にはJSON、YAMLなどが含まれます。
h
- (オプション、文字列) 表示する列名のカンマ区切りリスト。
help
- (オプション、Boolean)
true
の場合、応答にヘルプ情報が含まれます。 デフォルトはfalse
です。 s
- (オプション、文字列) 応答をソートするために使用される列名または列エイリアスのカンマ区切りリスト。
time
- (オプション、time units) 時間値を表示するために使用される単位。
ts
(timestamps)- (オプション、Boolean)
true
の場合、HH:MM:SS
およびUnixepoch
タイムスタンプを返します。 デフォルトはtrue
です。 v
- (オプション、Boolean)
true
の場合、応答に列見出しが含まれます。 デフォルトはfalse
です。
Examples
Example with a timestamp
デフォルトでは、cat health APIはHH:MM:SS
およびUnix epoch
タイムスタンプを返します。例えば:
Python
resp = client.cat.health(
v=True,
)
print(resp)
Ruby
response = client.cat.health(
v: true
)
puts response
Js
const response = await client.cat.health({
v: "true",
});
console.log(response);
Console
GET /_cat/health?v=true
APIは次の応答を返します:
Txt
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1475871424 16:17:04 elasticsearch green 1 1 1 1 0 0 0 0 - 100.0%
Example without a timestamp
ts
(timestamps)パラメータを使用して、タイムスタンプを無効にできます。例えば:
Python
resp = client.cat.health(
v=True,
ts=False,
)
print(resp)
Ruby
response = client.cat.health(
v: true,
ts: false
)
puts response
Js
const response = await client.cat.health({
v: "true",
ts: "false",
});
console.log(response);
Console
GET /_cat/health?v=true&ts=false
APIは次の応答を返します:
Txt
cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
elasticsearch green 1 1 1 1 0 0 0 0 - 100.0%
Example across nodes
cat health APIを使用して、ノード間のクラスターの健康状態を確認できます。例えば:
% pssh -i -h list.of.cluster.hosts curl -s localhost:9200/_cat/health
[1] 20:20:52 [SUCCESS] es3.vm
1384309218 18:20:18 foo green 3 3 3 3 0 0 0 0
[2] 20:20:52 [SUCCESS] es1.vm
1384309218 18:20:18 foo green 3 3 3 3 0 0 0 0
[3] 20:20:52 [SUCCESS] es2.vm
1384309218 18:20:18 foo green 3 3 3 3 0 0 0 0
Example with a large cluster
cat health APIを使用して、大規模なクラスターの回復を長期間にわたって追跡できます。これは、cat health APIリクエストを遅延ループに含めることで実現できます。例えば:
% while true; do curl localhost:9200/_cat/health; sleep 120; done
1384309446 18:24:06 foo red 3 3 20 20 0 0 1812 0
1384309566 18:26:06 foo yellow 3 3 950 916 0 12 870 0
1384309686 18:28:06 foo yellow 3 3 1328 916 0 12 492 0
1384309806 18:30:06 foo green 3 3 1832 916 4 0 0
^C
この例では、回復には約6分かかり、18:24:06
から18:30:06
までの時間がかかりました。この回復に数時間かかった場合、UNASSIGNED
シャードの数を監視し続けることができます。これは減少するはずです。UNASSIGNED
シャードの数が静的なままであれば、クラスターの回復に問題があることを示します。