master
yaml 555 lines 22.1 KB
Raw
1 plugin_name: go.d.plugin
2 modules:
3 - meta:
4 id: collector-go.d.plugin-powervault
5 plugin_name: go.d.plugin
6 module_name: powervault
7 monitored_instance:
8 name: Dell PowerVault ME4/ME5
9 link: https://www.dell.com/en-us/shop/povw/dell-powervault-me5
10 icon_filename: dell.svg
11 categories:
12 - data-collection.storage
13 keywords:
14 - powervault
15 - dell
16 - storage
17 - me4
18 - me5
19 - san
20 - das
21 related_resources:
22 integrations:
23 list: []
24 info_provided_to_referring_integrations:
25 description: ""
26 overview:
27 data_collection:
28 metrics_description: |
29 This collector monitors Dell PowerVault ME4 and ME5 storage arrays via the Management Controller Interface (MCI) REST API.
30
31 It collects metrics for the following components:
32
33 - **System Health** — overall array health status
34 - **Hardware Health** — component-level status counts (controllers, drives, fans, PSUs, FRUs, ports) by health state (OK, degraded, fault, unknown)
35 - **Controller Performance** — IOPS, throughput, CPU load, write cache usage, forwarded commands, cumulative I/O and cache hit/miss statistics
36 - **Volume Performance** — IOPS, throughput, write cache usage, cumulative I/O, cache hit/miss statistics, storage tier distribution (SSD/SAS/SATA)
37 - **Port I/O** — cumulative read/write operations and data transferred per host port
38 - **SAS PHY Errors** — disparity errors, lost dwords, invalid dwords aggregated per port
39 - **Pool Capacity** — total and available bytes per storage pool
40 - **Drive Metrics** — temperature, power-on hours, SSD life remaining per drive
41 - **Sensor Readings** — temperature, voltage, current, and charge capacity per sensor
42 method_description: |
43 The collector uses the MCI REST API (`/api/show/*` and `/api/show/*-statistics` endpoints) to fetch data.
44 Authentication uses a hash-based login (SHA-256 by default, MD5 for legacy firmware) — the collector
45 hashes `username_password`, calls `/api/login/<hash>`, and uses the returned session key for subsequent requests.
46
47 Discovery runs on startup and then every 10 collection cycles to refresh the hardware inventory.
48 Performance statistics (controllers, volumes, ports, PHY) are collected via concurrent API calls
49 each cycle. Hardware health, drive metrics, sensor readings, pool capacity, and system health
50 are computed from the cached discovery data without additional API calls.
51 supported_platforms:
52 include: []
53 exclude: []
54 multi_instance: true
55 additional_permissions:
56 description: |
57 A user account on the PowerVault management controller is required. Any role with API read access
58 is sufficient (e.g., the built-in `monitor` role). The account does not need write permissions.
59 default_behavior:
60 auto_detection:
61 description: |
62 The collector does not auto-detect PowerVault arrays. You must configure the management IP address,
63 username, and password explicitly.
64 limits:
65 description: |
66 The collector makes approximately 14 API calls per collection cycle (10 for discovery when needed,
67 4 for statistics). With the default 30-second collection interval, this is well within the MCI API's
68 capabilities. Each API call returns all entities of that type in a single response.
69 performance_impact:
70 description: |
71 The MCI API is lightweight and read-only. The collector's impact on the storage array is negligible.
72 Session keys are reused across collection cycles and automatically refreshed on expiry (HTTP 401).
73 setup:
74 prerequisites:
75 list:
76 - title: PowerVault API access
77 description: |
78 1. A user account on the PowerVault management controller with at least read-only access.
79 The built-in `monitor` role is sufficient.
80 2. Network connectivity from the Netdata Agent to the PowerVault management IP (HTTPS, port 443).
81 3. The management controller must have its REST API enabled (enabled by default on ME4/ME5).
82 - title: TLS certificate
83 description: |
84 PowerVault controllers typically use self-signed TLS certificates. You will likely need to set
85 `tls_skip_verify: yes` in the configuration, or provide the controller's CA certificate via `tls_ca`.
86 configuration:
87 file:
88 name: go.d/powervault.conf
89 options:
90 description: |
91 The following options can be defined globally: update_every, autodetection_retry.
92 folding:
93 title: Config options
94 enabled: true
95 list:
96 - name: update_every
97 description: Data collection interval (seconds).
98 default_value: 30
99 required: false
100 group: Collection
101 - name: autodetection_retry
102 description: Autodetection retry interval (seconds). Set 0 to disable.
103 default_value: 0
104 required: false
105 group: Collection
106
107 - name: url
108 description: PowerVault management controller URL.
109 default_value: https://127.0.0.1
110 required: true
111 group: Target
112 - name: timeout
113 description: HTTP request timeout (seconds).
114 default_value: 30
115 required: false
116 group: Target
117
118 - name: username
119 description: Username for MCI API authentication.
120 default_value: ""
121 required: true
122 group: HTTP Auth
123 - name: password
124 description: Password for MCI API authentication.
125 default_value: ""
126 required: true
127 group: HTTP Auth
128 - name: auth_digest
129 description: "Hash algorithm for authentication. Use `sha256` (default) or `md5` (legacy ME4 firmware < G280)."
130 default_value: sha256
131 required: false
132 group: HTTP Auth
133
134 - name: volume_selector
135 description: |
136 Space-separated [simple patterns](https://github.com/netdata/netdata/tree/master/src/libnetdata/simple_pattern#readme)
137 to filter which volumes to monitor. Use `*` for wildcards, `!` prefix to exclude.
138 An empty value monitors all volumes.
139 default_value: ""
140 required: false
141 group: Filtering
142
143 - name: tls_skip_verify
144 description: Skip TLS certificate and hostname verification (insecure, but often needed for self-signed certs on storage controllers).
145 default_value: no
146 required: false
147 group: TLS
148 - name: tls_ca
149 description: Path to CA bundle used to validate the server certificate.
150 default_value: ""
151 required: false
152 group: TLS
153 - name: tls_cert
154 description: Path to client TLS certificate (for mTLS).
155 default_value: ""
156 required: false
157 group: TLS
158 - name: tls_key
159 description: Path to client TLS private key (for mTLS).
160 default_value: ""
161 required: false
162 group: TLS
163
164 - name: proxy_url
165 description: HTTP proxy URL.
166 default_value: ""
167 required: false
168 group: Proxy
169 - name: proxy_username
170 description: Username for proxy Basic HTTP authentication.
171 default_value: ""
172 required: false
173 group: Proxy
174 - name: proxy_password
175 description: Password for proxy Basic HTTP authentication.
176 default_value: ""
177 required: false
178 group: Proxy
179
180 - name: headers
181 description: "Additional HTTP headers (one per line as key: value)."
182 default_value: ""
183 required: false
184 group: Request
185 - name: not_follow_redirects
186 description: Do not follow HTTP redirects.
187 default_value: no
188 required: false
189 group: Request
190
191 - name: vnode
192 description: Associates this data collection job with a [Virtual Node](https://learn.netdata.cloud/docs/netdata-agent/configuration/organize-systems-metrics-and-alerts#virtual-nodes).
193 default_value: ""
194 required: false
195 group: Virtual Node
196 examples:
197 folding:
198 title: Config
199 enabled: true
200 list:
201 - name: Basic
202 description: A minimal configuration connecting to a PowerVault controller with a self-signed certificate.
203 config: |
204 jobs:
205 - name: pv-lab
206 url: https://10.0.0.1
207 username: monitor
208 password: monitor123
209 tls_skip_verify: yes
210 - name: With volume filtering
211 description: Monitor only production volumes, excluding temporary and test volumes.
212 config: |
213 jobs:
214 - name: pv-prod
215 url: https://10.0.0.1
216 username: monitor
217 password: monitor123
218 tls_skip_verify: yes
219 volume_selector: "prod-* !*-temp !*-test"
220 - name: Legacy ME4 with MD5 auth
221 description: Connecting to an older ME4 controller that requires MD5 authentication (firmware before G280).
222 config: |
223 jobs:
224 - name: pv-legacy
225 url: https://10.0.0.2
226 username: manage
227 password: manage123
228 auth_digest: md5
229 tls_skip_verify: yes
230 - name: Multi-instance
231 description: |
232 > **Note**: When you define multiple jobs, their names must be unique.
233
234 Monitoring multiple PowerVault arrays.
235 config: |
236 jobs:
237 - name: pv-site-a
238 url: https://10.0.0.1
239 username: monitor
240 password: monitor123
241 tls_skip_verify: yes
242
243 - name: pv-site-b
244 url: https://10.0.0.2
245 username: monitor
246 password: monitor456
247 tls_skip_verify: yes
248 troubleshooting:
249 problems:
250 list:
251 - name: Authentication failure
252 description: |
253 If the collector fails with `login: authentication failed`:
254
255 1. Verify the username and password are correct.
256 2. Check the `auth_digest` setting. ME4 firmware before G280 requires `auth_digest: md5`.
257 ME5 and newer ME4 firmware use `sha256` (the default).
258 3. Ensure the user account is not locked or expired on the controller.
259 - name: Connection refused or timeout
260 description: |
261 If the collector fails with connection errors:
262
263 1. Verify the `url` points to the management controller IP (not a data port).
264 2. Ensure HTTPS port 443 is reachable from the Netdata Agent host.
265 3. If using a firewall, allow outbound HTTPS to the controller.
266 4. Try increasing `timeout` if the controller is on a high-latency link.
267 - name: TLS certificate errors
268 description: |
269 PowerVault controllers ship with self-signed certificates. If you see TLS errors:
270
271 1. Set `tls_skip_verify: yes` in the configuration (most common solution).
272 2. Alternatively, export the controller's certificate and provide it via `tls_ca`.
273 alerts: []
274 metrics:
275 folding:
276 title: Metrics
277 enabled: false
278 description: ""
279 availability: []
280 scopes:
281 - name: global
282 description: These metrics refer to the entire monitored PowerVault array.
283 labels: []
284 metrics:
285 - name: powervault.system_health
286 description: System Health Status
287 unit: status
288 chart_type: line
289 dimensions:
290 - name: health
291 - name: powervault.hw_health_controller
292 description: Controller Health Status
293 unit: controllers
294 chart_type: stacked
295 dimensions:
296 - name: ok
297 - name: degraded
298 - name: fault
299 - name: unknown
300 - name: powervault.hw_health_drive
301 description: Drive Health Status
302 unit: drives
303 chart_type: stacked
304 dimensions:
305 - name: ok
306 - name: degraded
307 - name: fault
308 - name: unknown
309 - name: powervault.hw_health_fan
310 description: Fan Health Status
311 unit: fans
312 chart_type: stacked
313 dimensions:
314 - name: ok
315 - name: degraded
316 - name: fault
317 - name: unknown
318 - name: powervault.hw_health_psu
319 description: Power Supply Health Status
320 unit: PSUs
321 chart_type: stacked
322 dimensions:
323 - name: ok
324 - name: degraded
325 - name: fault
326 - name: unknown
327 - name: powervault.hw_health_fru
328 description: FRU Health Status
329 unit: FRUs
330 chart_type: stacked
331 dimensions:
332 - name: ok
333 - name: degraded
334 - name: fault
335 - name: unknown
336 - name: powervault.hw_health_port
337 description: Port Health Status
338 unit: ports
339 chart_type: stacked
340 dimensions:
341 - name: ok
342 - name: degraded
343 - name: fault
344 - name: unknown
345 - name: controller
346 description: These metrics refer to individual RAID controllers (typically controller_a and controller_b in a dual-controller configuration).
347 labels:
348 - name: controller
349 description: Controller durable ID (e.g., `controller_a`, `controller_b`).
350 metrics:
351 - name: powervault.controller_iops
352 description: Controller IOPS
353 unit: ops/s
354 chart_type: line
355 dimensions:
356 - name: iops
357 - name: powervault.controller_throughput
358 description: Controller Throughput
359 unit: bytes/s
360 chart_type: line
361 dimensions:
362 - name: throughput
363 - name: powervault.controller_cpu_load
364 description: Controller CPU Load
365 unit: percentage
366 chart_type: line
367 dimensions:
368 - name: cpu_load
369 - name: powervault.controller_write_cache_used
370 description: Controller Write Cache Usage
371 unit: percentage
372 chart_type: line
373 dimensions:
374 - name: write_cache_used
375 - name: powervault.controller_forwarded_cmds
376 description: Controller Forwarded Commands
377 unit: commands
378 chart_type: line
379 dimensions:
380 - name: forwarded
381 - name: powervault.controller_io
382 description: Controller Cumulative I/O
383 unit: bytes
384 chart_type: area
385 dimensions:
386 - name: read
387 - name: written
388 - name: powervault.controller_ops
389 description: Controller Cumulative Operations
390 unit: ops
391 chart_type: area
392 dimensions:
393 - name: read
394 - name: write
395 - name: powervault.controller_cache_hits
396 description: Controller Cache Hits and Misses
397 unit: hits
398 chart_type: stacked
399 dimensions:
400 - name: read_hits
401 - name: read_misses
402 - name: write_hits
403 - name: write_misses
404 - name: volume
405 description: These metrics refer to individual storage volumes. Volumes can be filtered using the `volume_selector` configuration option.
406 labels:
407 - name: volume
408 description: Volume name (e.g., `prod-db-01`).
409 metrics:
410 - name: powervault.volume_iops
411 description: Volume IOPS
412 unit: ops/s
413 chart_type: line
414 dimensions:
415 - name: iops
416 - name: powervault.volume_throughput
417 description: Volume Throughput
418 unit: bytes/s
419 chart_type: line
420 dimensions:
421 - name: throughput
422 - name: powervault.volume_write_cache_percent
423 description: Volume Write Cache Usage
424 unit: percentage
425 chart_type: line
426 dimensions:
427 - name: write_cache
428 - name: powervault.volume_io
429 description: Volume Cumulative I/O
430 unit: bytes
431 chart_type: area
432 dimensions:
433 - name: read
434 - name: written
435 - name: powervault.volume_ops
436 description: Volume Cumulative Operations
437 unit: ops
438 chart_type: area
439 dimensions:
440 - name: read
441 - name: write
442 - name: powervault.volume_cache_hits
443 description: Volume Cache Hits and Misses
444 unit: hits
445 chart_type: stacked
446 dimensions:
447 - name: read_hits
448 - name: read_misses
449 - name: write_hits
450 - name: write_misses
451 - name: powervault.volume_tier_distribution
452 description: Volume Storage Tier Distribution
453 unit: percentage
454 chart_type: stacked
455 dimensions:
456 - name: ssd
457 - name: sas
458 - name: sata
459 - name: port
460 description: These metrics refer to individual host ports (SAS/FC ports used for host connectivity).
461 labels:
462 - name: port
463 description: Port durable ID (e.g., `hostport_A0`).
464 metrics:
465 - name: powervault.port_io
466 description: Port Cumulative I/O
467 unit: bytes
468 chart_type: area
469 dimensions:
470 - name: read
471 - name: written
472 - name: powervault.port_ops
473 description: Port Cumulative Operations
474 unit: ops
475 chart_type: area
476 dimensions:
477 - name: read
478 - name: write
479 - name: powervault.phy_errors
480 description: SAS PHY Errors
481 unit: errors
482 chart_type: stacked
483 dimensions:
484 - name: disparity
485 - name: lost_dwords
486 - name: invalid_dwords
487 - name: pool
488 description: These metrics refer to individual storage pools (also known as disk groups or virtual pools).
489 labels:
490 - name: pool
491 description: Pool name (e.g., `Pool-A`).
492 metrics:
493 - name: powervault.pool_capacity
494 description: Pool Capacity
495 unit: bytes
496 chart_type: line
497 dimensions:
498 - name: total
499 - name: available
500 - name: drive
501 description: These metrics refer to individual physical drives (HDDs and SSDs).
502 labels:
503 - name: drive
504 description: Drive location (e.g., `0.0` for enclosure 0, slot 0).
505 metrics:
506 - name: powervault.drive_temperature
507 description: Drive Temperature
508 unit: Celsius
509 chart_type: line
510 dimensions:
511 - name: temperature
512 - name: powervault.drive_power_on_hours
513 description: Drive Power-On Hours
514 unit: hours
515 chart_type: line
516 dimensions:
517 - name: power_on_hours
518 - name: powervault.drive_ssd_life_left
519 description: Drive SSD Life Remaining
520 unit: percentage
521 chart_type: line
522 dimensions:
523 - name: life_left
524 - name: sensor
525 description: |
526 These metrics refer to individual hardware sensors. Sensor types include temperature,
527 voltage, current, and charge capacity (supercapacitor/battery backup units).
528 labels:
529 - name: sensor
530 description: Sensor durable ID (e.g., `sensor_temp_ctrl_A.1`).
531 metrics:
532 - name: powervault.sensor_temperature
533 description: Sensor Temperature
534 unit: Celsius
535 chart_type: line
536 dimensions:
537 - name: temperature
538 - name: powervault.sensor_voltage
539 description: Sensor Voltage
540 unit: millivolts
541 chart_type: line
542 dimensions:
543 - name: voltage
544 - name: powervault.sensor_current
545 description: Sensor Current
546 unit: milliamps
547 chart_type: line
548 dimensions:
549 - name: current
550 - name: powervault.sensor_charge_capacity
551 description: Sensor Charge Capacity
552 unit: percentage
553 chart_type: line
554 dimensions:
555 - name: charge_capacity