banshee/hardware-collection/hardware/redfish/https/
storage
The health of each storage controller, drive and volume of a server, failure predictions and SSD wear, by Redfish.
by banshee1 installation1 version
Published on October 27, 2026. First version.
Storage of a server, by Redfish
Returns, for each storage controller, drive and volume a server's management card serves by Redfish, its health; for a drive, whether it predicts its own failure and, for an SSD, its remaining life. Four watches are offered, each one set on the probe.
Versions
Generic: written for the Storage, Drive and Volume schemas of DMTF Redfish, whose fields read here have kept their form since they appeared (2016–2017). Any management card that serves them: Dell iDRAC, HPE iLO, Supermicro, Lenovo XCC, OpenBMC. Hence the common level.
How it works
The collector reads, the account in Basic, GET https://<host:address>/redfish/v1/Systems, each system it lists, its Storage collection, then each storage resource, each of its Drives, and each member of its Volumes collection.
{"Id": "RAID.Integrated.1-1", "Name": "PERC H755 Front", "Status": {"Health": "OK", "HealthRollup": "Warning"},
"Drives": [{"@odata.id": "/redfish/v1/Systems/System.Embedded.1/Storage/RAID.Integrated.1-1/Drives/Disk.Bay.0"}],
"Volumes": {"@odata.id": "/redfish/v1/Systems/System.Embedded.1/Storage/RAID.Integrated.1-1/Volumes"}} - A storage resource is a storage subsystem, most often one controller: it is returned with the kind
controller; a drive withdrive, a volume withvolume. - Each is named by its
Name; when two bear the same name (two drivesDisk 0on two controllers), each is named by its name followed by itsId. healthis the resource's ownHealth, in lower case (ok,warning,critical),unknownwhen it gives none. Its own, not itsHealthRollup: a controller would otherwise raise again for each failed drive under it.failure-predictedreadsyeswhen the drive says it will fail (FailurePredicted, the drive's SMART verdict as the controller reads it),nootherwise; not returned when the card does not say.remaining-lifeisPredictedMediaLifeLeftPercent, for a drive that estimates it (an SSD).- A drive or a volume the card says
Absent(an empty bay) is left out. - A code 401 or 403 stops the collector
misconfigured; any other code but 200 stops itunreachable, with the path it was reading. A card that serves no storage resource stops itmisconfigured.
The password comes from protocol:http:password, a secret variable: it only goes in the Basic header. Redfish only reads with GET.
Prerequisites
- The management card's address as the host's address, reachable from the poller in HTTPS (443); its certificate trusted by the TLS profile of the probe (
protocol:http:fingerprint, or its authority underprotocol:tls:authorities). - A read-only account on the card (the
ReadOnlyrole of Redfish), inprotocol:http:userandprotocol:http:password.
Outputs
| Name | Label | Unit | Per instance |
|---|---|---|---|
health | Health | — | yes, per component |
kind | Kind | — | yes, per component |
failure-predicted | Failure predicted | — | yes, per component |
remaining-life | Remaining life | % | yes, per component |
Watches
| Name | Title | Kind | Defaults | Checked by default |
|---|---|---|---|---|
unhealthy | Health degraded | state to avoid, on health | warning on warning, critical on critical | yes |
failure-predicted | Drive failure predicted | state to avoid, on failure-predicted | warning on yes | yes |
worn | Drive worn out | below a threshold, on remaining-life | warning below 10 %, critical below 3 % | yes |
missing | Component missing | expected instances, on health | no component named: it raises nothing until names are set on the probe | no |
- A volume that loses a drive of its mirror reads
warning(degraded) while it rebuilds; a volume lost readscritical.
Limits
- The address is written into the URL as is: an IPv6 address must be given as a name.
- One request per drive and per volume: a server with many drives takes as many round trips.
- A controller the card serves only under a resource of its own brand, outside
Storage(HPE iLO'sSmartStoragefor older Smart Array controllers), is not read; a card that serves no storage at all stops the collectormisconfigured. - A collection cut into pages (
Members@odata.nextLink) is read on its first page only. - A JSON
nullreads as''in Keen, which the collector takes for "not given": aPredictedMediaLifeLeftPercentor aFailurePredictedwrittennullis not returned, aHealthwrittennullreadsunknown, which raises nothing. - Not checked against a card: the paths and fields are those of the DMTF Redfish schemas (
ComputerSystem,Storage,Drive,Volume), read on redfish.dmtf.org.