NSX Advanced Load Balancer 系统会监控集群中的控制器节点,并收集有关各控制器节点中 CPU、内存和磁盘使用情况的分析信息。
背景
本节介绍如何使用 REST API 对 NSX Advanced Load Balancer 控制器 上发生的崩溃、重新启动及其他类似问题进行故障排除。要对这些问题进行故障排除,必须了解特定事件发生之前和之后运行的进程。要对许可证问题进行故障排除,还需要了解与控制器和服务引擎 (SE) 关联的各项衡量指标。
NSX Advanced Load Balancer 控制器 会收集两种类型的分析数据。这些数据为:
控制器衡量指标:包括集群中所有控制器节点的 CPU、内存和磁盘使用情况信息,这些信息每分钟跟踪一次。
进程衡量指标:包括 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 调用中所示)。