zabbix_export: version: '6.0' date: '2022-02-07T19:14:15Z' groups: - uuid: f2481361f99448eea617b7b1d4765566 name: 'Discovered hosts' - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6 name: Templates/Applications - uuid: e960332b3f6c46a1956486d4f3f99fce name: 'Templates/Server hardware' templates: - uuid: 3d9ff519b6b241e1be52fa1a75634537 template: 'HPE OneView' name: 'HPE OneView' description: | Version: 1.0 Homepage: https://github.com/cskollar/zabbix-oneview Author: Csaba Kollar Zabbix template for HPE OneView (especially for Synergy frames). It uses native Zabbix features and functions and doesn't require any external scripts or plugins. Queries are implemented through the official OneView REST API. Usage: 1. Import the template file (it contains 3 templates) 2. Set the proper host group in the main template ("HPE OneView" -> enclosure AND server discovery -> host prototype -> groups) 3. Create a host for the OneView appliance (eg.: composer1.local.tld) Link the main template ("HPE OneView") to the host 4. Assign user macros to the host User macros: {$ONEVIEW_HOST} - host or IP address of the composer (OneView appliance) {$ONEVIEW_USER} - OneView username {$ONEVIEW_PASS} - OneView password groups: - name: Templates/Applications items: - uuid: c811bdecbb59425d9fabafde867e847a name: 'Get alerts' type: SCRIPT key: oneview.get.alerts trends: '0' value_type: TEXT params: | try { var result = [], req = new HttpRequest(),resp; req.addHeader('content-type: application/json'); req.addHeader('x-api-version: 3000'); //GET Token resp = req.post('https://{$ONEVIEW_HOST}/rest/login-sessions',value); Zabbix.log(5, 'login-sessions reply is :' + resp) if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); token = resp.sessionID; //GET Alerts req.addHeader('auth: '+token); resp = req.get('https://{$ONEVIEW_HOST}/rest/alerts?query=%22alertState%20EQ%20%27Active%27%20OR%20alertState%20EQ%20%27Locked%27%22'); if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); result = resp.members.map(function(m) { return { id: m.uri.replace("\/rest\/alerts\/",""), description: m.description, severity: m.severity }; }); //DELETE token resp = req.delete('https://{$ONEVIEW_HOST}/rest/login-sessions'); if (req.getStatus() != 204) { throw 'Response code: '+req.getStatus(); } } catch (error) { Zabbix.log(4, 'OneView api error: '+error); Zabbix.log(4, 'Host : {$ONEVIEW_HOST}'); Zabbix.log(4, 'Values : '+JSON.stringify(value)); result = { failed: error }; } //RESULT return JSON.stringify(result); parameters: - name: password value: '{$ONEVIEW_PASS}' - name: userName value: '{$ONEVIEW_USER}' - name: authLoginDomain value: 'local' tags: - tag: Application value: 'OneView appliance' - uuid: e8548ba02774469aa291283958ee75ab name: 'Get enclosures' type: SCRIPT key: oneview.get.enclosures delay: 5m history: '0' trends: '0' value_type: TEXT params: | try { var result = [], req = new HttpRequest(),resp; req.addHeader('content-type: application/json'); req.addHeader('x-api-version: 3000'); //GET Token resp = req.post('https://{$ONEVIEW_HOST}/rest/login-sessions',value); Zabbix.log(5, 'login-sessions reply is :' + resp) if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); token = resp.sessionID; //GET Enclosures req.addHeader('auth: '+token); resp = req.get('https://{$ONEVIEW_HOST}/rest/enclosures'); if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); result = resp.members.map(function(m) { return { uri: m.uri, uuid: m.uuid, name: m.name }; }); //DELETE token resp = req.delete('https://{$ONEVIEW_HOST}/rest/login-sessions'); if (req.getStatus() != 204) { throw 'Response code: '+req.getStatus(); } } catch (error) { Zabbix.log(4, 'OneView api error: '+error); Zabbix.log(4, 'Host : {$ONEVIEW_HOST}'); Zabbix.log(4, 'Values : '+JSON.stringify(value)); result = { failed: error }; } //RESULT return JSON.stringify(result); parameters: - name: password value: '{$ONEVIEW_PASS}' - name: userName value: '{$ONEVIEW_USER}' - name: authLoginDomain value: 'local' tags: - tag: Application value: 'OneView appliance' - uuid: e85a0c5b3d224eda8ca9011f24b98013 name: 'Get logical enclosures' type: SCRIPT key: oneview.get.logicalenclosures delay: 5m history: '0' trends: '0' value_type: TEXT params: | try { var result = [], req = new HttpRequest(),resp; req.addHeader('content-type: application/json'); req.addHeader('x-api-version: 3000'); //GET Token resp = req.post('https://{$ONEVIEW_HOST}/rest/login-sessions',value); Zabbix.log(5, 'login-sessions reply is :' + resp) if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); token = resp.sessionID; //GET Logical Enclosures req.addHeader('auth: '+token); resp = req.get('https://{$ONEVIEW_HOST}/rest/logical-enclosures'); if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); result = resp.members.map(function(m) { return { uri: m.uri, name: m.name }; }); //DELETE token resp = req.delete('https://{$ONEVIEW_HOST}/rest/login-sessions'); if (req.getStatus() != 204) { throw 'Response code: '+req.getStatus(); } } catch (error) { Zabbix.log(4, 'OneView api error: '+error); Zabbix.log(4, 'Host : {$ONEVIEW_HOST}'); Zabbix.log(4, 'Values : '+JSON.stringify(value)); result = { failed: error }; } //RESULT return JSON.stringify(result); parameters: - name: password value: '{$ONEVIEW_PASS}' - name: userName value: '{$ONEVIEW_USER}' - name: authLoginDomain value: 'local' tags: - tag: Application value: 'OneView appliance' - uuid: bb6a3224ae8746c2aad7e00a7a1bf84c name: 'Get servers' type: SCRIPT key: oneview.get.servers delay: 5m history: '0' trends: '0' value_type: TEXT params: | try { var result = [], req = new HttpRequest(), resp; req.addHeader('content-type: application/json'); req.addHeader('x-api-version: 3000'); //GET Token resp = req.post('https://{$ONEVIEW_HOST}/rest/login-sessions',value); Zabbix.log(5, 'login-sessions reply is :' + resp) if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); token = resp.sessionID; //GET Servers req.addHeader('auth: '+token); resp = req.get('https://{$ONEVIEW_HOST}/rest/server-hardware'); if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); result = resp.members.map(function(m) { return { uri: m.uri, name: m.name.replace(", "," - "), model: m.model }; }); //DELETE token resp = req.delete('https://{$ONEVIEW_HOST}/rest/login-sessions'); if (req.getStatus() != 204) { throw 'Response code: '+req.getStatus(); } } catch (error) { Zabbix.log(4, 'OneView api error: '+error); Zabbix.log(4, 'Host : {$ONEVIEW_HOST}'); Zabbix.log(4, 'Values : '+JSON.stringify(value)); result = { failed: error }; } //RESULT return JSON.stringify(result); parameters: - name: password value: '{$ONEVIEW_PASS}' - name: userName value: '{$ONEVIEW_USER}' - name: authLoginDomain value: 'local' tags: - tag: Application value: 'OneView appliance' discovery_rules: - uuid: 568b7497d6c24b04815c6158b71f201a name: 'Alert discovery' type: DEPENDENT key: oneview.alerts.discovery delay: '0' lifetime: '0' item_prototypes: - uuid: 01ca0a4bcf294bb394b76931b6cae458 name: 'OneView alert[{#ALERT_ID}] - {#ALERT_DESC}' type: DEPENDENT key: 'oneview.alert.severity[{#ALERT_ID}]' delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - '$[?(@.["id"]=="{#ALERT_ID}")].["severity"].first()' master_item: key: oneview.get.alerts tags: - tag: Application value: 'OneView appliance' trigger_prototypes: - uuid: 13d3f6fd1b6e4f99a4a3d4b302fd8933 expression: 'last(/HPE OneView/oneview.alert.severity[{#ALERT_ID}])<>"OK"' name: 'OneView alert: {#ALERT_DESC}' opdata: '{#ALERT_SEVERITY}' priority: HIGH master_item: key: oneview.get.alerts lld_macro_paths: - lld_macro: '{#ALERT_DESC}' path: $.description - lld_macro: '{#ALERT_ID}' path: $.id - lld_macro: '{#ALERT_SEVERITY}' path: $.severity - uuid: 7f0fc2d598c94b49be8e0f81d177f2af name: 'Enclosure discovery' type: DEPENDENT key: oneview.enclosures.discovery delay: '0' host_prototypes: - uuid: c82ef156890b493d8ea9d1ec2877571b host: 'Enclosure {#ENCLOSURE_NAME}' name: 'Enclosure {#ENCLOSURE_NAME}' group_links: - group: name: 'Discovered hosts' templates: - name: 'HPE OneView Enclosure' macros: - macro: '{$ENCLOSURE_URI}' value: '{#ENCLOSURE_URI}' master_item: key: oneview.get.enclosures lld_macro_paths: - lld_macro: '{#ENCLOSURE_NAME}' path: '$.["name"]' - lld_macro: '{#ENCLOSURE_URI}' path: '$.["uri"]' - lld_macro: '{#ENCLOSURE_UUID}' path: '$.["uuid"]' - uuid: 0a377b0d375c480f8d25344fa8712963 name: 'Logical enclosure discovery' type: DEPENDENT key: oneview.logicalenclosures.discovery delay: '0' host_prototypes: - uuid: 1690aa2a32284c8eae61a42588b8704d host: 'Logical Enclosure {#LOGICAL_ENCLOSURE_NAME}' name: 'Logical Enclosure {#LOGICAL_ENCLOSURE_NAME}' group_links: - group: name: 'Discovered hosts' templates: - name: 'HPE OneView Logical Enclosure' macros: - macro: '{$LOGICAL_ENCLOSURE_URI}' value: '{#LOGICAL_ENCLOSURE_URI}' master_item: key: oneview.get.logicalenclosures lld_macro_paths: - lld_macro: '{#LOGICAL_ENCLOSURE_NAME}' path: '$.["name"]' - lld_macro: '{#LOGICAL_ENCLOSURE_URI}' path: '$.["uri"]' - uuid: 291ffe4ed52547218ad9608a3ca498ea name: 'Server discovery' type: DEPENDENT key: oneview.server.discovery delay: '0' host_prototypes: - uuid: 029802d3a0564d19b043eb7505ad1e31 host: '{#SERVER_MODEL} - {#SERVER_NAME}' name: '{#SERVER_MODEL} - {#SERVER_NAME}' group_links: - group: name: 'Discovered hosts' templates: - name: 'HPE OneView Server' macros: - macro: '{$SERVER_URI}' value: '{#SERVER_URI}' master_item: key: oneview.get.servers lld_macro_paths: - lld_macro: '{#SERVER_MODEL}' path: '$.["model"]' - lld_macro: '{#SERVER_NAME}' path: '$.["name"]' - lld_macro: '{#SERVER_URI}' path: '$.["uri"]' macros: - macro: '{$ONEVIEW_HOST}' - macro: '{$ONEVIEW_PASS}' - macro: '{$ONEVIEW_USER}' - uuid: eff910fae186418393302f76141722cd template: 'HPE OneView Enclosure' name: 'HPE OneView Enclosure' groups: - name: 'Templates/Server hardware' items: - uuid: 65f5ba853f9b467c93dcef4ceacf0610 name: 'Enclosure power interconnect bays' type: DEPENDENT key: oneview.enclosure.interconnectbayspower delay: '0' units: W preprocessing: - type: JSONPATH parameters: - $.interconnectBayWatts master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure power' - uuid: 15b32c6c81544e23b53a516c855262c1 name: 'Enclosure power fans and management modules' type: DEPENDENT key: oneview.enclosure.mgmtpower delay: '0' units: W preprocessing: - type: JSONPATH parameters: - $.fansAndManagementDevicesWatts master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure power' - uuid: 85eead21413d40c89e28b94b4908505b name: 'Enclosure power allocated' type: DEPENDENT key: oneview.enclosure.powerallocated delay: '0' units: W preprocessing: - type: JSONPATH parameters: - $.powerAllocatedWatts master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure power' - uuid: 512a068ad9214e58843712b3976d8edc name: 'Enclosure power available' type: DEPENDENT key: oneview.enclosure.poweravailable delay: '0' units: W preprocessing: - type: JSONPATH parameters: - $.powerAvailableWatts master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure power' - uuid: c8540569678941c6b95990f217f8f8a2 name: 'Enclosure power capacity' type: DEPENDENT key: oneview.enclosure.powercapacity delay: '0' units: W preprocessing: - type: JSONPATH parameters: - $.powerCapacityWatts master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure power' - uuid: aa81fe78d13b4be39e93401b7c2f33e5 name: 'Enclosure serial number' type: DEPENDENT key: oneview.enclosure.serialnumber delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - $.serialNumber master_item: key: oneview.get.enclosure.parameters - uuid: 1dcff8a37b2c461f9cd059617e03d5c7 name: 'Enclosure power server bays' type: DEPENDENT key: oneview.enclosure.serverbayspower delay: '0' units: W preprocessing: - type: JSONPATH parameters: - $.deviceBayWatts master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure power' - uuid: 2e972491628a47308d53d13d2fad3e38 name: 'Enclosure status' type: DEPENDENT key: oneview.enclosure.status delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - $.status master_item: key: oneview.get.enclosure.parameters triggers: - uuid: 259ae48df2414a0eac8aefdfde543061 expression: 'last(/HPE OneView Enclosure/oneview.enclosure.status)<>"OK"' name: 'Enclosure status problem' opdata: 'status: {ITEM.LASTVALUE1}' priority: HIGH - uuid: 5a76b5dab3e341f1b4a2d80be708ef80 name: 'Enclosure support state' type: DEPENDENT key: oneview.enclosure.supportstate delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - $.supportState master_item: key: oneview.get.enclosure.parameters triggers: - uuid: 58a7d7c600cb4f039c8c589f2ece4a54 expression: 'last(/HPE OneView Enclosure/oneview.enclosure.supportstate)<>"Enabled"' name: 'Enclosure support state problem' opdata: 'support state: {ITEM.LASTVALUE1}' priority: WARNING - uuid: ba2f9fa33c8643babae969970e7d4a79 name: 'Get enclosure parameters' type: SCRIPT key: oneview.get.enclosure.parameters delay: 5m history: '0' trends: '0' value_type: TEXT params: | try { var result = [], req = new HttpRequest(), resp; req.addHeader('content-type: application/json'); req.addHeader('x-api-version: 3000'); //GET Token resp = req.post('https://{$ONEVIEW_HOST}/rest/login-sessions',value); Zabbix.log(5, 'login-sessions reply is :' + resp) if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); token = resp.sessionID; //GET Enclosure req.addHeader('auth: '+token); resp = req.get('https://{$ONEVIEW_HOST}/{$ENCLOSURE_URI}'); if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } result = JSON.parse(resp); //DELETE token resp = req.delete('https://{$ONEVIEW_HOST}/rest/login-sessions'); if (req.getStatus() != 204) { throw 'Response code: '+req.getStatus(); } } catch (error) { Zabbix.log(4, 'OneView api error: '+error); Zabbix.log(4, 'Host : {$ONEVIEW_HOST}'); Zabbix.log(4, 'Values : '+JSON.stringify(value)); result = { failed: error }; } //RESULT return JSON.stringify(result); parameters: - name: password value: '{$ONEVIEW_PASS}' - name: userName value: '{$ONEVIEW_USER}' - name: authLoginDomain value: 'local' discovery_rules: - uuid: c97b9d95e6f544a5a4f9a6841436940e name: 'Enclosure appliance bays discovery' type: DEPENDENT key: enclosure.appliance.disovery delay: '0' filter: conditions: - macro: '{#ENCLOSURE_APPLIANCE_PRESENCE}' value: ^Absent$ operator: NOT_MATCHES_REGEX formulaid: A item_prototypes: - uuid: c7a51d0e0a2d47abb16447fc95dd9488 name: 'Enclosure appliance bay{#ENCLOSURE_APPLIANCE_BAY} {#ENCLOSURE_APPLIANCE_MODEL} power state' type: DEPENDENT key: 'appliance.power.bay[{#ENCLOSURE_APPLIANCE_BAY}]' delay: '0' trends: '0' value_type: TEXT preprocessing: - type: JSONPATH parameters: - '$.applianceBays[?(@.bayNumber=="{#ENCLOSURE_APPLIANCE_BAY}")].poweredOn.first()' master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure appliance modules' trigger_prototypes: - uuid: 54342721267c4f0393a35c7f7e5e0820 expression: 'last(/HPE OneView Enclosure/appliance.power.bay[{#ENCLOSURE_APPLIANCE_BAY}])<>"true"' name: 'Enclosure Appliance module power state problem in BAY{#ENCLOSURE_APPLIANCE_BAY}' opdata: 'power state: {ITEM.LASTVALUE1}' priority: AVERAGE - uuid: b2ff811fa62e4813a6846a61a6e6388f name: 'Enclosure appliance bay{#ENCLOSURE_APPLIANCE_BAY} {#ENCLOSURE_APPLIANCE_MODEL} presence' type: DEPENDENT key: 'appliance.presence.bay[{#ENCLOSURE_APPLIANCE_BAY}]' delay: '0' trends: '0' value_type: TEXT preprocessing: - type: JSONPATH parameters: - '$.applianceBays[?(@.bayNumber=="{#ENCLOSURE_APPLIANCE_BAY}")].devicePresence.first()' master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure appliance modules' - uuid: 60956736ed874e8fb85dee7abcb3780f name: 'Enclosure appliance bay{#ENCLOSURE_APPLIANCE_BAY} {#ENCLOSURE_APPLIANCE_MODEL} status' type: DEPENDENT key: 'appliance.status.bay[{#ENCLOSURE_APPLIANCE_BAY}]' delay: '0' trends: '0' value_type: TEXT preprocessing: - type: JSONPATH parameters: - '$.applianceBays[?(@.bayNumber=="{#ENCLOSURE_APPLIANCE_BAY}")].status.first()' master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure appliance modules' trigger_prototypes: - uuid: 0a8b652c91ea4d10859cc670c870f928 expression: 'last(/HPE OneView Enclosure/appliance.status.bay[{#ENCLOSURE_APPLIANCE_BAY}])<>"OK"' name: 'Enclosure Appliance module error in BAY{#ENCLOSURE_APPLIANCE_BAY}' opdata: 'Appliance status: {ITEM.LASTVALUE1}' priority: HIGH master_item: key: oneview.get.enclosure.parameters lld_macro_paths: - lld_macro: '{#ENCLOSURE_APPLIANCE_BAY}' path: $.bayNumber - lld_macro: '{#ENCLOSURE_APPLIANCE_MODEL}' path: $.model - lld_macro: '{#ENCLOSURE_APPLIANCE_PRESENCE}' path: $.devicePresence preprocessing: - type: JSONPATH parameters: - $.applianceBays - uuid: a3cbcd6c7cae4d83b06357dcb6dcb011 name: 'Enclosure FAN discovery' type: DEPENDENT key: enclosure.fan.disovery delay: '0' item_prototypes: - uuid: 7182be335ecc42ef8e628ab1435016cf name: 'Enclosure FAN bay{#ENCLOSURE_FAN_BAY} presence' type: DEPENDENT key: 'fan.presence.bay[{#ENCLOSURE_FAN_BAY}]' delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - '$.fanBays[?(@.bayNumber=="{#ENCLOSURE_FAN_BAY}")].devicePresence.first()' master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure FAN' - uuid: 7223f6ad3ffb4fba92a7e0e472a5344d name: 'Enclosure FAN bay{#ENCLOSURE_FAN_BAY} status' type: DEPENDENT key: 'fan.status.bay[{#ENCLOSURE_FAN_BAY}]' delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - '$.fanBays[?(@.bayNumber=="{#ENCLOSURE_FAN_BAY}")].status.first()' error_handler: DISCARD_VALUE master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure FAN' trigger_prototypes: - uuid: f819e9a2f5594d2ab3a2bc02ec777490 expression: 'last(/HPE OneView Enclosure/fan.status.bay[{#ENCLOSURE_FAN_BAY}])<>"OK"' name: 'Enclosure FAN error in BAY{#ENCLOSURE_FAN_BAY}' opdata: 'state: {ITEM.LASTVALUE1}' priority: HIGH master_item: key: oneview.get.enclosure.parameters lld_macro_paths: - lld_macro: '{#ENCLOSURE_FAN_BAY}' path: $.bayNumber preprocessing: - type: JSONPATH parameters: - $.fanBays - uuid: 7d94b87badd74c63ba57b942a924a660 name: 'Enclosure interconnect bays discovery' type: DEPENDENT key: enclosure.interconnect.disovery delay: '0' filter: conditions: - macro: '{#ENCLOSURE_INTERCONNECT_URI}' value: '^(?![nN][uU][lL]{2}$)\s*\S.*' formulaid: A item_prototypes: - uuid: 7b188b5db4f54d6d863a97fcd00af89f name: 'Interconnect bay{#ENCLOSURE_INTERCONNECT_BAY} model' type: SCRIPT key: 'get.interconnect.model.bay[{#ENCLOSURE_INTERCONNECT_BAY}]' delay: 5m trends: '0' value_type: TEXT params: | try { var result = [], req = new HttpRequest(), resp; req.addHeader('content-type: application/json'); req.addHeader('x-api-version: 3000'); //GET Token resp = req.post('https://{$ONEVIEW_HOST}/rest/login-sessions',value); Zabbix.log(5, 'login-sessions reply is :' + resp) if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); token = resp.sessionID; //GET Enclosure req.addHeader('auth: '+token); resp = req.get('https://{$ONEVIEW_HOST}/{#ENCLOSURE_INTERCONNECT_URI}'); if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } result = JSON.parse(resp); //DELETE token resp = req.delete('https://{$ONEVIEW_HOST}/rest/login-sessions'); if (req.getStatus() != 204) { throw 'Response code: '+req.getStatus(); } } catch (error) { Zabbix.log(4, 'OneView api error: '+error); Zabbix.log(4, 'Host : {$ONEVIEW_HOST}'); Zabbix.log(4, 'Values : '+JSON.stringify(value)); result = { failed: error }; } //RESULT return JSON.stringify(result); preprocessing: - type: JSONPATH parameters: - $.model parameters: - name: password value: '{$ONEVIEW_PASS}' - name: userName value: '{$ONEVIEW_USER}' - name: authLoginDomain value: 'local' tags: - tag: Application value: 'Enclosure interconnect modules' - uuid: efe3536618934bc986f976ff2b150960 name: 'Interconnect bay{#ENCLOSURE_INTERCONNECT_BAY} name' type: SCRIPT key: 'get.interconnect.namel.bay[{#ENCLOSURE_INTERCONNECT_BAY}]' delay: 5m trends: '0' value_type: TEXT params: | try { var result = [], req = new HttpRequest(), resp; req.addHeader('content-type: application/json'); req.addHeader('x-api-version: 3000'); //GET Token resp = req.post('https://{$ONEVIEW_HOST}/rest/login-sessions',value); Zabbix.log(5, 'login-sessions reply is :' + resp) if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); token = resp.sessionID; //GET Enclosure req.addHeader('auth: '+token); resp = req.get('https://{$ONEVIEW_HOST}/{#ENCLOSURE_INTERCONNECT_URI}'); if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } result = JSON.parse(resp); //DELETE token resp = req.delete('https://{$ONEVIEW_HOST}/rest/login-sessions'); if (req.getStatus() != 204) { throw 'Response code: '+req.getStatus(); } } catch (error) { Zabbix.log(4, 'OneView api error: '+error); Zabbix.log(4, 'Host : {$ONEVIEW_HOST}'); Zabbix.log(4, 'Values : '+JSON.stringify(value)); result = { failed: error }; } //RESULT return JSON.stringify(result); preprocessing: - type: JSONPATH parameters: - $.name parameters: - name: password value: '{$ONEVIEW_PASS}' - name: userName value: '{$ONEVIEW_USER}' - name: authLoginDomain value: 'local' tags: - tag: Application value: 'Enclosure interconnect modules' - uuid: 1827237446874220ab710c46c045232e name: 'Interconnect bay{#ENCLOSURE_INTERCONNECT_BAY} serial number' type: SCRIPT key: 'get.interconnect.serianNumber.bay[{#ENCLOSURE_INTERCONNECT_BAY}]' delay: 5m trends: '0' value_type: TEXT params: | try { var result = [], req = new HttpRequest(), resp; req.addHeader('content-type: application/json'); req.addHeader('x-api-version: 3000'); //GET Token resp = req.post('https://{$ONEVIEW_HOST}/rest/login-sessions',value); Zabbix.log(5, 'login-sessions reply is :' + resp) if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); token = resp.sessionID; //GET Enclosure req.addHeader('auth: '+token); resp = req.get('https://{$ONEVIEW_HOST}/{#ENCLOSURE_INTERCONNECT_URI}'); if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } result = JSON.parse(resp); //DELETE token resp = req.delete('https://{$ONEVIEW_HOST}/rest/login-sessions'); if (req.getStatus() != 204) { throw 'Response code: '+req.getStatus(); } } catch (error) { Zabbix.log(4, 'OneView api error: '+error); Zabbix.log(4, 'Host : {$ONEVIEW_HOST}'); Zabbix.log(4, 'Values : '+JSON.stringify(value)); result = { failed: error }; } //RESULT return JSON.stringify(result); preprocessing: - type: JSONPATH parameters: - $.serialNumber parameters: - name: password value: '{$ONEVIEW_PASS}' - name: userName value: '{$ONEVIEW_USER}' - name: authLoginDomain value: 'local' tags: - tag: Application value: 'Enclosure interconnect modules' - uuid: 6d367ca95304489a8742b3bfa9f63203 name: 'Interconnect bay{#ENCLOSURE_INTERCONNECT_BAY} status' type: SCRIPT key: 'get.interconnect.status.bay[{#ENCLOSURE_INTERCONNECT_BAY}]' delay: 5m trends: '0' value_type: TEXT params: | try { var result = [], req = new HttpRequest(), resp; req.addHeader('content-type: application/json'); req.addHeader('x-api-version: 3000'); //GET Token resp = req.post('https://{$ONEVIEW_HOST}/rest/login-sessions',value); Zabbix.log(5, 'login-sessions reply is :' + resp) if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); token = resp.sessionID; //GET Enclosure req.addHeader('auth: '+token); resp = req.get('https://{$ONEVIEW_HOST}/{#ENCLOSURE_INTERCONNECT_URI}'); if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } result = JSON.parse(resp); //DELETE token resp = req.delete('https://{$ONEVIEW_HOST}/rest/login-sessions'); if (req.getStatus() != 204) { throw 'Response code: '+req.getStatus(); } } catch (error) { Zabbix.log(4, 'OneView api error: '+error); Zabbix.log(4, 'Host : {$ONEVIEW_HOST}'); Zabbix.log(4, 'Values : '+JSON.stringify(value)); result = { failed: error }; } //RESULT return JSON.stringify(result); preprocessing: - type: JSONPATH parameters: - $.status parameters: - name: password value: '{$ONEVIEW_PASS}' - name: userName value: '{$ONEVIEW_USER}' - name: authLoginDomain value: 'local' tags: - tag: Application value: 'Enclosure interconnect modules' trigger_prototypes: - uuid: 8360706d925f4fd1aeb2ba4efabb19bf expression: 'last(/HPE OneView Enclosure/get.interconnect.status.bay[{#ENCLOSURE_INTERCONNECT_BAY}])<>"OK"' name: 'Enclosure Interrconnect module error in BAY{#ENCLOSURE_APPLIANCE_BAY}' opdata: 'Interconnect status: {ITEM.LASTVALUE1}' priority: HIGH master_item: key: oneview.get.enclosure.parameters lld_macro_paths: - lld_macro: '{#ENCLOSURE_INTERCONNECT_BAY}' path: $.bayNumber - lld_macro: '{#ENCLOSURE_INTERCONNECT_URI}' path: $.interconnectUri preprocessing: - type: JSONPATH parameters: - $.interconnectBays - uuid: 7974a620fe5543d1a7ba0368b9226472 name: 'Enclosure manager bays discovery' type: DEPENDENT key: enclosure.manager.disovery delay: '0' filter: conditions: - macro: '{#ENCLOSURE_MANAGER_PRESENCE}' value: ^Absent$ operator: NOT_MATCHES_REGEX formulaid: A item_prototypes: - uuid: c89c5577ddf7448da8f13bfbd1dc840e name: 'Enclosure manager bay{#ENCLOSURE_MANAGER_BAY} {#ENCLOSURE_MANAGER_MODEL} link status' type: DEPENDENT key: 'manager.linkstatus.bay[{#ENCLOSURE_MANAGER_BAY}]' delay: '0' trends: '0' value_type: TEXT preprocessing: - type: JSONPATH parameters: - '$.managerBays[?(@.bayNumber=="{#ENCLOSURE_MANAGER_BAY}")].linkPortStatus.first()' master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure manager modules' trigger_prototypes: - uuid: 013fc56f63394272aba6a6d05ce4d7fb expression: 'last(/HPE OneView Enclosure/manager.linkstatus.bay[{#ENCLOSURE_MANAGER_BAY}])<>"OK"' name: 'Enclosure Manager module link error in BAY{#ENCLOSURE_MANAGER_BAY}' opdata: 'link status: {ITEM.LASTVALUE1}' priority: HIGH - uuid: 32b0d868bf1b466a9026f17538872d4e name: 'Enclosure manager bay{#ENCLOSURE_MANAGER_BAY} {#ENCLOSURE_MANAGER_MODEL} status' type: DEPENDENT key: 'manager.status.bay[{#ENCLOSURE_MANAGER_BAY}]' delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - '$.managerBays[?(@.bayNumber=="{#ENCLOSURE_MANAGER_BAY}")].status.first()' master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure manager modules' trigger_prototypes: - uuid: f42f9587e2b74591bceac729034627b1 expression: 'last(/HPE OneView Enclosure/manager.status.bay[{#ENCLOSURE_MANAGER_BAY}])<>"OK"' name: 'Enclosure Manager module error in BAY{#ENCLOSURE_MANAGER_BAY}' opdata: 'state: {ITEM.LASTVALUE1}' priority: HIGH master_item: key: oneview.get.enclosure.parameters lld_macro_paths: - lld_macro: '{#ENCLOSURE_MANAGER_BAY}' path: $.bayNumber - lld_macro: '{#ENCLOSURE_MANAGER_MODEL}' path: $.model - lld_macro: '{#ENCLOSURE_MANAGER_PRESENCE}' path: $.devicePresence preprocessing: - type: JSONPATH parameters: - $.managerBays - uuid: b06997096e124a6cbef4e5d0d8500a06 name: 'Enclosure PSU discovery' type: DEPENDENT key: enclosure.psu.disovery delay: '0' item_prototypes: - uuid: 2f96f671704740909e00edf90ab14148 name: 'Enclosure PSU bay{#ENCLOSURE_PSU_BAY} model' type: DEPENDENT key: 'psu.model.bay[{#ENCLOSURE_PSU_BAY}]' delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - '$.powerSupplyBays[?(@.bayNumber=="{#ENCLOSURE_PSU_BAY}")].model.first()' master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure PSU' - uuid: 9c370e5185ed49089afb394178292561 name: 'Enclosure PSU bay{#ENCLOSURE_PSU_BAY} presence' type: DEPENDENT key: 'psu.presence.bay[{#ENCLOSURE_PSU_BAY}]' delay: '0' trends: '0' value_type: TEXT preprocessing: - type: JSONPATH parameters: - '$.powerSupplyBays[?(@.bayNumber=="{#ENCLOSURE_PSU_BAY}")].devicePresence.first()' master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure PSU' - uuid: 90e1b72e731a48d7addddfdb7bf4be49 name: 'Enclosure PSU bay{#ENCLOSURE_PSU_BAY} status' type: DEPENDENT key: 'psu.status.bay[{#ENCLOSURE_PSU_BAY}]' delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - '$.powerSupplyBays[?(@.bayNumber=="{#ENCLOSURE_PSU_BAY}")].status.first()' master_item: key: oneview.get.enclosure.parameters tags: - tag: Application value: 'Enclosure PSU' trigger_prototypes: - uuid: 7a13bc9c067047f1833455aabacb4438 expression: 'last(/HPE OneView Enclosure/psu.status.bay[{#ENCLOSURE_PSU_BAY}])<>"OK"' name: 'Encloure PSU error in BAY{#ENCLOSURE_PSU_BAY}' opdata: 'state: {ITEM.LASTVALUE1}' priority: HIGH master_item: key: oneview.get.enclosure.parameters lld_macro_paths: - lld_macro: '{#ENCLOSURE_PSU_BAY}' path: $.bayNumber preprocessing: - type: JSONPATH parameters: - $.powerSupplyBays - uuid: 8ded61fc887a4bdea9a6b4fc9a162b32 template: 'HPE OneView Logical Enclosure' name: 'HPE OneView Logical Enclosure' groups: - name: 'Templates/Server hardware' items: - uuid: 58f6f8450402401fa0ad5c6284d74fed name: 'Get logical enclosure parameters' type: SCRIPT key: oneview.get.logicalenclosure.parameters delay: 5m history: '0' trends: '0' value_type: TEXT params: | try { var result = [], req = new HttpRequest(), resp; req.addHeader('content-type: application/json'); req.addHeader('x-api-version: 3000'); //GET Token resp = req.post('https://{$ONEVIEW_HOST}/rest/login-sessions',value); Zabbix.log(5, 'login-sessions reply is :' + resp) if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); token = resp.sessionID; //GET Enclosure req.addHeader('auth: '+token); resp = req.get('https://{$ONEVIEW_HOST}/{$LOGICAL_ENCLOSURE_URI}'); if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } result = JSON.parse(resp); //DELETE token resp = req.delete('https://{$ONEVIEW_HOST}/rest/login-sessions'); if (req.getStatus() != 204) { throw 'Response code: '+req.getStatus(); } } catch (error) { Zabbix.log(4, 'OneView api error: '+error); Zabbix.log(4, 'Host : {$ONEVIEW_HOST}'); Zabbix.log(4, 'Values : '+JSON.stringify(value)); result = { failed: error }; } //RESULT return JSON.stringify(result); parameters: - name: password value: '{$ONEVIEW_PASS}' - name: userName value: '{$ONEVIEW_USER}' - name: authLoginDomain value: 'local' - uuid: 30e9785858b24c13a6bd933d0686e41e name: 'Logical enclosure consistency state' type: DEPENDENT key: oneview.logicalenclosure.consistency delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - $.state master_item: key: oneview.get.logicalenclosure.parameters - uuid: fa226ce47d9f4613b0dc8a1e1bdc707f name: 'Logical enclosure status' type: DEPENDENT key: oneview.logicalenclosure.status delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - $.status master_item: key: oneview.get.logicalenclosure.parameters - uuid: bc49dd3d9be04098b4d0be30fff93c3e template: 'HPE OneView Server' name: 'HPE OneView Server' groups: - name: 'Templates/Server hardware' items: - uuid: f56f0364d972426c807db3941bac287d name: 'Get server parameteres' type: SCRIPT key: oneview.get.server.parameters delay: 5m history: '0' trends: '0' value_type: TEXT params: | try { var result = [], req = new HttpRequest(), resp; req.addHeader('content-type: application/json'); req.addHeader('x-api-version: 3000'); //GET Token resp = req.post('https://{$ONEVIEW_HOST}/rest/login-sessions',value); Zabbix.log(5, 'login-sessions reply is :' + resp) if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } resp = JSON.parse(resp); token = resp.sessionID; //GET Server req.addHeader('auth: '+token); resp = req.get('https://{$ONEVIEW_HOST}/{$SERVER_URI}'); if (req.getStatus() != 200) { throw 'Response code: '+req.getStatus(); } result = JSON.parse(resp); //DELETE token resp = req.delete('https://{$ONEVIEW_HOST}/rest/login-sessions'); if (req.getStatus() != 204) { throw 'Response code: '+req.getStatus(); } } catch (error) { Zabbix.log(4, 'OneView api error: '+error); Zabbix.log(4, 'Host : {$ONEVIEW_HOST}'); Zabbix.log(4, 'Values : '+JSON.stringify(value)); result = { failed: error }; } //RESULT return JSON.stringify(result); parameters: - name: password value: '{$ONEVIEW_PASS}' - name: userName value: '{$ONEVIEW_USER}' - name: authLoginDomain value: 'local' - uuid: a7f415f838fc49b68fe4f6946ccfe727 name: 'Server ILO state' type: DEPENDENT key: oneview.server.ilostate delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - $.mpState master_item: key: oneview.get.server.parameters triggers: - uuid: 1a73e1aa42774afb8b89848a9f08790e expression: 'last(/HPE OneView Server/oneview.server.ilostate)<>"OK"' name: 'Server management processor state problem' opdata: 'ILO state: {ITEM.LASTVALUE1}' priority: HIGH - uuid: c83d0d8c321a4d14a64680d7410b6f34 name: 'Server operating system' type: DEPENDENT key: oneview.server.operatingsystem delay: '0' trends: '0' value_type: TEXT preprocessing: - type: JSONPATH parameters: - $.operatingSystem master_item: key: oneview.get.server.parameters - uuid: ac282c4334fb47a7a7e5294ae1ffabb4 name: 'Server position' type: DEPENDENT key: oneview.server.position delay: '0' preprocessing: - type: JSONPATH parameters: - $.position master_item: key: oneview.get.server.parameters - uuid: 572447fa8f8c4688882c57af0e312878 name: 'Server power state' type: DEPENDENT key: oneview.server.powerstate delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - $.powerState master_item: key: oneview.get.server.parameters triggers: - uuid: f47f0eb7940840e297540997c44af136 expression: 'last(/HPE OneView Server/oneview.server.powerstate)="Off"' name: 'Server is powered off' opdata: 'power state: {ITEM.LASTVALUE1}' priority: INFO - uuid: b03f089dad55400b9d5eeee98df43425 name: 'Server serial number' type: DEPENDENT key: oneview.server.serialnumber delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - $.serialNumber master_item: key: oneview.get.server.parameters - uuid: 560bf0374e204c7d92db5de4d3702fdf name: 'Server name' type: DEPENDENT key: oneview.server.servername delay: '0' trends: '0' value_type: TEXT preprocessing: - type: JSONPATH parameters: - $.serverName master_item: key: oneview.get.server.parameters - uuid: ad20034ab76f48fa8f5e1573f3bbb079 name: 'Server status' type: DEPENDENT key: oneview.server.status delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - $.status master_item: key: oneview.get.server.parameters triggers: - uuid: 82342e05fbf9429799abe28b6b686268 expression: 'last(/HPE OneView Server/oneview.server.status)<>"OK"' name: 'Server status problem' opdata: 'status: {ITEM.LASTVALUE1}' priority: HIGH - uuid: 17507d46ebff47d39d8fb62796a20c7f name: 'Server support state' type: DEPENDENT key: oneview.server.supportstate delay: '0' trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - $.supportState master_item: key: oneview.get.server.parameters triggers: - uuid: 08f4f04e2cbd42e3a7c2b601e187ef3b expression: 'last(/HPE OneView Server/oneview.server.supportstate)<>"Enabled"' name: 'Server support state problem' opdata: 'support state: {ITEM.LASTVALUE1}' priority: WARNING