banshee/storage-collection/storage/netapp/https/ontap-9.6/
cluster
The state, fans, power supplies and temperature of each node of a NetApp ONTAP cluster by its REST API.
par banshee1 installation1 version
v1Dernière
Publiée le 27 octobre 2026. First version.
Nodes of a NetApp ONTAP cluster, by its REST API
Returns, for each node of a NetApp ONTAP cluster, its state (up, down, taken over by its HA partner…), its failed fans and power supplies, and whether it runs over temperature, read from the REST API with an account. Six watches are offered, each one set on the probe.
Versions
Written for the ONTAP REST API, which ONTAP serves from 9.6; ONTAP 9.5 and earlier have only ZAPI. Hence the folder ontap-9.6.
How it works
One GET https://<host:address>/api/cluster/nodes?fields=name,state,controller.failed_fan.count,controller.failed_power_supply.count,controller.over_temperature&max_records=1000, the account in Basic. ONTAP answers a page of records, and the path of the next page under _links.next.href when it cuts the list: the collector reads every page.
{"records": [{"name": "cluster1-01", "state": "up", "controller": {"failed_fan": {"count": 0}, "failed_power_supply": {"count": 0}, "over_temperature": "normal"}}], "num_records": 1} - The state is ONTAP's:
up,booting,down,taken_over,waiting_for_giveback,degraded,unknown. - The temperature is
normalorover. - A node that cannot be reached may lack its controller: only its state is returned.
- A code 401 or 403 stops the collector
misconfigured(the account is refused); any other code but 200 stops itunreachable.
The password comes from protocol:http:password, a secret variable: it only goes in the Basic header. The answer is not secret.
Prerequisites
- The cluster's management address as the host's address, reachable from the poller in HTTPS (443). Its certificate follows the TLS profile of the probe: ONTAP's self-signed certificate is trusted by pinning its fingerprint (
protocol:http:fingerprint) or by adding it underprotocol:tls:authorities. - An ONTAP account for the
httpapplication with thereadonlyrole, inprotocol:http:userandprotocol:http:password.
Outputs
| Name | Label | Unit | Per instance |
|---|---|---|---|
state | State | — | yes, per node |
failed-fans | Failed fans | — | yes, per node |
failed-power-supplies | Failed power supplies | — | yes, per node |
temperature | Temperature | — | yes, per node |
Watches
| Name | Title | Kind | Defaults | Checked by default |
|---|---|---|---|---|
down | Node down or taken over | state to avoid, on state | critical on down, taken_over, waiting_for_giveback | yes |
not-up | Node not up | expected value, on state | warning when the state is anything but up | yes |
fans | Failed fans | above a threshold, on failed-fans | warning above 0 | yes |
power-supplies | Failed power supplies | above a threshold, on failed-power-supplies | critical above 0 | yes |
over-temperature | Over temperature | state to avoid, on temperature | critical on over | yes |
missing | Node missing | expected instances, on state | no node named: it raises nothing until names are set on the probe | no |
Limits
- The address is written into the URL as is: an IPv6 address must be given as a name.
- The health of the cluster's subsystems (
system health status show) is not read: ONTAP serves it through the passage to its command line (/api/private/cli/…), not through the documented API. - Not checked against an ONTAP: the fields and states are those of the current ONTAP REST schema, as NetApp's own models write it (Trident,
models/node.go) and Harvest reads it (conf/rest/9.12.0/node.yaml); NetApp's documentation site refused to be read, and that each field is served as early as 9.6 is not verified.