zabbix_export: version: '6.0' date: '2021-12-17T06:14:13Z' groups: - uuid: e960332b3f6c46a1956486d4f3f99fce name: 'Templates/Server hardware' templates: - uuid: 02f35169a5a54a5aad8b3f06e798ab1f template: 'Chassis by IPMI' name: 'Chassis by IPMI' description: | Template for monitoring servers with BMC over IPMI that work without any external scripts. All metrics are collected at once, thanks to Zabbix's bulk data collection. The template is available starting from Zabbix version 5.0. It collects metrics by polling BMC remotely using an IPMI agent. Known Issues: Description: If the BMC has a sensor with an empty threshold value, we get the LLD error "Cannot create trigger...". You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/398023-discussion-thread-for-official-zabbix-template-ipmi Template tooling version used: 0.40 groups: - name: 'Templates/Server hardware' items: - uuid: dbcf45cb09284fc19a17e7369c8fda43 name: 'Get IPMI sensors' type: IPMI key: ipmi.get history: '0' trends: '0' value_type: TEXT description: 'The master item that receives all sensors with values for LLD and dependent elements from BMC.' tags: - tag: Application value: 'Zabbix raw items' discovery_rules: - uuid: d0a3bd3c62d7438d8acde8ff0a9bb4db name: 'Discrete sensors discovery' type: DEPENDENT key: ipmi.discrete.discovery delay: '0' filter: evaltype: AND conditions: - macro: '{#SENSOR_READING_TYPE}' value: threshold operator: NOT_MATCHES_REGEX formulaid: A - macro: '{#SENSOR_TYPE}' value: '{$IPMI.SENSOR_TYPE.MATCHES}' formulaid: B - macro: '{#SENSOR_TYPE}' value: '{$IPMI.SENSOR_TYPE.NOT_MATCHES}' operator: NOT_MATCHES_REGEX formulaid: C description: 'Discovery of the discrete IPMI sensors.' item_prototypes: - uuid: 6ce86fa51c614f94b2250e14af8d9385 name: 'IPMI: {#SENSOR_ID}' type: DEPENDENT key: 'ipmi.state_text[{#SENSOR_ID}]' delay: '0' history: 7d trends: '0' value_type: CHAR description: 'It is a state of the discrete IPMI sensor.' preprocessing: - type: JSONPATH parameters: - '$.[?(@.id==''{#SENSOR_ID}'')].state.text.first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d master_item: key: ipmi.get tags: - tag: Application value: 'IPMI {#SENSOR_TYPE}' trigger_prototypes: - uuid: efe107571d704895bbb43c95407e6689 expression: 'last(/Chassis by IPMI/ipmi.state_text[{#SENSOR_ID}],#1)<>last(/Chassis by IPMI/ipmi.state_text[{#SENSOR_ID}],#2)' name: 'IPMI: {#SENSOR_ID} value has changed' priority: INFO description: 'The trigger is informing about changes in a state of the discrete IPMI sensor. A problem generated by this trigger can be manually closed.' manual_close: 'YES' master_item: key: ipmi.get lld_macro_paths: - lld_macro: '{#SENSOR_ID}' path: $.id - lld_macro: '{#SENSOR_READING_TYPE}' path: $.reading.text - lld_macro: '{#SENSOR_TYPE}' path: $.sensor.text - lld_macro: '{#SENSOR_UNIT}' path: $.units - uuid: bd5ceb5412d3462d90fa857b2d214788 name: 'Threshold sensors discovery' type: DEPENDENT key: ipmi.sensors.discovery delay: '0' filter: evaltype: AND conditions: - macro: '{#SENSOR_READING_TYPE}' value: threshold formulaid: A - macro: '{#SENSOR_TYPE}' value: '{$IPMI.SENSOR_TYPE.MATCHES}' formulaid: B - macro: '{#SENSOR_TYPE}' value: '{$IPMI.SENSOR_TYPE.NOT_MATCHES}' operator: NOT_MATCHES_REGEX formulaid: C description: 'Discovery of the threshold IPMI sensors.' item_prototypes: - uuid: 77e8c8c6e2444667b5da698c802dbae0 name: 'IPMI: {#SENSOR_ID}, {#SENSOR_UNIT}' type: DEPENDENT key: 'ipmi.value[{#SENSOR_ID}]' delay: '0' history: 7d value_type: FLOAT description: 'It is a state of the threshold IPMI sensor.' preprocessing: - type: JSONPATH parameters: - '$.[?(@.id==''{#SENSOR_ID}'')].value.first()' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: ipmi.get tags: - tag: Application value: 'IPMI {#SENSOR_TYPE}' trigger_prototypes: - uuid: e9c37c1847d64920b80a20cc764b6c81 expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_CRIT}' name: 'IPMI: {#SENSOR_ID} value is above critical high (greater than {#SENSOR_HI_CRIT} for 5m)' priority: HIGH description: 'The trigger is informing that a value higher than the upper critical threshold has been reached.' dependencies: - name: 'IPMI: {#SENSOR_ID} value is above non-recoverable high (greater than {#SENSOR_HI_DISAST} for 5m)' expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_DISAST}' - uuid: 0fc9d9baa3dd4d3db841e2153b6c39b2 expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_WARN}' name: 'IPMI: {#SENSOR_ID} value is above non-critical high (greater than {#SENSOR_HI_WARN} for 5m)' priority: WARNING description: 'The trigger is informing that a value higher than the upper non-critical threshold has been reached.' dependencies: - name: 'IPMI: {#SENSOR_ID} value is above critical high (greater than {#SENSOR_HI_CRIT} for 5m)' expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_CRIT}' - name: 'IPMI: {#SENSOR_ID} value is above non-recoverable high (greater than {#SENSOR_HI_DISAST} for 5m)' expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_DISAST}' - uuid: 2c3dbc3f68db44f1924682a8241e0086 expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_DISAST}' name: 'IPMI: {#SENSOR_ID} value is above non-recoverable high (greater than {#SENSOR_HI_DISAST} for 5m)' priority: DISASTER description: 'The trigger is informing that a value higher than the upper non-recoverable threshold has been reached.' - uuid: adbb7e20a46d42329e4744548aa9d5f6 expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_CRIT}' name: 'IPMI: {#SENSOR_ID} value is below critical low (less than {#SENSOR_LO_CRIT} for 5m)' priority: HIGH description: 'The trigger is informing that a value less than the lower critical threshold has been reached.' dependencies: - name: 'IPMI: {#SENSOR_ID} value is below non-recoverable low (less than {#SENSOR_LO_DISAST} for 5m)' expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_DISAST}' - uuid: 7b712e7b11a34635948517467f77ad9d expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_WARN}' name: 'IPMI: {#SENSOR_ID} value is below non-critical low (less than {#SENSOR_LO_WARN} for 5m)' priority: WARNING description: 'The trigger is informing that a value less than the lower non-critical threshold has been reached.' dependencies: - name: 'IPMI: {#SENSOR_ID} value is below critical low (less than {#SENSOR_LO_CRIT} for 5m)' expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_CRIT}' - name: 'IPMI: {#SENSOR_ID} value is below non-recoverable low (less than {#SENSOR_LO_DISAST} for 5m)' expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_DISAST}' - uuid: b078ee6b820f44f2871c2e3fcd0ce4cf expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_DISAST}' name: 'IPMI: {#SENSOR_ID} value is below non-recoverable low (less than {#SENSOR_LO_DISAST} for 5m)' priority: DISASTER description: 'The trigger is informing that a value less than the lower non-recoverable threshold has been reached.' graph_prototypes: - uuid: 85099badf8d547d89f498cf29bcd51a8 name: 'IPMI: {#SENSOR_ID}' graph_items: - color: 1A7C11 item: host: 'Chassis by IPMI' key: 'ipmi.value[{#SENSOR_ID}]' master_item: key: ipmi.get lld_macro_paths: - lld_macro: '{#SENSOR_HI_CRIT}' path: $.threshold.upper.crit - lld_macro: '{#SENSOR_HI_DISAST}' path: $.threshold.upper.non_recover - lld_macro: '{#SENSOR_HI_WARN}' path: $.threshold.upper.non_crit - lld_macro: '{#SENSOR_ID}' path: $.id - lld_macro: '{#SENSOR_LO_CRIT}' path: $.threshold.lower.crit - lld_macro: '{#SENSOR_LO_DISAST}' path: $.threshold.lower.non_recover - lld_macro: '{#SENSOR_LO_WARN}' path: $.threshold.lower.non_crit - lld_macro: '{#SENSOR_READING_TYPE}' path: $.reading.text - lld_macro: '{#SENSOR_TYPE}' path: $.sensor.text - lld_macro: '{#SENSOR_UNIT}' path: $.units overrides: - name: 'trigger SENSOR_HI_CRIT' step: '5' operations: - operationobject: TRIGGER_PROTOTYPE operator: LIKE value: '{#SENSOR_HI_CRIT}' status: ENABLED discover: NO_DISCOVER - name: 'trigger SENSOR_HI_DISAST' step: '6' operations: - operationobject: TRIGGER_PROTOTYPE operator: LIKE value: '{#SENSOR_HI_DISAST}' status: ENABLED discover: NO_DISCOVER - name: 'trigger SENSOR_HI_WARN' step: '4' operations: - operationobject: TRIGGER_PROTOTYPE operator: LIKE value: '{#SENSOR_HI_WARN}' status: ENABLED discover: NO_DISCOVER - name: 'trigger SENSOR_LO_CRIT' step: '2' operations: - operationobject: TRIGGER_PROTOTYPE operator: LIKE value: '{#SENSOR_LO_CRIT}' status: ENABLED discover: NO_DISCOVER - name: 'trigger SENSOR_LO_DISAST' step: '3' operations: - operationobject: TRIGGER_PROTOTYPE operator: LIKE value: '{#SENSOR_LO_DISAST}' status: ENABLED discover: NO_DISCOVER - name: 'trigger SENSOR_LO_WARN' step: '1' operations: - operationobject: TRIGGER_PROTOTYPE operator: LIKE value: '{#SENSOR_LO_WARN}' status: ENABLED discover: NO_DISCOVER macros: - macro: '{$IPMI.PASSWORD}' description: 'This macro is used for access to BMC. It can be overridden on the host or linked template level.' - macro: '{$IPMI.SENSOR_TYPE.MATCHES}' value: '.*' description: 'This macro is used in sensors discovery. It can be overridden on the host or linked template level.' - macro: '{$IPMI.SENSOR_TYPE.NOT_MATCHES}' value: invalid description: 'This macro is used in sensors discovery. It can be overridden on the host or linked template level.' - macro: '{$IPMI.USER}' description: 'This macro is used for access to BMC. It can be overridden on the host or linked template level.'