cat recovery API
cat APIは、コマンドラインまたはKibanaコンソールを使用して人間が消費することを目的としています。アプリケーションによる使用は意図されていません。アプリケーションでの使用には、index recovery APIを使用してください。
進行中および完了したシャードのリカバリに関する情報を返します。これは、index recovery APIに似ています。
データストリームの場合、APIはストリームのバックインデックスに関する情報を返します。
Request
GET /_cat/recovery/<target>
GET /_cat/recovery
Prerequisites
- Elasticsearchのセキュリティ機能が有効になっている場合、このAPIを使用するには
monitor
またはmanage
cluster privilegeが必要です。また、取得するデータストリーム、インデックス、またはエイリアスに対してmonitor
またはmanage
index privilegeも必要です。
Description
cat recovery APIは、進行中および完了したシャードのリカバリに関する情報を返します。これは、JSON index recovery APIのよりコンパクトなビューです。
シャードのリカバリは、シャードコピーを初期化するプロセスであり、スナップショットからプライマリシャードを復元したり、プライマリシャードからレプリカシャードを作成したりします。シャードのリカバリが完了すると、回復されたシャードは検索およびインデックス作成に利用可能になります。
リカバリは、次のプロセス中に自動的に発生します:
- インデックスを初めて作成する時。
- ノードがクラスターに再参加し、データパスに保持しているデータを使用して欠落しているプライマリシャードコピーを起動する時。
- プライマリから新しいレプリカシャードコピーを作成する時。
- 同じクラスター内の別のノードにシャードコピーを移動する時。
- snapshot restore操作。
- clone、shrink、またはsplit操作。
recoveryまたはcat recovery APIを使用して、シャードのリカバリの原因を特定できます。
Path parameters
<target>
- (オプション、文字列) リクエストを制限するために使用されるデータストリーム、インデックス、およびエイリアスのカンマ区切りリスト。ワイルドカード(
*
)をサポートします。すべてのデータストリームとインデックスを対象とするには、このパラメータを省略するか、*
または_all
を使用します。
Query parameters
active_only
- (オプション、Boolean)
true
の場合、応答には進行中のシャードリカバリのみが含まれます。デフォルトはfalse
です。 bytes
- (オプション、バイトサイズ単位) バイト値を表示するために使用される単位。
detailed
- (オプション、Boolean)
true
の場合、応答にはシャードリカバリに関する詳細情報が含まれます。デフォルトはfalse
です。 format
- (オプション、文字列) HTTP accept headerの短縮版。有効な値にはJSON、YAMLなどが含まれます。
h
- (オプション、文字列) 表示する列名のカンマ区切りリスト。
help
- (オプション、Boolean)
true
の場合、応答にはヘルプ情報が含まれます。デフォルトはfalse
です。 index
- (オプション、文字列) リクエストを制限するために使用されるインデックス名のカンマ区切りリストまたはワイルドカード式。
s
- (オプション、文字列) 応答をソートするために使用される列名または列エイリアスのカンマ区切りリスト。
time
- (オプション、時間単位) 時間値を表示するために使用される単位。
v
- (オプション、Boolean)
true
の場合、応答には列見出しが含まれます。デフォルトはfalse
です。
Examples
Example with no ongoing recoveries
Python
resp = client.cat.recovery(
v=True,
)
print(resp)
Ruby
response = client.cat.recovery(
v: true
)
puts response
Js
const response = await client.cat.recovery({
v: "true",
});
console.log(response);
Console
GET _cat/recovery?v=true
APIは次の応答を返します:
Txt
index shard time type stage source_host source_node target_host target_node repository snapshot files files_recovered files_percent files_total bytes bytes_recovered bytes_percent bytes_total translog_ops translog_ops_recovered translog_ops_percent
my-index-000001 0 13ms store done n/a n/a 127.0.0.1 node-0 n/a n/a 0 0 100% 13 0b 0b 100% 9928b 0 0 100.0%
この例の応答では、ソースノードとターゲットノードは同じです。なぜなら、リカバリタイプがstore
であり、ノードの起動時にローカルストレージから読み取られたことを意味します。
Example with a live shard recovery
インデックスのレプリカ数を増やし、レプリカをホストするために別のノードをオンラインにすることで、進行中のリカバリに関する情報を取得できます。
Python
resp = client.cat.recovery(
v=True,
h="i,s,t,ty,st,shost,thost,f,fp,b,bp",
)
print(resp)
Ruby
response = client.cat.recovery(
v: true,
h: 'i,s,t,ty,st,shost,thost,f,fp,b,bp'
)
puts response
Js
const response = await client.cat.recovery({
v: "true",
h: "i,s,t,ty,st,shost,thost,f,fp,b,bp",
});
console.log(response);
Console
GET _cat/recovery?v=true&h=i,s,t,ty,st,shost,thost,f,fp,b,bp
APIは次の応答を返します:
Txt
i s t ty st shost thost f fp b bp
my-index-000001 0 1252ms peer done 192.168.1.1 192.168.1.2 0 100.0% 0b 100.0%
この例の応答では、リカバリタイプがpeer
であり、シャードが別のノードから回復されたことを意味します。返されたファイルとバイトはリアルタイムの測定値です。
Example with a snapshot recovery
スナップショットとリストアのAPIを使用して、インデックスのバックアップを復元できます。snapshot and restore APIを使用して、スナップショットリカバリに関する情報を取得できます。
Python
resp = client.cat.recovery(
v=True,
h="i,s,t,ty,st,rep,snap,f,fp,b,bp",
)
print(resp)
Ruby
response = client.cat.recovery(
v: true,
h: 'i,s,t,ty,st,rep,snap,f,fp,b,bp'
)
puts response
Js
const response = await client.cat.recovery({
v: "true",
h: "i,s,t,ty,st,rep,snap,f,fp,b,bp",
});
console.log(response);
Console
GET _cat/recovery?v=true&h=i,s,t,ty,st,rep,snap,f,fp,b,bp
APIは次の応答を返します。リカバリタイプはsnapshot
です:
Txt
i s t ty st rep snap f fp b bp
my-index-000001 0 1978ms snapshot done my-repo snap-1 79 8.0% 12086 9.0%