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) |