集群 API
编辑集群 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 的一些节点过滤器使用示例。
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)
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
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);
# If no filters are given, the default is to select all nodes GET /_nodes # Explicitly select all nodes GET /_nodes/_all # Select just the local node GET /_nodes/_local # Select the elected master node GET /_nodes/_master # Select nodes by name, which can include wildcards GET /_nodes/node_name_goes_here GET /_nodes/node_name_goes_* # Select nodes by address, which can include wildcards GET /_nodes/10.0.0.3,10.0.0.4 GET /_nodes/10.0.0.* # Select nodes by role GET /_nodes/_all,master:false GET /_nodes/data:true,ingest:true GET /_nodes/coordinating_only:true GET /_nodes/master:true,voting_only:false # Select nodes by custom attribute (e.g. with something like `node.attr.rack: 2` in the configuration file) GET /_nodes/rack:2 GET /_nodes/ra*:2 GET /_nodes/ra*:2*