クラスタAPI
ノード仕様
いくつかのクラスタレベルのAPIは、ノードフィルターを使用して指定できるノードのサブセットで操作することがあります。たとえば、タスク管理、ノード統計、およびノード情報 APIは、すべてのノードからではなく、フィルタリングされたノードのセットから結果を報告できます。
ノードフィルターは、個々のフィルターのカンマ区切りリストとして記述され、各フィルターは選択されたサブセットからノードを追加または削除します。各フィルターは次のいずれかです:
_all
、サブセットにすべてのノードを追加します。_local
、サブセットにローカルノードを追加します。_master
、サブセットに現在選出されたマスターノードを追加します。- ノードIDまたは名前、サブセットにこのノードを追加します。
- IPアドレスまたはホスト名、サブセットにすべての一致するノードを追加します。
- パターン、
*
ワイルドカードを使用して、名前、アドレス、またはホスト名がパターンに一致するすべてのノードをサブセットに追加します。 master:true
、data:true
、ingest:true
、voting_only:true
、ml:true
、またはcoordinating_only:true
、それぞれすべてのマスターノード候補、すべてのデータノード、すべてのインジェストノード、すべての投票専用ノード、すべての機械学習ノード、およびすべてのコーディネート専用ノードをサブセットに追加します。master:false
、data:false
、ingest:false
、voting_only:false
、ml:false
、またはcoordinating_only:false
、それぞれすべてのマスターノード候補、すべてのデータノード、すべてのインジェストノード、すべての投票専用ノード、すべての機械学習ノード、およびすべてのコーディネート専用ノードをサブセットから削除します。- パターンのペア、
*
ワイルドカードを使用して、attrname:attrvalue
の形式で、名前と値がそれぞれのパターンに一致するカスタムノード属性を持つすべてのノードをサブセットに追加します。カスタムノード属性は、node.attr.attrname: attrvalue
の形式の設定ファイルでプロパティを設定することによって構成されます。
ノードフィルターは、与えられた順序で実行されます。これは、セットからノードを削除するフィルターを使用する場合に重要です。たとえば、_all,master:false
はマスターノード候補を除くすべてのノードを意味しますが、master:false,_all
は_all
と同じ意味になります。なぜなら、_all
フィルターはmaster:false
フィルターの後に実行されるからです。
フィルターが指定されていない場合、デフォルトはすべてのノードを選択することです。ただし、フィルターが指定されている場合、それらは空の選択されたサブセットから開始して実行されます。これは、master:false
のようなフィルターが選択されたサブセットからノードを削除する場合、他のフィルターの後に来る場合にのみ有用であることを意味します。単独で使用されると、master:false
はノードを選択しません。
以下は、ノード情報 APIでのノードフィルターの使用例です。
Python
resp = client.nodes.info()
print(resp)
resp1 = client.nodes.info(
node_id="_all",
)
print(resp1)
resp2 = client.nodes.info(
node_id="_local",
)
print(resp2)
resp3 = client.nodes.info(
node_id="_master",
)
print(resp3)
resp4 = client.nodes.info(
node_id="node_name_goes_here",
)
print(resp4)
resp5 = client.nodes.info(
node_id="node_name_goes_*",
)
print(resp5)
resp6 = client.nodes.info(
node_id="10.0.0.3,10.0.0.4",
)
print(resp6)
resp7 = client.nodes.info(
node_id="10.0.0.*",
)
print(resp7)
resp8 = client.nodes.info(
node_id="_all,master:false",
)
print(resp8)
resp9 = client.nodes.info(
node_id="data:true,ingest:true",
)
print(resp9)
resp10 = client.nodes.info(
node_id="coordinating_only:true",
)
print(resp10)
resp11 = client.nodes.info(
node_id="master:true,voting_only:false",
)
print(resp11)
resp12 = client.nodes.info(
node_id="rack:2",
)
print(resp12)
resp13 = client.nodes.info(
node_id="ra*:2",
)
print(resp13)
resp14 = client.nodes.info(
node_id="ra*:2*",
)
print(resp14)
Ruby
response = client.nodes.info
puts response
response = client.nodes.info(
node_id: '_all'
)
puts response
response = client.nodes.info(
node_id: '_local'
)
puts response
response = client.nodes.info(
node_id: '_master'
)
puts response
response = client.nodes.info(
node_id: 'node_name_goes_here'
)
puts response
response = client.nodes.info(
node_id: 'node_name_goes_*'
)
puts response
response = client.nodes.info(
node_id: '10.0.0.3,10.0.0.4'
)
puts response
response = client.nodes.info(
node_id: '10.0.0.*'
)
puts response
response = client.nodes.info(
node_id: '_all,master:false'
)
puts response
response = client.nodes.info(
node_id: 'data:true,ingest:true'
)
puts response
response = client.nodes.info(
node_id: 'coordinating_only:true'
)
puts response
response = client.nodes.info(
node_id: 'master:true,voting_only:false'
)
puts response
response = client.nodes.info(
node_id: 'rack:2'
)
puts response
response = client.nodes.info(
node_id: 'ra*:2'
)
puts response
response = client.nodes.info(
node_id: 'ra*:2*'
)
puts response
Js
const response = await client.nodes.info();
console.log(response);
const response1 = await client.nodes.info({
node_id: "_all",
});
console.log(response1);
const response2 = await client.nodes.info({
node_id: "_local",
});
console.log(response2);
const response3 = await client.nodes.info({
node_id: "_master",
});
console.log(response3);
const response4 = await client.nodes.info({
node_id: "node_name_goes_here",
});
console.log(response4);
const response5 = await client.nodes.info({
node_id: "node_name_goes_*",
});
console.log(response5);
const response6 = await client.nodes.info({
node_id: "10.0.0.3,10.0.0.4",
});
console.log(response6);
const response7 = await client.nodes.info({
node_id: "10.0.0.*",
});
console.log(response7);
const response8 = await client.nodes.info({
node_id: "_all,master:false",
});
console.log(response8);
const response9 = await client.nodes.info({
node_id: "data:true,ingest:true",
});
console.log(response9);
const response10 = await client.nodes.info({
node_id: "coordinating_only:true",
});
console.log(response10);
const response11 = await client.nodes.info({
node_id: "master:true,voting_only:false",
});
console.log(response11);
const response12 = await client.nodes.info({
node_id: "rack:2",
});
console.log(response12);
const response13 = await client.nodes.info({
node_id: "ra*:2",
});
console.log(response13);
const response14 = await client.nodes.info({
node_id: "ra*:2*",
});
console.log(response14);
コンソール
# フィルターが指定されていない場合、デフォルトはすべてのノードを選択することです
GET /_nodes
# すべてのノードを明示的に選択する
GET /_nodes/_all
# ローカルノードのみを選択する
GET /_nodes/_local
# 選出されたマスターノードを選択する
GET /_nodes/_master
# 名前でノードを選択する(ワイルドカードを含むことができます)
GET /_nodes/node_name_goes_here
GET /_nodes/node_name_goes_*
# アドレスでノードを選択する(ワイルドカードを含むことができます)
GET /_nodes/10.0.0.3,10.0.0.4
GET /_nodes/10.0.0.*
# 役割でノードを選択する
GET /_nodes/_all,master:false
GET /_nodes/data:true,ingest:true
GET /_nodes/coordinating_only:true
GET /_nodes/master:true,voting_only:false
# カスタム属性でノードを選択する(例:設定ファイルに`node.attr.rack: 2`のようなものがある場合)
GET /_nodes/rack:2
GET /_nodes/ra*:2
GET /_nodes/ra*:2*