banshee/storage-collection/storage/netapp/https/ontap-9.6/
disks
The state and the container of each disk of a NetApp ONTAP cluster, to see a broken disk, by its REST API.
by banshee1 installation1 version
Published on October 27, 2026. First version.
Disks of a NetApp ONTAP cluster, by its REST API
Returns, for each disk of a NetApp ONTAP cluster, its state and what it serves (an aggregate, a spare…), so that a broken disk is seen, read from the REST API with an account. Three 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/storage/disks?fields=name,state,container_type&max_records=1000, the account in Basic; the collector reads every page that _links.next.href points to.
{"records": [{"name": "1.0.5", "state": "present", "container_type": "aggregate"}]} - A disk is named as ONTAP names it (
1.0.5: stack, shelf, bay). - The state is ONTAP's:
broken,copy,maintenance,partner,pending,present,reconstructing,removed,spare,unfail,zeroing; a disk without one readsunknown. - The container is ONTAP's:
aggregate,broken,foreign,labelmaint,maintenance,shared,spare,unassigned,unknown,unsupported,remote,mediator. - A code 401 or 403 stops the collector
misconfigured; 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 trusted by the TLS profile of the probe (a pinned fingerprint in
protocol:http:fingerprint, or the certificate 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 disk |
container | Container | — | yes, per disk |
Watches
| Name | Title | Kind | Defaults | Checked by default |
|---|---|---|---|---|
failed | Disk broken | state to avoid, on state | warning on maintenance, reconstructing, removed, unfail; critical on broken | yes |
unowned | Disk not in use | state to avoid, on container | warning on unassigned, foreign, unsupported, unknown | no |
missing | Disk missing | expected instances, on state | no disk named: it raises nothing until names are set on the probe | no |
Limits
- The number of spare disks left per node is not judged: each spare reads
spare, and the count is read in ONTAP. - A cluster without physical disks to list (ONTAP Select, Cloud Volumes ONTAP) may list none, which stops the collector
misconfigured. - The address is written into the URL as is: an IPv6 address must be given as a name.
- 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/disk.go) and Harvest reads it (conf/rest/9.12.0/disk.yaml); NetApp's documentation site refused to be read, and that each field is served as early as 9.6 is not verified.