NSX Advanced Load Balancer 系统会监控集群中的控制器节点,并收集有关各控制器节点中 CPU、内存和磁盘使用情况的分析信息。

背景

本节介绍如何使用 REST API 对 NSX Advanced Load Balancer 控制器 上发生的崩溃、重新启动及其他类似问题进行故障排除。要对这些问题进行故障排除,必须了解特定事件发生之前和之后运行的进程。要对许可证问题进行故障排除,还需要了解与控制器和服务引擎 (SE) 关联的各项衡量指标。

NSX Advanced Load Balancer 控制器 会收集两种类型的分析数据。这些数据为:

  1. 控制器衡量指标:包括集群中所有控制器节点的 CPU、内存和磁盘使用情况信息,这些信息每分钟跟踪一次。

  2. 进程衡量指标:包括 CPU、内存和磁盘使用情况,上下文切换次数,交换空间使用情况,IO 读取字节数,IO 写入字节数,线程数,以及为控制器节点上运行的每个进程打开的文件数。

说明

控制器衡量指标和进程衡量指标的数据每分钟捕获一次,并且会发送到控制器上运行的衡量指标管理器进程。衡量指标管理器每五分钟汇总一次数据,并将其写入到数据库中。因此,授权用户可以通过 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=*

  • 对于名为 avi-health 且 PID(进程 ID)为 14257 的特定进程,使用以下 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

注:

要收集特定进程的衡量指标,需提供进程名称和进程 ID 的值,而不能仅对 obj_id 使用 *(如上面的 REST API 调用中所示)。