diff options
author | Denis Rasihov <denis.rasihov@zabbix.com> | 2022-05-26 15:41:02 +0300 |
---|---|---|
committer | Denis Rasihov <denis.rasihov@zabbix.com> | 2022-05-26 15:41:02 +0300 |
commit | dfcf64ed21adf2eae091b348984951453b5c08a7 (patch) | |
tree | 459a553ebaebe0cfd21976aec1083d58197d80d4 /templates | |
parent | 1291ed850edc0aad4df5fd79383eb1a7e0c79167 (diff) |
.........T [ZBXNEXT-7630] updated HPE MSA templates
Diffstat (limited to 'templates')
4 files changed, 101 insertions, 85 deletions
diff --git a/templates/san/hpe_msa2040_http/README.md b/templates/san/hpe_msa2040_http/README.md index 3d95093b1f9..63c829b025e 100644 --- a/templates/san/hpe_msa2040_http/README.md +++ b/templates/san/hpe_msa2040_http/README.md @@ -50,7 +50,7 @@ There are no template links in this template. |Name|Description|Type|Key and additional info| |----|-----------|----|----| |Controllers discovery |<p>Discover controllers.</p> |DEPENDENT |hpe.msa.controllers.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | -|Disk groups discovery |<p>Discover disk groups.</p> |DEPENDENT |hpe.msa.disks.groups.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|Disk groups discovery |<p>Discover disk groups.</p> |DEPENDENT |hpe.msa.disks.groups.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |Disks discovery |<p>Discover disks.</p> |DEPENDENT |hpe.msa.disks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Overrides:**</p><p>SSD life left<br> - {#TYPE} MATCHES_REGEX `8`<br> - ITEM_PROTOTYPE REGEXP `SSD life left` - DISCOVER</p> | |Enclosures discovery |<p>Discover enclosures.</p> |DEPENDENT |hpe.msa.enclosures.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |Fans discovery |<p>Discover fans.</p> |DEPENDENT |hpe.msa.fans.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fans']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | @@ -66,7 +66,7 @@ There are no template links in this template. |-----|----|-----------|----|---------------------| |HPE |Get method errors |<p>A list of method errors from API requests.</p> |DEPENDENT |hpe.msa.data.errors<p>**Preprocessing**:</p><p>- JSONPATH: `$.['errors']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | |HPE |Product ID |<p>The product model identifier.</p> |DEPENDENT |hpe.msa.system.product_id<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['product-id']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | -|HPE |System contact |<p>The name of the the person who administers the system.</p> |DEPENDENT |hpe.msa.system.contact<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-contact']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|HPE |System contact |<p>The name of the person who administers the system.</p> |DEPENDENT |hpe.msa.system.contact<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-contact']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | |HPE |System information |<p>A brief description of what the system is used for or how it is configured.</p> |DEPENDENT |hpe.msa.system.info<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-information']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | |HPE |System location |<p>The location of the system.</p> |DEPENDENT |hpe.msa.system.location<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-location']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | |HPE |System name |<p>The name of the storage system.</p> |DEPENDENT |hpe.msa.system.name<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-name']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | @@ -96,14 +96,14 @@ There are no template links in this template. |HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.reads["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['data-read-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> | |HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.writes["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['data-written-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> | |HPE |Controller [{#CONTROLLER.ID}]: Uptime |<p>Number of seconds since the controller was restarted.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",uptime]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['power-on-time'].first()`</p> | -|HPE |Disk group [{#NAME}]: Disks count |<p>Number of disks in the disk group.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",disk_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['diskcount'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | -|HPE |Disk group [{#NAME}]: Pool space used |<p>The percentage of pool capacity that the disk group occupies.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",pool_util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['pool-percentage'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | -|HPE |Disk group [{#NAME}]: Health |<p>Disk group health.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | -|HPE |Disk group [{#NAME}]: Space free |<p>The free space in the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['freespace-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> | -|HPE |Disk group [{#NAME}]: Space total |<p>The capacity of the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['size-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> | +|HPE |Disk group [{#NAME}]: Disks count |<p>Number of disks in the disk group.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",disk_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['diskcount'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|HPE |Disk group [{#NAME}]: Pool space used |<p>The percentage of pool capacity that the disk group occupies.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",pool_util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['pool-percentage'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|HPE |Disk group [{#NAME}]: Health |<p>Disk group health.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|HPE |Disk group [{#NAME}]: Space free |<p>The free space in the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['freespace-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> | +|HPE |Disk group [{#NAME}]: Space total |<p>The capacity of the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['size-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>- MULTIPLIER: `512`</p> | |HPE |Disk group [{#NAME}]: Space utilization |<p>The space utilization percentage in the disk group.</p> |CALCULATED |hpe.msa.disks.groups.space["{#NAME}",util]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`last(//hpe.msa.disks.groups.space["{#NAME}",free])/last(//hpe.msa.disks.groups.space["{#NAME}",total])*100` | -|HPE |Disk group [{#NAME}]: RAID type |<p>The RAID level of the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.raid["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['raidtype-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | -|HPE |Disk group [{#NAME}]: Status |<p>The status of the disk group:</p><p>- CRIT: Critical. The disk group is online but isn't fault tolerant because some of it's disks are down.</p><p>- DMGD: Damaged. The disk group is online and fault tolerant, but some of it's disks are damaged.</p><p>- FTDN: Fault tolerant with a down disk.The disk group is online and fault tolerant, but some of it's disks are down.</p><p>- FTOL: Fault tolerant.</p><p>- MSNG: Missing. The disk group is online and fault tolerant, but some of it's disks are missing.</p><p>- OFFL: Offline. Either the disk group is using offline initialization, or it's disks are down and data may be lost.</p><p>- QTCR: Quarantined critical. The disk group is critical with at least one inaccessible disk. For example, two disks are inaccessible in a RAID 6 disk group or one disk is inaccessible for other fault-tolerant RAID levels. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTDN: Quarantined with a down disk. The RAID6 disk group has one inaccessible disk. The disk group is fault tolerant but degraded. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTOF: Quarantined offline. The disk group is offline with multiple inaccessible disks causing user data to be incomplete, or is an NRAID or RAID 0 disk group.</p><p>- QTUN: Quarantined unsupported. The disk group contains data in a format that is not supported by this system. For example, this system does not support linear disk groups.</p><p>- STOP: The disk group is stopped.</p><p>- UNKN: Unknown.</p><p>- UP: Up. The disk group is online and does not have fault-tolerant attributes.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['status-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|HPE |Disk group [{#NAME}]: RAID type |<p>The RAID level of the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.raid["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['raidtype-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|HPE |Disk group [{#NAME}]: Status |<p>The status of the disk group:</p><p>- CRIT: Critical. The disk group is online but isn't fault tolerant because some of it's disks are down.</p><p>- DMGD: Damaged. The disk group is online and fault tolerant, but some of it's disks are damaged.</p><p>- FTDN: Fault tolerant with a down disk.The disk group is online and fault tolerant, but some of it's disks are down.</p><p>- FTOL: Fault tolerant.</p><p>- MSNG: Missing. The disk group is online and fault tolerant, but some of it's disks are missing.</p><p>- OFFL: Offline. Either the disk group is using offline initialization, or it's disks are down and data may be lost.</p><p>- QTCR: Quarantined critical. The disk group is critical with at least one inaccessible disk. For example, two disks are inaccessible in a RAID 6 disk group or one disk is inaccessible for other fault-tolerant RAID levels. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTDN: Quarantined with a down disk. The RAID6 disk group has one inaccessible disk. The disk group is fault tolerant but degraded. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTOF: Quarantined offline. The disk group is offline with multiple inaccessible disks causing user data to be incomplete, or is an NRAID or RAID 0 disk group.</p><p>- QTUN: Quarantined unsupported. The disk group contains data in a format that is not supported by this system. For example, this system does not support linear disk groups.</p><p>- STOP: The disk group is stopped.</p><p>- UNKN: Unknown.</p><p>- UP: Up. The disk group is online and does not have fault-tolerant attributes.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['status-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | |HPE |Disk group [{#NAME}]: IOPS, total rate |<p>Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.disks.groups.iops.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['iops'].first()`</p> | |HPE |Disk group [{#NAME}]: Average response time: Total |<p>Average response time for read and write operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['avg-rsp-time'].first()`</p><p>- MULTIPLIER: `0.000001`</p> | |HPE |Disk group [{#NAME}]: Average response time: Read |<p>Average response time for all read operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",read]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['avg-read-rsp-time'].first()`</p><p>- MULTIPLIER: `0.000001`</p> | @@ -139,6 +139,7 @@ There are no template links in this template. |HPE |Power supply [{#DURABLE.ID}]: Status |<p>Power supply status.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['status-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | |HPE |Power supply [{#DURABLE.ID}]: Part number |<p>Power supply part number.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",part_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['part-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | |HPE |Power supply [{#DURABLE.ID}]: Serial number |<p>Power supply serial number.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",serial_number]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['serial-number'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|HPE |Power supply [{#DURABLE.ID}]: Temperature |<p>Power supply temperature.</p> |DEPENDENT |hpe.msa.power_supplies["{#DURABLE.ID}",temperature]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies'][?(@['durable-id'] == "{#DURABLE.ID}")].['dctemp'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | |HPE |Port [{#NAME}]: Health |<p>Port health status.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports'][?(@['port'] == "{#NAME}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | |HPE |Port [{#NAME}]: Status |<p>Port status.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports'][?(@['port'] == "{#NAME}")].['status-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | |HPE |Port [{#NAME}]: Type |<p>Port type.</p> |DEPENDENT |hpe.msa.ports["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports'][?(@['port'] == "{#NAME}")].['port-type-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | @@ -165,11 +166,10 @@ There are no template links in this template. |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----|----|----| -|There are errors in method requests to API |<p>There are errors in method requests to API.</p> |`length(last(/HPE MSA 2040 Storage by HTTP/hpe.msa.data.errors))>0` |AVERAGE |<p>**Depends on**:</p><p>- Service is down or unavailable</p> | +|There are errors in method requests to API |<p>There are errors in method requests to API.</p> |`length(last(/HPE MSA 2040 Storage by HTTP/hpe.msa.data.errors))>2` |AVERAGE |<p>**Depends on**:</p><p>- Service is down or unavailable</p> | |System health is in degraded state |<p>System health is in degraded state.</p> |`last(/HPE MSA 2040 Storage by HTTP/hpe.msa.system.health)=1` |WARNING | | |System health is in fault state |<p>System health is in fault state.</p> |`last(/HPE MSA 2040 Storage by HTTP/hpe.msa.system.health)=2` |AVERAGE | | |System health is in unknown state |<p>System health is in unknown state.</p> |`last(/HPE MSA 2040 Storage by HTTP/hpe.msa.system.health)=3` |INFO | | -|Failed to fetch API data |<p>Zabbix has not received data for items for the last 5 minutes.</p> |`nodata(/HPE MSA 2040 Storage by HTTP/hpe.msa.system.health,5m)=1` |AVERAGE |<p>**Depends on**:</p><p>- Service is down or unavailable</p> | |Service is down or unavailable |<p>HTTP/HTTPS service is down or unable to establish TCP connection.</p> |`max(/HPE MSA 2040 Storage by HTTP/net.tcp.service["{$HPE.MSA.API.SCHEME}","{HOST.CONN}"],5m)=0` |HIGH | | |Controller [{#CONTROLLER.ID}]: Controller health is in degraded state |<p>Controller health is in degraded state.</p> |`last(/HPE MSA 2040 Storage by HTTP/hpe.msa.controllers["{#CONTROLLER.ID}",health])=1` |WARNING |<p>**Depends on**:</p><p>- Controller [{#CONTROLLER.ID}]: Controller is down</p> | |Controller [{#CONTROLLER.ID}]: Controller health is in fault state |<p>Controller health is in fault state.</p> |`last(/HPE MSA 2040 Storage by HTTP/hpe.msa.controllers["{#CONTROLLER.ID}",health])=2` |AVERAGE |<p>**Depends on**:</p><p>- Controller [{#CONTROLLER.ID}]: Controller is down</p> | diff --git a/templates/san/hpe_msa2040_http/template_san_hpe_msa2040_http.yaml b/templates/san/hpe_msa2040_http/template_san_hpe_msa2040_http.yaml index 84b0ffbc3af..cf83ee10baf 100644 --- a/templates/san/hpe_msa2040_http/template_san_hpe_msa2040_http.yaml +++ b/templates/san/hpe_msa2040_http/template_san_hpe_msa2040_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '6.0' - date: '2022-05-25T04:00:35Z' + date: '2022-05-26T12:34:40Z' groups: - uuid: 7c2cb727f85b492d88cd56e17127c64d @@ -28,7 +28,7 @@ zabbix_export: name: Templates/SAN items: - - uuid: 90b2c67cf0954392bf2943298eaec9be + uuid: 51d0ae1b4663471d868c27ccd2fb4fed name: 'Get method errors' type: DEPENDENT key: hpe.msa.data.errors @@ -54,8 +54,8 @@ zabbix_export: value: errors triggers: - - uuid: 2133ddf10a3641d78e609948d6842687 - expression: 'length(last(/HPE MSA 2040 Storage by HTTP/hpe.msa.data.errors))>0' + uuid: 7f80562a0b4f4329be454c418de3f517 + expression: 'length(last(/HPE MSA 2040 Storage by HTTP/hpe.msa.data.errors))>2' name: 'There are errors in method requests to API' priority: AVERAGE description: 'There are errors in method requests to API.' @@ -83,7 +83,7 @@ zabbix_export: 'controllers', 'controller-statistics', 'frus', - 'disk-group', + 'disk-groups', 'disk-group-statistics', 'disks', 'enclosures', @@ -97,9 +97,7 @@ zabbix_export: data_temp = {}, result_tmp = {}, sessionKey, - data = {}, - methodError = {}, - methodErrorArr = []; + data = {}; fields.forEach(function (field) { if (typeof params !== 'object' || typeof params[field] === 'undefined' || params[field] === '' ) { @@ -145,8 +143,12 @@ zabbix_export: request.addHeader('sessionKey: ' + sessionKey); request.addHeader('datatype: api-embed'); + data['errors'] = []; + methods.forEach(function (method) { response = request.get(params.base_url + 'api/show/' + method); + methodError = {}; + if (request.getStatus() < 200 || request.getStatus() >= 300) { methodError['method-name'] = method; methodError['return-code-error'] = 'Request failed with status code ' + request.getStatus() + ': ' + response; @@ -183,20 +185,18 @@ zabbix_export: } } - if (methodError.length > 1) { - methodErrorArr.push(methodError); + if (Object.keys(methodError).length > 0) { + data['errors'].push(methodError); } }); - data.errors = methodErrorArr; - response = request.get(params.base_url + 'api/exit'); if (request.getStatus() < 200 || request.getStatus() >= 300) { throw 'Logout request failed with status code ' + request.getStatus() + ': ' + response; } - return data; + return JSON.stringify(data); description: 'The JSON with result of API requests.' timeout: '{$HPE.MSA.DATA.TIMEOUT}' parameters: @@ -222,7 +222,7 @@ zabbix_export: history: 7d trends: '0' value_type: CHAR - description: 'The name of the the person who administers the system.' + description: 'The name of the person who administers the system.' inventory_link: CONTACT preprocessing: - @@ -267,21 +267,6 @@ zabbix_export: value: system triggers: - - uuid: 018ee960d16a4ac8aea9f1d838faa264 - expression: 'nodata(/HPE MSA 2040 Storage by HTTP/hpe.msa.system.health,5m)=1' - name: 'Failed to fetch API data' - event_name: 'Failed to fetch API data (or no data for 5m)' - priority: AVERAGE - description: 'Zabbix has not received data for items for the last 5 minutes.' - dependencies: - - - name: 'Service is down or unavailable' - expression: 'max(/HPE MSA 2040 Storage by HTTP/net.tcp.service["{$HPE.MSA.API.SCHEME}","{HOST.CONN}"],5m)=0' - tags: - - - tag: scope - value: availability - - uuid: ee37a443b22a4161a88014a0c32dfdfa expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.system.health)=1' name: 'System health is in degraded state' @@ -1972,7 +1957,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''raidtype-numeric''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''raidtype-numeric''].first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: @@ -1999,7 +1984,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''freespace-numeric''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''freespace-numeric''].first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: @@ -2030,7 +2015,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''pool-percentage''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''pool-percentage''].first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: @@ -2057,7 +2042,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''size-numeric''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''size-numeric''].first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: @@ -2136,7 +2121,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''diskcount''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''diskcount''].first()' error_handler: DISCARD_VALUE - type: DISCARD_UNCHANGED_HEARTBEAT @@ -2165,7 +2150,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''health-numeric''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''health-numeric''].first()' error_handler: CUSTOM_VALUE error_handler_params: '4' - @@ -2244,7 +2229,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''status-numeric''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''status-numeric''].first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: @@ -2433,7 +2418,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group'']' + - '$.[''disk-groups'']' error_handler: DISCARD_VALUE - type: DISCARD_UNCHANGED_HEARTBEAT @@ -3666,6 +3651,42 @@ zabbix_export: - tag: scope value: performance + - + uuid: 8b4399f3d9624239be2e6ac15971300b + name: 'Power supply [{#DURABLE.ID}]: Temperature' + type: DEPENDENT + key: 'hpe.msa.power_supplies["{#DURABLE.ID}",temperature]' + delay: '0' + history: 7d + description: 'Power supply temperature.' + preprocessing: + - + type: JSONPATH + parameters: + - '$.[''power-supplies''][?(@[''durable-id''] == "{#DURABLE.ID}")].[''dctemp''].first()' + - + type: DISCARD_UNCHANGED_HEARTBEAT + parameters: + - 1h + master_item: + key: hpe.msa.raw.data + tags: + - + tag: component + value: power-supply + - + tag: power-supply + value: '{#DURABLE.ID}' + graph_prototypes: + - + uuid: 538040f8853648058e10830ddc2cba70 + name: 'Power supply [{#DURABLE.ID}]: Temperature' + graph_items: + - + color: 1A7C11 + item: + host: 'HPE MSA 2040 Storage by HTTP' + key: 'hpe.msa.power_supplies["{#DURABLE.ID}",temperature]' master_item: key: hpe.msa.raw.data lld_macro_paths: diff --git a/templates/san/hpe_msa2060_http/README.md b/templates/san/hpe_msa2060_http/README.md index 429aba575fe..1d3b882b534 100644 --- a/templates/san/hpe_msa2060_http/README.md +++ b/templates/san/hpe_msa2060_http/README.md @@ -50,11 +50,11 @@ There are no template links in this template. |Name|Description|Type|Key and additional info| |----|-----------|----|----| |Controllers discovery |<p>Discover controllers.</p> |DEPENDENT |hpe.msa.controllers.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controllers']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | -|Disk groups discovery |<p>Discover disk groups.</p> |DEPENDENT |hpe.msa.disks.groups.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | +|Disk groups discovery |<p>Discover disk groups.</p> |DEPENDENT |hpe.msa.disks.groups.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |Disks discovery |<p>Discover disks.</p> |DEPENDENT |hpe.msa.disks.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disks']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Overrides:**</p><p>SSD life left<br> - {#TYPE} MATCHES_REGEX `8`<br> - ITEM_PROTOTYPE REGEXP `SSD life left` - DISCOVER</p> | |Enclosures discovery |<p>Discover enclosures.</p> |DEPENDENT |hpe.msa.enclosures.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['enclosures']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |Fans discovery |<p>Discover fans.</p> |DEPENDENT |hpe.msa.fans.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['fans']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | -|FRU discovery |<p>Discover FRU.</p> |DEPENDENT |hpe.msa.frus.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.[frus]`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p> <p>- {#TYPE} NOT_MATCHES_REGEX `^(POWER_SUPPLY|RAID_IOM|CHASSIS_MIDPLANE)$`</p> | +|FRU discovery |<p>Discover FRU.</p> |DEPENDENT |hpe.msa.frus.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['frus']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p><p>**Filter**:</p> <p>- {#TYPE} NOT_MATCHES_REGEX `^(POWER_SUPPLY|RAID_IOM|CHASSIS_MIDPLANE)$`</p> | |Pools discovery |<p>Discover pools.</p> |DEPENDENT |hpe.msa.pools.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['pools']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |Ports discovery |<p>Discover ports.</p> |DEPENDENT |hpe.msa.ports.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['ports']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | |Power supplies discovery |<p>Discover power supplies.</p> |DEPENDENT |hpe.msa.power_supplies.discovery<p>**Preprocessing**:</p><p>- JSONPATH: `$.['power-supplies']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `6h`</p> | @@ -66,7 +66,7 @@ There are no template links in this template. |-----|----|-----------|----|---------------------| |HPE |Get method errors |<p>A list of method errors from API requests.</p> |DEPENDENT |hpe.msa.data.errors<p>**Preprocessing**:</p><p>- JSONPATH: `$.['errors']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | |HPE |Product ID |<p>The product model identifier.</p> |DEPENDENT |hpe.msa.system.product_id<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['product-id']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | -|HPE |System contact |<p>The name of the the person who administers the system.</p> |DEPENDENT |hpe.msa.system.contact<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-contact']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|HPE |System contact |<p>The name of the person who administers the system.</p> |DEPENDENT |hpe.msa.system.contact<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-contact']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | |HPE |System information |<p>A brief description of what the system is used for or how it is configured.</p> |DEPENDENT |hpe.msa.system.info<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-information']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | |HPE |System location |<p>The location of the system.</p> |DEPENDENT |hpe.msa.system.location<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-location']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | |HPE |System name |<p>The name of the storage system.</p> |DEPENDENT |hpe.msa.system.name<p>**Preprocessing**:</p><p>- JSONPATH: `$.system[0].['system-name']`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | @@ -96,17 +96,17 @@ There are no template links in this template. |HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Reads |<p>The data read rate, in bytes per second.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.reads["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['data-read-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> | |HPE |Controller [{#CONTROLLER.ID}]: Data transfer rate: Writes |<p>The data write rate, in bytes per second.</p> |DEPENDENT |hpe.msa.controllers.data_transfer.writes["{#CONTROLLER.ID}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['data-written-numeric'].first()`</p><p>- CHANGE_PER_SECOND</p> | |HPE |Controller [{#CONTROLLER.ID}]: Uptime |<p>Number of seconds since the controller was restarted.</p> |DEPENDENT |hpe.msa.controllers["{#CONTROLLER.ID}",uptime]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['controller-statistics'][?(@['durable-id'] == "{#DURABLE.ID}")].['power-on-time'].first()`</p> | -|HPE |Disk group [{#NAME}]: Disks count |<p>Number of disks in the disk group.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",disk_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['diskcount'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | -|HPE |Disk group [{#NAME}]: Pool space used |<p>The percentage of pool capacity that the disk group occupies.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",pool_util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['pool-percentage'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | -|HPE |Disk group [{#NAME}]: Health |<p>Disk group health.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | -|HPE |Disk group [{#NAME}]: Blocks size |<p>The size of a block, in bytes.</p> |DEPENDENT |hpe.msa.disks.groups.blocks["{#NAME}",size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['blocksize'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | -|HPE |Disk group [{#NAME}]: Blocks free |<p>Free space in blocks.</p> |DEPENDENT |hpe.msa.disks.groups.blocks["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['freespace-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | -|HPE |Disk group [{#NAME}]: Blocks total |<p>Total space in blocks.</p> |DEPENDENT |hpe.msa.disks.groups.blocks["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['blocks'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|HPE |Disk group [{#NAME}]: Disks count |<p>Number of disks in the disk group.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",disk_count]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['diskcount'].first()`</p><p>⛔️ON_FAIL: `DISCARD_VALUE -> `</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|HPE |Disk group [{#NAME}]: Pool space used |<p>The percentage of pool capacity that the disk group occupies.</p> |DEPENDENT |hpe.msa.disks.groups.space["{#NAME}",pool_util]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['pool-percentage'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|HPE |Disk group [{#NAME}]: Health |<p>Disk group health.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",health]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['health-numeric'].first()`</p><p>⛔️ON_FAIL: `CUSTOM_VALUE -> 4`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|HPE |Disk group [{#NAME}]: Blocks size |<p>The size of a block, in bytes.</p> |DEPENDENT |hpe.msa.disks.groups.blocks["{#NAME}",size]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['blocksize'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|HPE |Disk group [{#NAME}]: Blocks free |<p>Free space in blocks.</p> |DEPENDENT |hpe.msa.disks.groups.blocks["{#NAME}",free]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['freespace-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|HPE |Disk group [{#NAME}]: Blocks total |<p>Total space in blocks.</p> |DEPENDENT |hpe.msa.disks.groups.blocks["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['blocks'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | |HPE |Disk group [{#NAME}]: Space free |<p>The free space in the disk group.</p> |CALCULATED |hpe.msa.disks.groups.space["{#NAME}",free]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`last(//hpe.msa.disks.groups.blocks["{#NAME}",size])*last(//hpe.msa.disks.groups.blocks["{#NAME}",free])` | |HPE |Disk group [{#NAME}]: Space total |<p>The capacity of the disk group.</p> |CALCULATED |hpe.msa.disks.groups.space["{#NAME}",total]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`last(//hpe.msa.disks.groups.blocks["{#NAME}",size])*last(//hpe.msa.disks.groups.blocks["{#NAME}",total])` | |HPE |Disk group [{#NAME}]: Space utilization |<p>The space utilization percentage in the disk group.</p> |CALCULATED |hpe.msa.disks.groups.space["{#NAME}",util]<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p><p>**Expression**:</p>`last(//hpe.msa.disks.groups.space["{#NAME}",free])/last(//hpe.msa.disks.groups.space["{#NAME}",total])*100` | -|HPE |Disk group [{#NAME}]: RAID type |<p>The RAID level of the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.raid["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['raidtype-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | -|HPE |Disk group [{#NAME}]: Status |<p>The status of the disk group:</p><p>- CRIT: Critical. The disk group is online but isn't fault tolerant because some of it's disks are down.</p><p>- DMGD: Damaged. The disk group is online and fault tolerant, but some of it's disks are damaged.</p><p>- FTDN: Fault tolerant with a down disk.The disk group is online and fault tolerant, but some of it's disks are down.</p><p>- FTOL: Fault tolerant.</p><p>- MSNG: Missing. The disk group is online and fault tolerant, but some of it's disks are missing.</p><p>- OFFL: Offline. Either the disk group is using offline initialization, or it's disks are down and data may be lost.</p><p>- QTCR: Quarantined critical. The disk group is critical with at least one inaccessible disk. For example, two disks are inaccessible in a RAID 6 disk group or one disk is inaccessible for other fault-tolerant RAID levels. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTDN: Quarantined with a down disk. The RAID6 disk group has one inaccessible disk. The disk group is fault tolerant but degraded. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTOF: Quarantined offline. The disk group is offline with multiple inaccessible disks causing user data to be incomplete, or is an NRAID or RAID 0 disk group.</p><p>- QTUN: Quarantined unsupported. The disk group contains data in a format that is not supported by this system. For example, this system does not support linear disk groups.</p><p>- STOP: The disk group is stopped.</p><p>- UNKN: Unknown.</p><p>- UP: Up. The disk group is online and does not have fault-tolerant attributes.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group'][?(@['name'] == "{#NAME}")].['status-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | +|HPE |Disk group [{#NAME}]: RAID type |<p>The RAID level of the disk group.</p> |DEPENDENT |hpe.msa.disks.groups.raid["{#NAME}",type]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['raidtype-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1d`</p> | +|HPE |Disk group [{#NAME}]: Status |<p>The status of the disk group:</p><p>- CRIT: Critical. The disk group is online but isn't fault tolerant because some of it's disks are down.</p><p>- DMGD: Damaged. The disk group is online and fault tolerant, but some of it's disks are damaged.</p><p>- FTDN: Fault tolerant with a down disk.The disk group is online and fault tolerant, but some of it's disks are down.</p><p>- FTOL: Fault tolerant.</p><p>- MSNG: Missing. The disk group is online and fault tolerant, but some of it's disks are missing.</p><p>- OFFL: Offline. Either the disk group is using offline initialization, or it's disks are down and data may be lost.</p><p>- QTCR: Quarantined critical. The disk group is critical with at least one inaccessible disk. For example, two disks are inaccessible in a RAID 6 disk group or one disk is inaccessible for other fault-tolerant RAID levels. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTDN: Quarantined with a down disk. The RAID6 disk group has one inaccessible disk. The disk group is fault tolerant but degraded. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.</p><p>- QTOF: Quarantined offline. The disk group is offline with multiple inaccessible disks causing user data to be incomplete, or is an NRAID or RAID 0 disk group.</p><p>- QTUN: Quarantined unsupported. The disk group contains data in a format that is not supported by this system. For example, this system does not support linear disk groups.</p><p>- STOP: The disk group is stopped.</p><p>- UNKN: Unknown.</p><p>- UP: Up. The disk group is online and does not have fault-tolerant attributes.</p> |DEPENDENT |hpe.msa.disks.groups["{#NAME}",status]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-groups'][?(@['name'] == "{#NAME}")].['status-numeric'].first()`</p><p>- DISCARD_UNCHANGED_HEARTBEAT: `1h`</p> | |HPE |Disk group [{#NAME}]: IOPS, total rate |<p>Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.</p> |DEPENDENT |hpe.msa.disks.groups.iops.total["{#NAME}",rate]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['iops'].first()`</p> | |HPE |Disk group [{#NAME}]: Average response time: Total |<p>Average response time for read and write operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",total]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['avg-rsp-time'].first()`</p><p>- MULTIPLIER: `0.000001`</p> | |HPE |Disk group [{#NAME}]: Average response time: Read |<p>Average response time for all read operations, calculated over the interval since these statistics were last requested or reset.</p> |DEPENDENT |hpe.msa.disks.groups.avg_rsp_time["{#NAME}",read]<p>**Preprocessing**:</p><p>- JSONPATH: `$.['disk-group-statistics'][?(@['name'] == "{#NAME}")].['avg-read-rsp-time'].first()`</p><p>- MULTIPLIER: `0.000001`</p> | @@ -176,7 +176,7 @@ There are no template links in this template. |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----|----|----| -|There are errors in method requests to API |<p>There are errors in method requests to API.</p> |`length(last(/HPE MSA 2060 Storage by HTTP/hpe.msa.data.errors))>0` |AVERAGE |<p>**Depends on**:</p><p>- Service is down or unavailable</p> | +|There are errors in method requests to API |<p>There are errors in method requests to API.</p> |`length(last(/HPE MSA 2060 Storage by HTTP/hpe.msa.data.errors))>2` |AVERAGE |<p>**Depends on**:</p><p>- Service is down or unavailable</p> | |System health is in degraded state |<p>System health is in degraded state.</p> |`last(/HPE MSA 2060 Storage by HTTP/hpe.msa.system.health)=1` |WARNING | | |System health is in fault state |<p>System health is in fault state.</p> |`last(/HPE MSA 2060 Storage by HTTP/hpe.msa.system.health)=2` |AVERAGE | | |System health is in unknown state |<p>System health is in unknown state.</p> |`last(/HPE MSA 2060 Storage by HTTP/hpe.msa.system.health)=3` |INFO | | diff --git a/templates/san/hpe_msa2060_http/template_san_hpe_msa2060_http.yaml b/templates/san/hpe_msa2060_http/template_san_hpe_msa2060_http.yaml index d6b1365ca22..f5e090d75fa 100644 --- a/templates/san/hpe_msa2060_http/template_san_hpe_msa2060_http.yaml +++ b/templates/san/hpe_msa2060_http/template_san_hpe_msa2060_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '6.0' - date: '2022-05-25T04:00:41Z' + date: '2022-05-26T12:34:46Z' groups: - uuid: 7c2cb727f85b492d88cd56e17127c64d @@ -55,7 +55,7 @@ zabbix_export: triggers: - uuid: 2133ddf10a3641d78e609948d6842687 - expression: 'length(last(/HPE MSA 2060 Storage by HTTP/hpe.msa.data.errors))>0' + expression: 'length(last(/HPE MSA 2060 Storage by HTTP/hpe.msa.data.errors))>2' name: 'There are errors in method requests to API' priority: AVERAGE description: 'There are errors in method requests to API.' @@ -83,7 +83,7 @@ zabbix_export: 'controllers', 'controller-statistics', 'frus', - 'disk-group', + 'disk-groups', 'disk-group-statistics', 'disks', 'enclosures', @@ -95,9 +95,7 @@ zabbix_export: 'volume-statistics' ], result = {}, - data = {}, - methodError = {}, - methodErrorArr = []; + data = {}; fields.forEach(function (field) { if (typeof params !== 'object' || typeof params[field] === 'undefined' || params[field] === '' ) { @@ -135,9 +133,11 @@ zabbix_export: request.addHeader('sessionKey: ' + sessionKey); request.addHeader('datatype: json'); + data['errors'] = []; methods.forEach(function (method) { response = request.get(params.base_url + 'api/show/' + method); + methodError = {}; if (request.getStatus() < 200 || request.getStatus() >= 300) { methodError['method-name'] = method; @@ -158,9 +158,6 @@ zabbix_export: case 'frus': data[method] = result['enclosure-fru']; break; - case 'disk-group': - data[method] = result['disk-groups']; - break; case 'disks': data[method] = result['drives']; break; @@ -180,14 +177,12 @@ zabbix_export: } } - if (methodError.length > 1) { - methodErrorArr.push(methodError); + if (Object.keys(methodError).length > 0) { + data['errors'].push(methodError); } }); - data.errors = methodErrorArr; - - return data; + return JSON.stringify(data); description: 'The JSON with result of API requests.' timeout: '{$HPE.MSA.DATA.TIMEOUT}' parameters: @@ -213,7 +208,7 @@ zabbix_export: history: 7d trends: '0' value_type: CHAR - description: 'The name of the the person who administers the system.' + description: 'The name of the person who administers the system.' inventory_link: CONTACT preprocessing: - @@ -1832,7 +1827,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''freespace-numeric''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''freespace-numeric''].first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: @@ -1859,7 +1854,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''blocksize''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''blocksize''].first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: @@ -1885,7 +1880,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''blocks''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''blocks''].first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: @@ -2071,7 +2066,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''raidtype-numeric''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''raidtype-numeric''].first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: @@ -2119,7 +2114,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''pool-percentage''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''pool-percentage''].first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: @@ -2215,7 +2210,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''diskcount''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''diskcount''].first()' error_handler: DISCARD_VALUE - type: DISCARD_UNCHANGED_HEARTBEAT @@ -2244,7 +2239,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''health-numeric''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''health-numeric''].first()' error_handler: CUSTOM_VALUE error_handler_params: '4' - @@ -2323,7 +2318,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group''][?(@[''name''] == "{#NAME}")].[''status-numeric''].first()' + - '$.[''disk-groups''][?(@[''name''] == "{#NAME}")].[''status-numeric''].first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: @@ -2512,7 +2507,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[''disk-group'']' + - '$.[''disk-groups'']' error_handler: DISCARD_VALUE - type: DISCARD_UNCHANGED_HEARTBEAT @@ -3130,7 +3125,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.[frus]' + - '$.[''frus'']' error_handler: DISCARD_VALUE - type: DISCARD_UNCHANGED_HEARTBEAT |