ノード情報API

クラスターのノード情報を返します。

リクエスト

GET /_nodes

GET /_nodes/<node_id>

GET /_nodes/<metric>

GET /_nodes/<node_id>/<metric>

前提条件

  • Elasticsearchのセキュリティ機能が有効になっている場合、このAPIを使用するにはmonitorまたはmanage クラスター権限が必要です。

説明

クラスターのノード情報APIは、1つ以上(またはすべて)のクラスターのノード情報を取得することを可能にします。すべてのノード選択オプションはこちらで説明されています。

デフォルトでは、ノードのすべての属性とコア設定を返します。

パスパラメータ

  • <metric>
  • (オプション、文字列)返される情報を特定のメトリックに制限します。カンマ区切りのリストをサポートし、http,ingestのように指定できます。
    1. - `````aggregations
    • 利用可能な集約のタイプに関する情報。
    • http
    • このノードのHTTPインターフェースに関する情報。
    • indices
    • インデックス作成に関連するノードレベルの設定:
      • total_indexing_buffer: このノードのインデックスバッファの最大サイズ。
    • ingest
    • インジェストパイプラインとプロセッサに関する情報。
    • jvm
    • JVM情報、名前、バージョン、設定を含む。
    • os
    • オペレーティングシステム情報、名前とバージョンを含む。
    • plugins
    • 各ノードごとにインストールされたプラグインとモジュールの詳細。各プラグインとモジュールに対して以下の情報が利用可能です:
      • name: プラグイン名
      • version: プラグインが構築されたElasticsearchのバージョン
      • description: プラグインの目的に関する短い説明
      • classname: プラグインのエントリポイントの完全修飾クラス名
      • has_native_controller: プラグインにネイティブコントローラプロセスがあるかどうか
    • process
    • プロセス情報、数値プロセスIDを含む。
    • settings
    • elasticsearch.ymlファイルで定義されたすべてのノード設定のリスト。
    • thread_pool
    • 各スレッドプールの設定に関する情報。
    • transport
    • ノードのトランスポートインターフェースに関する情報。

このAPIの完全なGET /_nodes/<node_id>/<metric>形式を使用する場合、すべてのメトリックを取得するためにメトリック_allを要求することも、すべてのメトリックを抑制し、ノードのIDのみを取得するためにメトリック_noneを要求することもできます。

  • <node_id>
  • (オプション、文字列)返される情報を制限するために使用されるノードIDまたは名前のカンマ区切りリスト。

レスポンスボディ

  • build_hash
  • このリリースの最後のgitコミットの短いハッシュ。
  • host
  • ノードのホスト名。
  • ip
  • ノードのIPアドレス。
  • name
  • ノードの名前。
  • total_indexing_buffer
  • 最近インデックスされたドキュメントをディスクに書き込む前に保持するために使用される合計ヒープ。 このサイズはこのノードのすべてのシャードで共有されるプールであり、インデックスバッファ設定によって制御されます。
  • total_indexing_buffer_in_bytes
  • total_indexing_bufferと同じですが、バイトで表現されます。
  • transport_address
  • トランスポートHTTP接続が受け入れられるホストとポート。
  • version
  • このノードで実行されているElasticsearchのバージョン。
  • transport_version
  • このノードが通信できる最新のトランスポートバージョン。
  • index_version
  • このノードが読み取ることができる最新のインデックスバージョン。
  • component_versions
  • このノードにロードされている個々のコンポーネントのバージョン番号。
  1. - `````os.refresh_interval_in_millis
  • OS統計のリフレッシュ間隔
  • os.name
  • オペレーティングシステムの名前(例:Linux、Windows、Mac OS X)
  • os.arch
  • JVMアーキテクチャの名前(例:amd64、x86)
  • os.version
  • オペレーティングシステムのバージョン
  • os.available_processors
  • Java仮想マシンに利用可能なプロセッサの数
  • os.allocated_processors
  • スレッドプールサイズを計算するために実際に使用されるプロセッサの数。この数はノードのnode.processors設定で設定でき、デフォルトではOSによって報告されたプロセッサの数になります。
  1. - `````process.refresh_interval_in_millis
  • プロセス統計のリフレッシュ間隔
  • process.id
  • プロセス識別子(PID)
  • process.mlockall
  • プロセスアドレス空間がメモリに正常にロックされているかどうかを示します。

クエリパラメータ

  • flat_settings
  • (オプション、ブール値)trueの場合、設定をフラット形式で返します。デフォルトはfalseです。
  • timeout
  • (オプション、時間単位)各ノードが応答するまでの待機期間。ノードがタイムアウトが切れる前に応答しない場合、その情報はレスポンスに含まれません。ただし、タイムアウトしたノードはレスポンスの_nodes.failedプロパティに含まれます。デフォルトではタイムアウトはありません。

Ruby

  1. response = client.nodes.info(
  2. node_id: 'process'
  3. )
  4. puts response
  5. response = client.nodes.info(
  6. node_id: '_all',
  7. metric: 'process'
  8. )
  9. puts response
  10. response = client.nodes.info(
  11. node_id: 'nodeId1,nodeId2',
  12. metric: 'jvm,process'
  13. )
  14. puts response
  15. response = client.nodes.info(
  16. node_id: 'nodeId1,nodeId2',
  17. metric: '_all'
  18. )
  19. puts response

コンソール

  1. # プロセスのみを返す
  2. GET /_nodes/process
  3. # 上記と同じ
  4. GET /_nodes/_all/process
  5. # nodeId1とnodeId2のJVMとプロセスのみを返す
  6. GET /_nodes/nodeId1,nodeId2/jvm,process
  7. # 上記と同じ
  8. GET /_nodes/nodeId1,nodeId2/info/jvm,process
  9. # nodeId1とnodeId2のすべての情報を返す
  10. GET /_nodes/nodeId1,nodeId2/_all

_allフラグを設定すると、すべての情報を返すことができます - または省略することもできます。

プラグインメトリックの例

  1. #### Python
  2. ``````python
  3. resp = client.nodes.info(
  4. node_id="plugins",
  5. )
  6. print(resp)
  7. `

Ruby

  1. response = client.nodes.info(
  2. node_id: 'plugins'
  3. )
  4. puts response

Js

  1. const response = await client.nodes.info({
  2. node_id: "plugins",
  3. });
  4. console.log(response);

コンソール

  1. GET /_nodes/plugins

APIは以下のレスポンスを返します:

コンソール-結果

  1. {
  2. "_nodes": ...
  3. "cluster_name": "elasticsearch",
  4. "nodes": {
  5. "USpTGYaBSIKbgSUJR2Z9lg": {
  6. "name": "node-0",
  7. "transport_address": "192.168.17:9300",
  8. "host": "node-0.elastic.co",
  9. "ip": "192.168.17",
  10. "version": "{version}",
  11. "transport_version": 100000298,
  12. "index_version": 100000074,
  13. "component_versions": {
  14. "ml_config_version": 100000162,
  15. "transform_config_version": 100000096
  16. },
  17. "build_flavor": "default",
  18. "build_type": "{build_type}",
  19. "build_hash": "587409e",
  20. "roles": [
  21. "master",
  22. "data",
  23. "ingest"
  24. ],
  25. "attributes": {},
  26. "plugins": [
  27. {
  28. "name": "analysis-icu",
  29. "version": "{version}",
  30. "description": "The ICU Analysis plugin integrates Lucene ICU module into elasticsearch, adding ICU relates analysis components.",
  31. "classname": "org.elasticsearch.plugin.analysis.icu.AnalysisICUPlugin",
  32. "has_native_controller": false
  33. }
  34. ],
  35. "modules": [
  36. {
  37. "name": "lang-painless",
  38. "version": "{version}",
  39. "description": "An easy, safe and fast scripting language for Elasticsearch",
  40. "classname": "org.elasticsearch.painless.PainlessPlugin",
  41. "has_native_controller": false
  42. }
  43. ]
  44. }
  45. }
  46. }

インジェストメトリックの例

  1. #### Python
  2. ``````python
  3. resp = client.nodes.info(
  4. node_id="ingest",
  5. )
  6. print(resp)
  7. `

Ruby

  1. response = client.nodes.info(
  2. node_id: 'ingest'
  3. )
  4. puts response

Js

  1. const response = await client.nodes.info({
  2. node_id: "ingest",
  3. });
  4. console.log(response);

コンソール

  1. GET /_nodes/ingest

APIは以下のレスポンスを返します:

コンソール-結果

  1. {
  2. "_nodes": ...
  3. "cluster_name": "elasticsearch",
  4. "nodes": {
  5. "USpTGYaBSIKbgSUJR2Z9lg": {
  6. "name": "node-0",
  7. "transport_address": "192.168.17:9300",
  8. "host": "node-0.elastic.co",
  9. "ip": "192.168.17",
  10. "version": "{version}",
  11. "transport_version": 100000298,
  12. "index_version": 100000074,
  13. "component_versions": {
  14. "ml_config_version": 100000162,
  15. "transform_config_version": 100000096
  16. },
  17. "build_flavor": "default",
  18. "build_type": "{build_type}",
  19. "build_hash": "587409e",
  20. "roles": [],
  21. "attributes": {},
  22. "ingest": {
  23. "processors": [
  24. {
  25. "type": "date"
  26. },
  27. {
  28. "type": "uppercase"
  29. },
  30. {
  31. "type": "set"
  32. },
  33. {
  34. "type": "lowercase"
  35. },
  36. {
  37. "type": "gsub"
  38. },
  39. {
  40. "type": "convert"
  41. },
  42. {
  43. "type": "remove"
  44. },
  45. {
  46. "type": "fail"
  47. },
  48. {
  49. "type": "foreach"
  50. },
  51. {
  52. "type": "split"
  53. },
  54. {
  55. "type": "trim"
  56. },
  57. {
  58. "type": "rename"
  59. },
  60. {
  61. "type": "join"
  62. },
  63. {
  64. "type": "append"
  65. }
  66. ]
  67. }
  68. }
  69. }
  70. }