Skip to content

Warning

License: Pro - Requires a Pro or Enterprise license.

Overview

The vSphere HA probe monitors VMware vSphere high-availability infrastructure from a single vCenter: vSAN cluster health (via the vSAN health API) and, optionally, NSX-T overlay status (via the NSX manager REST API). One probe instance monitors one vCenter; add more instances for additional vCenters.

Collected data:

  • vCenter reachability (probe liveness)
  • Per-cluster vSAN overall health, disk-group count, healthy/degraded object counts, and pending resync bytes
  • NSX manager connectivity
  • NSX transport-node counts (total and up), logical-switch count
  • Per-edge-cluster NSX health

All metrics are emitted under the senhub.vsphere_ha.* namespace. vSAN metrics carry a cluster attribute (one series per cluster); NSX edge-cluster health carries an edge_cluster_id attribute (one series per edge cluster). Both act as filters in the Sensor URLs tab of the console. NSX-T monitoring is only performed when nsx_endpoint and nsx_username are configured; a vCenter-only setup collects vSAN metrics alone.

Quick Start

Basic Configuration (vSAN only)

# probes.d/40-vsphere-ha.yaml — each file under probes.d/ is a YAML array of probes
- name: vsphere-ha-prod
  type: vsphere_ha
  params:
    vcenter_url: "https://vcenter.company.com"
    username: "monitoring@vsphere.local"
    password: "${secret:vsphere-ha-prod.password}"   # OS secret store; inline plaintext is auto-sealed on install
    interval: 300
    insecure_skip_verify: false

vcenter_url may be given with or without a scheme; https:// is assumed when none is provided. The ${secret:...} reference resolves the password from the OS-native secret store (see Configuration).

With NSX-T Monitoring

Add the NSX manager endpoint and credentials to also collect NSX overlay health:

# probes.d/40-vsphere-ha.yaml
- name: vsphere-ha-prod
  type: vsphere_ha
  params:
    vcenter_url: "https://vcenter.company.com"
    username: "monitoring@vsphere.local"
    password: "${secret:vsphere-ha-prod.password}"
    interval: 300
    insecure_skip_verify: true   # self-signed vCenter certificate
    nsx_endpoint: "https://nsx-manager.company.com"
    nsx_username: "monitoring"
    nsx_password: "${secret:vsphere-ha-prod.nsx_password}"

When nsx_endpoint or nsx_username is omitted, the probe collects vSAN metrics only. A vSAN collection failure marks the probe down (up = 0); an NSX failure is non-fatal and leaves the vSAN metrics intact.

Configuration Parameters

Parameter Must set Default Description
vcenter_url Yes - vCenter management address. Example: https://vcenter.example.com
username Yes - vCenter user with read access to the vSAN health view. Example: monitor@vsphere.local
password In practice - Password of the vCenter user. A secret: reference it with ${secret:…}, ${env:…} or ${file:…} rather than writing it in the file
insecure_skip_verify No false Accept the vCenter and NSX certificates without validating them
nsx_endpoint No - NSX manager base URL; empty turns NSX-T collection off. Example: https://nsx.example.com
nsx_username No - NSX manager user with read access to the REST API; NSX-T collection needs nsx_endpoint and this user
nsx_password No - Password of the NSX manager user. A secret: reference it with ${secret:…}, ${env:…} or ${file:…} rather than writing it in the file
interval No 300 Seconds between collections
timeout No 30 Per-request deadline for vCenter and NSX calls, in seconds

Metrics Collected

vSAN metrics carry a cluster attribute identifying the vSAN cluster; the objects metric splits healthy vs degraded via an OTel attribute rather than separate metric names.

Overview

Metric Unit Description
senhub.vsphere_ha.up 1 1 when the vCenter session was live and vSAN answered this cycle, else 0

vSAN

Metric Unit Description
senhub.vsphere_ha.vsan.health 1 Overall cluster health (green=2, yellow=1, red/other=0)
senhub.vsphere_ha.vsan.disk_groups {group} Host physical-disk health summaries (disk-group proxy)
senhub.vsphere_ha.vsan.objects {object} vSAN object count, split by senhub.vsphere_ha.vsan.object.state (healthy / degraded)
senhub.vsphere_ha.vsan.resync By Total bytes pending vSAN resync on the cluster

NSX-T

Metric Unit Description
senhub.vsphere_ha.nsx.manager.health 1 NSX manager connectivity (1 = CONNECTED, else 0)
senhub.vsphere_ha.nsx.transport_node.count {node} Total number of transport nodes
senhub.vsphere_ha.nsx.transport_nodes.up {node} Transport nodes deployed (NODE_READY) and not in maintenance
senhub.vsphere_ha.nsx.logical_switches {switch} Number of logical switches (segments)
senhub.vsphere_ha.nsx.edge_cluster.health 1 Per-edge-cluster health (1 = all members UP, else 0), attribute nsx.edge_cluster.id

Filtering (Sensor URLs tab of the console)

The Sensor URLs tab of the console exposes filters for this probe:

  • Metric Type (category) — overview, vSAN, NSX-T
  • vSAN Cluster — pick a specific cluster
  • NSX Edge Cluster — pick a specific edge cluster

Requirements

  • vCenter reachable from the agent host (HTTPS, default port 443) with vSAN enabled on the monitored clusters.
  • A vCenter user with read access to the vSAN cluster health view (a read-only monitoring role is sufficient; no administrative rights are required).
  • For NSX-T monitoring: an NSX manager reachable over HTTPS and an NSX user with read access to the manager REST API (/api/v1/cluster/status, /transport-nodes/status, /logical-switches, /edge-clusters).

Outputs

vSphere HA metrics are available through every configured output — OTLP, Prometheus, and the pull formats (PRTG, Nagios, Web UI). For PRTG and Nagios, query the probe by its configured name:

curl "http://localhost:8080/api/{agentkey}/prtg/metrics/vsphere-ha-prod"
curl "http://localhost:8080/api/{agentkey}/nagios/metrics/vsphere-ha-prod"

Metric reference

Every metric this probe can emit. Metric is the OpenTelemetry name the OTLP, Prometheus and Zabbix outputs derive theirs from. Name is what a Nagios check and the API metrics= filter match. PRTG channel is the label PRTG shows, placeholders filled from the series' tags.

Metric Name PRTG channel Unit Description
senhub.vsphere_ha.up vsphere_ha_up vCenter Reachable # 1 when the vCenter session was live and vSAN answered this cycle, else 0
senhub.vsphere_ha.vsan.health vsphere_ha_vsan_health vSAN Health ({cluster}) # vSAN overall cluster health (green=2, yellow=1, red/other=0)
senhub.vsphere_ha.vsan.disk_groups vsphere_ha_vsan_disk_groups vSAN Disk Groups ({cluster}) # Number of host physical-disk health summaries (disk-group proxy)
senhub.vsphere_ha.vsan.objects vsphere_ha_vsan_objects_healthy vSAN Objects Healthy ({cluster}) # Number of vSAN objects in a healthy state
senhub.vsphere_ha.vsan.objects vsphere_ha_vsan_objects_degraded vSAN Objects Degraded ({cluster}) # Number of vSAN objects not in a healthy state
senhub.vsphere_ha.vsan.resync vsphere_ha_vsan_resync_bytes vSAN Resync Pending ({cluster}) Bytes Total bytes pending vSAN resync on the cluster
senhub.vsphere_ha.nsx.manager.health vsphere_ha_nsx_manager_health NSX Manager Health # NSX manager connectivity (1 = CONNECTED, else 0)
senhub.vsphere_ha.nsx.transport_node.count vsphere_ha_nsx_transport_nodes_total NSX Transport Nodes Total # Total number of NSX transport nodes
senhub.vsphere_ha.nsx.transport_nodes.up vsphere_ha_nsx_transport_nodes_up NSX Transport Nodes Up # Transport nodes deployed (NODE_READY) and not in maintenance
senhub.vsphere_ha.nsx.logical_switches vsphere_ha_nsx_logical_switches NSX Logical Switches # Number of NSX logical switches (segments)
senhub.vsphere_ha.nsx.edge_cluster.health vsphere_ha_nsx_edge_clusters_health NSX Edge Cluster Health ({edge_cluster_id}) # Edge cluster health (1 = all members UP, else 0)