クラスタAPI

ノード仕様

いくつかのクラスタレベルのAPIは、ノードフィルターを使用して指定できるノードのサブセットで操作することがあります。たとえば、タスク管理ノード統計、およびノード情報 APIは、すべてのノードからではなく、フィルタリングされたノードのセットから結果を報告できます。

ノードフィルターは、個々のフィルターのカンマ区切りリストとして記述され、各フィルターは選択されたサブセットからノードを追加または削除します。各フィルターは次のいずれかです:

  • _all、サブセットにすべてのノードを追加します。
  • _local、サブセットにローカルノードを追加します。
  • _master、サブセットに現在選出されたマスターノードを追加します。
  • ノードIDまたは名前、サブセットにこのノードを追加します。
  • IPアドレスまたはホスト名、サブセットにすべての一致するノードを追加します。
  • パターン、*ワイルドカードを使用して、名前、アドレス、またはホスト名がパターンに一致するすべてのノードをサブセットに追加します。
  • master:truedata:trueingest:truevoting_only:trueml:true、またはcoordinating_only:true、それぞれすべてのマスターノード候補、すべてのデータノード、すべてのインジェストノード、すべての投票専用ノード、すべての機械学習ノード、およびすべてのコーディネート専用ノードをサブセットに追加します。
  • master:falsedata:falseingest:falsevoting_only:falseml: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

  1. resp = client.nodes.info()
  2. print(resp)
  3. resp1 = client.nodes.info(
  4. node_id="_all",
  5. )
  6. print(resp1)
  7. resp2 = client.nodes.info(
  8. node_id="_local",
  9. )
  10. print(resp2)
  11. resp3 = client.nodes.info(
  12. node_id="_master",
  13. )
  14. print(resp3)
  15. resp4 = client.nodes.info(
  16. node_id="node_name_goes_here",
  17. )
  18. print(resp4)
  19. resp5 = client.nodes.info(
  20. node_id="node_name_goes_*",
  21. )
  22. print(resp5)
  23. resp6 = client.nodes.info(
  24. node_id="10.0.0.3,10.0.0.4",
  25. )
  26. print(resp6)
  27. resp7 = client.nodes.info(
  28. node_id="10.0.0.*",
  29. )
  30. print(resp7)
  31. resp8 = client.nodes.info(
  32. node_id="_all,master:false",
  33. )
  34. print(resp8)
  35. resp9 = client.nodes.info(
  36. node_id="data:true,ingest:true",
  37. )
  38. print(resp9)
  39. resp10 = client.nodes.info(
  40. node_id="coordinating_only:true",
  41. )
  42. print(resp10)
  43. resp11 = client.nodes.info(
  44. node_id="master:true,voting_only:false",
  45. )
  46. print(resp11)
  47. resp12 = client.nodes.info(
  48. node_id="rack:2",
  49. )
  50. print(resp12)
  51. resp13 = client.nodes.info(
  52. node_id="ra*:2",
  53. )
  54. print(resp13)
  55. resp14 = client.nodes.info(
  56. node_id="ra*:2*",
  57. )
  58. print(resp14)

Ruby

  1. response = client.nodes.info
  2. puts response
  3. response = client.nodes.info(
  4. node_id: '_all'
  5. )
  6. puts response
  7. response = client.nodes.info(
  8. node_id: '_local'
  9. )
  10. puts response
  11. response = client.nodes.info(
  12. node_id: '_master'
  13. )
  14. puts response
  15. response = client.nodes.info(
  16. node_id: 'node_name_goes_here'
  17. )
  18. puts response
  19. response = client.nodes.info(
  20. node_id: 'node_name_goes_*'
  21. )
  22. puts response
  23. response = client.nodes.info(
  24. node_id: '10.0.0.3,10.0.0.4'
  25. )
  26. puts response
  27. response = client.nodes.info(
  28. node_id: '10.0.0.*'
  29. )
  30. puts response
  31. response = client.nodes.info(
  32. node_id: '_all,master:false'
  33. )
  34. puts response
  35. response = client.nodes.info(
  36. node_id: 'data:true,ingest:true'
  37. )
  38. puts response
  39. response = client.nodes.info(
  40. node_id: 'coordinating_only:true'
  41. )
  42. puts response
  43. response = client.nodes.info(
  44. node_id: 'master:true,voting_only:false'
  45. )
  46. puts response
  47. response = client.nodes.info(
  48. node_id: 'rack:2'
  49. )
  50. puts response
  51. response = client.nodes.info(
  52. node_id: 'ra*:2'
  53. )
  54. puts response
  55. response = client.nodes.info(
  56. node_id: 'ra*:2*'
  57. )
  58. puts response

Js

  1. const response = await client.nodes.info();
  2. console.log(response);
  3. const response1 = await client.nodes.info({
  4. node_id: "_all",
  5. });
  6. console.log(response1);
  7. const response2 = await client.nodes.info({
  8. node_id: "_local",
  9. });
  10. console.log(response2);
  11. const response3 = await client.nodes.info({
  12. node_id: "_master",
  13. });
  14. console.log(response3);
  15. const response4 = await client.nodes.info({
  16. node_id: "node_name_goes_here",
  17. });
  18. console.log(response4);
  19. const response5 = await client.nodes.info({
  20. node_id: "node_name_goes_*",
  21. });
  22. console.log(response5);
  23. const response6 = await client.nodes.info({
  24. node_id: "10.0.0.3,10.0.0.4",
  25. });
  26. console.log(response6);
  27. const response7 = await client.nodes.info({
  28. node_id: "10.0.0.*",
  29. });
  30. console.log(response7);
  31. const response8 = await client.nodes.info({
  32. node_id: "_all,master:false",
  33. });
  34. console.log(response8);
  35. const response9 = await client.nodes.info({
  36. node_id: "data:true,ingest:true",
  37. });
  38. console.log(response9);
  39. const response10 = await client.nodes.info({
  40. node_id: "coordinating_only:true",
  41. });
  42. console.log(response10);
  43. const response11 = await client.nodes.info({
  44. node_id: "master:true,voting_only:false",
  45. });
  46. console.log(response11);
  47. const response12 = await client.nodes.info({
  48. node_id: "rack:2",
  49. });
  50. console.log(response12);
  51. const response13 = await client.nodes.info({
  52. node_id: "ra*:2",
  53. });
  54. console.log(response13);
  55. const response14 = await client.nodes.info({
  56. node_id: "ra*:2*",
  57. });
  58. console.log(response14);

コンソール

  1. # フィルターが指定されていない場合、デフォルトはすべてのノードを選択することです
  2. GET /_nodes
  3. # すべてのノードを明示的に選択する
  4. GET /_nodes/_all
  5. # ローカルノードのみを選択する
  6. GET /_nodes/_local
  7. # 選出されたマスターノードを選択する
  8. GET /_nodes/_master
  9. # 名前でノードを選択する(ワイルドカードを含むことができます)
  10. GET /_nodes/node_name_goes_here
  11. GET /_nodes/node_name_goes_*
  12. # アドレスでノードを選択する(ワイルドカードを含むことができます)
  13. GET /_nodes/10.0.0.3,10.0.0.4
  14. GET /_nodes/10.0.0.*
  15. # 役割でノードを選択する
  16. GET /_nodes/_all,master:false
  17. GET /_nodes/data:true,ingest:true
  18. GET /_nodes/coordinating_only:true
  19. GET /_nodes/master:true,voting_only:false
  20. # カスタム属性でノードを選択する(例:設定ファイルに`node.attr.rack: 2`のようなものがある場合)
  21. GET /_nodes/rack:2
  22. GET /_nodes/ra*:2
  23. GET /_nodes/ra*:2*