zabbix_export: version: '5.2' date: '2020-10-23T09:05:07Z' groups: - name: 'Templates/Network devices' templates: - template: 'Extreme EXOS SNMP' name: 'Extreme EXOS SNMP' description: | Template Extreme EXOS MIBs used: EXTREME-SOFTWARE-MONITOR-MIB EXTREME-SYSTEM-MIB ENTITY-MIB Template tooling version used: 0.38 templates: - name: 'EtherLike-MIB SNMP' - name: 'Generic SNMP' - name: 'Interfaces SNMP' groups: - name: 'Templates/Network devices' applications: - name: CPU - name: Fans - name: Inventory - name: Memory - name: 'Power supply' - name: Temperature items: - name: 'Device: Temperature status' type: SNMP_AGENT snmp_oid: 1.3.6.1.4.1.1916.1.1.1.7.0 key: 'sensor.temp.status[extremeOverTemperatureAlarm.0]' delay: 3m history: 2w trends: 0d description: | MIB: EXTREME-SYSTEM-MIB Temperature status of testpoint: Device applications: - name: Temperature valuemap: name: 'EXTREME-SYSTEM-MIB::extremeOverTemperatureAlarm' - name: 'Device: Temperature' type: SNMP_AGENT snmp_oid: 1.3.6.1.4.1.1916.1.1.1.8.0 key: 'sensor.temp.value[extremeCurrentTemperature.0]' delay: 3m value_type: FLOAT units: °C description: | MIB: EXTREME-SYSTEM-MIB Temperature readings of testpoint: Device Reference: https://gtacknowledge.extremenetworks.com/articles/Q_A/Does-EXOS-support-temperature-polling-via-SNMP-on-all-nodes-in-a-stack applications: - name: Temperature triggers: - expression: '{avg(5m)}>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' name: 'Device: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' dependencies: - name: 'Device: Temperature is above critical threshold: >{$TEMP_CRIT:""}' expression: | {Extreme EXOS SNMP:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}>{$TEMP_CRIT:""} or {Extreme EXOS SNMP:sensor.temp.status[extremeOverTemperatureAlarm.0].last()}={$TEMP_CRIT_STATUS} recovery_expression: '{Extreme EXOS SNMP:sensor.temp.value[extremeCurrentTemperature.0].max(5m)}<{$TEMP_CRIT:""}-3' - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' name: 'Device: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE - name: 'CPU utilization' type: SNMP_AGENT snmp_oid: 1.3.6.1.4.1.1916.1.32.1.2.0 key: 'system.cpu.util[extremeCpuMonitorTotalUtilization.0]' history: 7d value_type: FLOAT units: '%' description: | MIB: EXTREME-SOFTWARE-MONITOR-MIB Total CPU utlization (percentage) as of last sampling. applications: - name: CPU triggers: - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING description: 'CPU utilization is too high. The system might be slow to respond.' - name: 'Firmware version' type: SNMP_AGENT snmp_oid: 1.3.6.1.2.1.47.1.1.1.1.9.1 key: system.hw.firmware delay: 1h history: 2w trends: '0' value_type: CHAR description: 'MIB: ENTITY-MIB' applications: - name: Inventory preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d triggers: - expression: '{diff()}=1 and {strlen()}>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO description: 'Firmware version has changed. Ack to close' manual_close: 'YES' - name: 'Hardware model name' type: SNMP_AGENT snmp_oid: 1.3.6.1.2.1.47.1.1.1.1.2.1 key: system.hw.model delay: 1h history: 2w trends: '0' value_type: CHAR description: 'MIB: ENTITY-MIB' inventory_link: MODEL applications: - name: Inventory preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d - name: 'Hardware serial number' type: SNMP_AGENT snmp_oid: 1.3.6.1.2.1.47.1.1.1.1.11.1 key: system.hw.serialnumber delay: 1h history: 2w trends: '0' value_type: CHAR description: 'MIB: ENTITY-MIB' inventory_link: SERIALNO_A applications: - name: Inventory preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d triggers: - expression: '{diff()}=1 and {strlen()}>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' manual_close: 'YES' - name: 'Hardware version(revision)' type: SNMP_AGENT snmp_oid: 1.3.6.1.2.1.47.1.1.1.1.9.1 key: system.hw.version delay: 1h history: 2w trends: '0' value_type: CHAR description: 'MIB: ENTITY-MIB' applications: - name: Inventory preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d - name: 'Operating system' type: SNMP_AGENT snmp_oid: 1.3.6.1.4.1.1916.1.1.1.13.0 key: 'system.sw.os[extremePrimarySoftwareRev.0]' delay: 1h history: 2w trends: '0' value_type: CHAR description: | MIB: EXTREME-SYSTEM-MIB The software revision of the primary image stored in this device. This string will have a zero length if the revision is unknown, invalid or not present. This will also be reported in RMON2 probeSoftwareRev if this is the software image currently running in the device. inventory_link: OS applications: - name: Inventory preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d triggers: - expression: '{diff()}=1 and {strlen()}>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' manual_close: 'YES' discovery_rules: - name: 'FAN Discovery' type: SNMP_AGENT snmp_oid: 'discovery[{#SNMPVALUE},1.3.6.1.4.1.1916.1.1.1.9.1.1]' key: fan.discovery delay: 1h item_prototypes: - name: 'Fan {#SNMPVALUE}: Fan speed' type: SNMP_AGENT snmp_oid: '1.3.6.1.4.1.1916.1.1.1.9.1.4.{#SNMPINDEX}' key: 'sensor.fan.speed[extremeFanSpeed.{#SNMPINDEX}]' units: rpm description: | MIB: EXTREME-SYSTEM-MIB The speed (RPM) of a cooling fan in the fantray {#SNMPVALUE} applications: - name: Fans - name: 'Fan {#SNMPVALUE}: Fan status' type: SNMP_AGENT snmp_oid: '1.3.6.1.4.1.1916.1.1.1.9.1.2.{#SNMPINDEX}' key: 'sensor.fan.status[extremeFanOperational.{#SNMPINDEX}]' delay: 3m history: 2w trends: 0d description: | MIB: EXTREME-SYSTEM-MIB Operational status of a cooling fan. applications: - name: Fans valuemap: name: 'EXTREME-SYSTEM-MIB::extremeFanOperational' trigger_prototypes: - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' name: 'Fan {#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - name: 'Memory Discovery' type: SNMP_AGENT snmp_oid: 'discovery[{#SNMPVALUE},1.3.6.1.4.1.1916.1.32.2.2.1.1]' key: memory.discovery delay: 1h item_prototypes: - name: '#{#SNMPVALUE}: Available memory' type: SNMP_AGENT snmp_oid: '1.3.6.1.4.1.1916.1.32.2.2.1.3.{#SNMPINDEX}' key: 'vm.memory.available[extremeMemoryMonitorSystemFree.{#SNMPINDEX}]' history: 7d units: B description: | MIB: EXTREME-SOFTWARE-MONITOR-MIB Total amount of free memory in Kbytes in the system. applications: - name: Memory preprocessing: - type: MULTIPLIER parameters: - '1024' - name: '#{#SNMPVALUE}: Total memory' type: SNMP_AGENT snmp_oid: '1.3.6.1.4.1.1916.1.32.2.2.1.2.{#SNMPINDEX}' key: 'vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]' history: 7d units: B description: | MIB: EXTREME-SOFTWARE-MONITOR-MIB Total amount of DRAM in Kbytes in the system. applications: - name: Memory preprocessing: - type: MULTIPLIER parameters: - '1024' - name: '#{#SNMPVALUE}: Memory utilization' type: CALCULATED key: 'vm.memory.util[{#SNMPVALUE}]' history: 7d value_type: FLOAT units: '%' params: '(last("vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]") - last("vm.memory.available[extremeMemoryMonitorSystemFree.{#SNMPINDEX}]")) / last("vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]") * 100' description: 'Memory utilization in %' applications: - name: Memory trigger_prototypes: - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' name: '#{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' graph_prototypes: - name: '#{#SNMPVALUE}: Memory usage' ymin_type_1: FIXED graph_items: - drawtype: BOLD_LINE color: 1A7C11 item: host: 'Extreme EXOS SNMP' key: 'vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]' - sortorder: '1' drawtype: GRADIENT_LINE color: 2774A4 item: host: 'Extreme EXOS SNMP' key: 'vm.memory.available[extremeMemoryMonitorSystemFree.{#SNMPINDEX}]' - name: '#{#SNMPVALUE}: Memory utilization' ymin_type_1: FIXED ymax_type_1: FIXED graph_items: - drawtype: GRADIENT_LINE color: 1A7C11 item: host: 'Extreme EXOS SNMP' key: 'vm.memory.util[{#SNMPVALUE}]' - name: 'PSU Discovery' type: SNMP_AGENT snmp_oid: 'discovery[{#SNMPVALUE},1.3.6.1.4.1.1916.1.1.1.27.1.1]' key: psu.discovery delay: 1h description: 'Table of status of all power supplies in the system.' item_prototypes: - name: 'PSU {#SNMPVALUE}: Power supply status' type: SNMP_AGENT snmp_oid: '1.3.6.1.4.1.1916.1.1.1.27.1.2.{#SNMPINDEX}' key: 'sensor.psu.status[extremePowerSupplyStatus.{#SNMPINDEX}]' delay: 3m history: 2w trends: 0d description: | MIB: EXTREME-SYSTEM-MIB Status of the power supply {#SNMPVALUE} applications: - name: 'Power supply' valuemap: name: 'EXTREME-SYSTEM-MIB::extremePowerSupplyStatus' trigger_prototypes: - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' name: 'PSU {#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' macros: - macro: '{$CPU.UTIL.CRIT}' value: '90' - macro: '{$FAN_CRIT_STATUS}' value: '2' - macro: '{$MEMORY.UTIL.MAX}' value: '90' - macro: '{$PSU_CRIT_STATUS}' value: '3' - macro: '{$TEMP_CRIT}' value: '65' - macro: '{$TEMP_CRIT_LOW}' value: '5' - macro: '{$TEMP_CRIT_STATUS}' value: '1' - macro: '{$TEMP_WARN}' value: '55' triggers: - expression: | {Extreme EXOS SNMP:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}>{$TEMP_CRIT:""} or {Extreme EXOS SNMP:sensor.temp.status[extremeOverTemperatureAlarm.0].last()}={$TEMP_CRIT_STATUS} recovery_mode: RECOVERY_EXPRESSION recovery_expression: '{Extreme EXOS SNMP:sensor.temp.value[extremeCurrentTemperature.0].max(5m)}<{$TEMP_CRIT:""}-3' name: 'Device: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' graphs: - name: 'CPU utilization' ymin_type_1: FIXED ymax_type_1: FIXED graph_items: - drawtype: GRADIENT_LINE color: 1A7C11 item: host: 'Extreme EXOS SNMP' key: 'system.cpu.util[extremeCpuMonitorTotalUtilization.0]' value_maps: - name: 'EXTREME-SYSTEM-MIB::extremeFanOperational' mappings: - value: '1' newvalue: 'true - on' - value: '2' newvalue: 'false - off' - name: 'EXTREME-SYSTEM-MIB::extremeOverTemperatureAlarm' mappings: - value: '1' newvalue: alarm - value: '2' newvalue: normal - name: 'EXTREME-SYSTEM-MIB::extremePowerSupplyStatus' mappings: - value: '1' newvalue: notPresent - value: '2' newvalue: presentOK - value: '3' newvalue: presentNotOK - value: '4' newvalue: presentPowerOff