NSX Advanced Load Balancer システムは、クラスタ内のコントローラ ノードを監視します。コントローラ ノード全体の CPU、メモリ、ディスク使用量に関する分析情報が収集されます。
背景
このセクションでは、REST API を使用した NSX Advanced Load Balancer Controller のクラッシュ、再起動、および同様の問題のトラブルシューティングについて説明します。これらの問題をトラブルシューティングするには、特定のインシデントの前後に実行されていたプロセスを把握することが不可欠です。ライセンスの問題をトラブルシューティングするには、コントローラとサービス エンジン (SE) に関連付けられたさまざまなメトリックも必要です。
NSX Advanced Load Balancer Controller は、2 つのタイプの分析データを収集します。これらは次のとおりです。
コントローラ メトリック:1 分ごとに追跡される、クラスタ内のすべてのコントローラ ノードの CPU、メモリ、およびディスク使用量の情報が含まれます。
プロセス メトリック:これには、コントローラ ノードで実行されている各プロセスの CPU、メモリとディスクの使用量、コンテキスト スイッチの数、スワップの使用量、IO 読み取りバイト、IO 書き込みバイト、スレッドの数、および開かれたファイルの数が含まれます。
方法
コントローラ メトリックとプロセス メトリックのデータは 1 分ごとにキャプチャされ、コントローラで実行されているメトリック マネージャ プロセスに送信されます。メトリック マネージャは、5 分間の集計を実行し、データベースに書き込みます。したがって、これらのメトリックは、認証されたユーザーが REST API または SDK を介して使用できます。
例:vm_uuid の検索
次のステートメントを使用して、目的のコントローラ ノードの vm_uuid を見つけます。
https://10.10.24.102/api/cluster
上記の REST API 呼び出しでは、10.10.24.102 がコントローラの IP アドレスです。REST API 呼び出しの出力は次のとおりです。
{ "nodes" : [ { "ip" : { "type" : "V4", "addr" : "10.10.24.102" }, "vm_hostname" : "node1.controller.local", "vm_uuid" : "005056b015e3", "name" : "10.10.24.102", "vm_mor: "vm_147457" } ], "tenant_uuid" : "admin", "uuid" : "cluster-63087542-5f3b-44ec-8249-bf6428bed78f", "name" : "cluster-0-1" }
出力の 005056b015e3 は仮想マシン名またはコントローラの IP アドレス 10.10.24.102 の vm_uuid
です。この vm_uuid
を REST API 呼び出しに使用して、コントローラ メトリックとプロセス メトリックを収集します。
コントローラ メトリックの収集
次の REST API 呼び出しを使用して、コントローラ メトリックを収集します。
/api/analytics/metrics/controller/<vm-uuid>/?metric_id=controller_stats.avg_cpu_usage&pad_missing_data=false&limit=3&step=300
vm_uuid
をコントローラ ノードの vm_uuid_output
に置き換えます。
プロセス メトリックの取得
次の API 呼び出しを使用して、コントローラ ノードで実行されているすべてのプロセスのデータとログを収集します。
/api/analytics/metrics/controller/<vm-uuid>/?metric_id=process_stats.avg_fds&pad_missing_data=false&limit=3&step=300&obj_id=*
PID(プロセス ID)14257 の avi-health という名前の特定のプロセスには、次の API 呼び出しを使用します。
/api/analytics/metrics/controller/<vm-uuid>/?metric_id=process_stats.avg_fds&pad_missing_data=false&limit=3&step=300&obj_id=avi-health:14257
特定のプロセスのメトリックを収集する場合は、上記の REST API 呼び出しに示すように obj_id の * だけではなく、プロセス名とプロセス ID の値を指定します。