Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'templates/net/arista_snmp/README.md')
-rw-r--r--templates/net/arista_snmp/README.md72
1 files changed, 36 insertions, 36 deletions
diff --git a/templates/net/arista_snmp/README.md b/templates/net/arista_snmp/README.md
index 4a2db153fb5..c0c732bd44b 100644
--- a/templates/net/arista_snmp/README.md
+++ b/templates/net/arista_snmp/README.md
@@ -1,9 +1,9 @@
-# Arista SNMP
+# Arista by SNMP
## Overview
-For Zabbix version: 6.4 and higher
+For Zabbix version: 6.4 and higher.
This template was tested on:
@@ -66,13 +66,13 @@ There are no template links in this template.
|----|-----------|----|----|
|Entity discovery |<p>-</p> |SNMP |entity.discovery<p>**Filter**:</p>AND_OR <p>- {#ENT_CLASS} MATCHES_REGEX `3`</p> |
|EtherLike-MIB Discovery |<p>Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with up(1) Operational Status are discovered.</p> |SNMP |net.if.duplex.discovery<p>**Preprocessing**:</p><p>- JAVASCRIPT: `The text is too long. Please see the template.`</p><p>**Filter**:</p>AND <p>- {#IFOPERSTATUS} MATCHES_REGEX `1`</p><p>- {#SNMPVALUE} MATCHES_REGEX `(2|3)`</p> |
-|Fan discovery |<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with rpm filter</p> |DEPENDENT |fan.discovery<p>**Filter**:</p>OR <p>- {#SENSOR_TYPE} MATCHES_REGEX `10`</p><p>**Overrides:**</p><p>trigger THRESHOLD_LO_WARN<br> - {#THRESHOLD_LO_WARN} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Fan speed is below the warning threshold` - NO_DISCOVER</p><p>trigger THRESHOLD_LO_CRIT<br> - {#THRESHOLD_LO_CRIT} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Fan speed is below the critical threshold` - NO_DISCOVER</p><p>trigger THRESHOLD_HI_WARN<br> - {#THRESHOLD_HI_WARN} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Fan speed is above the warning threshold` - NO_DISCOVER</p><p>trigger THRESHOLD_HI_CRIT<br> - {#THRESHOLD_HI_CRIT} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Fan speed is above the critical threshold` - NO_DISCOVER</p> |
+|Fan discovery |<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with rpm filter</p> |DEPENDENT |fan.discovery<p>**Filter**:</p>OR <p>- {#SENSOR_TYPE} MATCHES_REGEX `10`</p><p>**Overrides:**</p><p>trigger THRESHOLD_LO_WARN<br> - {#THRESHOLD_LO_WARN} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Fan speed is below the warning threshold`<br> - NO_DISCOVER</p><p>trigger THRESHOLD_LO_CRIT<br> - {#THRESHOLD_LO_CRIT} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Fan speed is below the critical threshold`<br> - NO_DISCOVER</p><p>trigger THRESHOLD_HI_WARN<br> - {#THRESHOLD_HI_WARN} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Fan speed is above the warning threshold`<br> - NO_DISCOVER</p><p>trigger THRESHOLD_HI_CRIT<br> - {#THRESHOLD_HI_CRIT} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Fan speed is above the critical threshold`<br> - NO_DISCOVER</p> |
|Memory discovery |<p>HOST-RESOURCES-MIB::hrStorage discovery with memory filter</p> |SNMP |vm.memory.discovery<p>**Filter**:</p>AND <p>- {#MEMTYPE} MATCHES_REGEX `{$MEMORY.TYPE.MATCHES}`</p><p>- {#MEMTYPE} NOT_MATCHES_REGEX `{$MEMORY.TYPE.NOT_MATCHES}`</p><p>- {#MEMNAME} MATCHES_REGEX `{$MEMORY.NAME.MATCHES}`</p><p>- {#MEMNAME} NOT_MATCHES_REGEX `{$MEMORY.NAME.NOT_MATCHES}`</p> |
|Network interfaces discovery |<p>Discovering interfaces from IF-MIB.</p> |SNMP |net.if.discovery<p>**Filter**:</p>AND <p>- {#IFADMINSTATUS} MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.MATCHES}`</p><p>- {#IFADMINSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFADMINSTATUS.NOT_MATCHES}`</p><p>- {#IFOPERSTATUS} MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.MATCHES}`</p><p>- {#IFOPERSTATUS} NOT_MATCHES_REGEX `{$NET.IF.IFOPERSTATUS.NOT_MATCHES}`</p><p>- {#IFNAME} MATCHES_REGEX `{$NET.IF.IFNAME.MATCHES}`</p><p>- {#IFNAME} NOT_MATCHES_REGEX `{$NET.IF.IFNAME.NOT_MATCHES}`</p><p>- {#IFDESCR} MATCHES_REGEX `{$NET.IF.IFDESCR.MATCHES}`</p><p>- {#IFDESCR} NOT_MATCHES_REGEX `{$NET.IF.IFDESCR.NOT_MATCHES}`</p><p>- {#IFALIAS} MATCHES_REGEX `{$NET.IF.IFALIAS.MATCHES}`</p><p>- {#IFALIAS} NOT_MATCHES_REGEX `{$NET.IF.IFALIAS.NOT_MATCHES}`</p><p>- {#IFTYPE} MATCHES_REGEX `{$NET.IF.IFTYPE.MATCHES}`</p><p>- {#IFTYPE} NOT_MATCHES_REGEX `{$NET.IF.IFTYPE.NOT_MATCHES}`</p> |
|PSU discovery |<p>-</p> |SNMP |psu.discovery<p>**Filter**:</p>AND_OR <p>- {#ENT_CLASS} MATCHES_REGEX `6`</p> |
|Storage discovery |<p>HOST-RESOURCES-MIB::hrStorage discovery with storage filter.</p> |SNMP |vfs.fs.discovery[snmp]<p>**Filter**:</p>AND <p>- {#FSTYPE} MATCHES_REGEX `{$VFS.FS.FSTYPE.MATCHES}`</p><p>- {#FSTYPE} NOT_MATCHES_REGEX `{$VFS.FS.FSTYPE.NOT_MATCHES}`</p><p>- {#FSNAME} MATCHES_REGEX `{$VFS.FS.FSNAME.MATCHES}`</p><p>- {#FSNAME} NOT_MATCHES_REGEX `{$VFS.FS.FSNAME.NOT_MATCHES}`</p> |
-|Temperature discovery |<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with temperature filter</p> |DEPENDENT |temp.discovery<p>**Filter**:</p>AND <p>- {#SENSOR_TYPE} MATCHES_REGEX `8`</p><p>- {#SENSOR_PRECISION} MATCHES_REGEX `1`</p><p>**Overrides:**</p><p>trigger THRESHOLD_LO_WARN<br> - {#THRESHOLD_LO_WARN} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Temperature is below the warning threshold` - NO_DISCOVER</p><p>trigger THRESHOLD_LO_CRIT<br> - {#THRESHOLD_LO_CRIT} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Temperature is below the critical threshold` - NO_DISCOVER</p><p>trigger THRESHOLD_HI_WARN<br> - {#THRESHOLD_HI_WARN} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Temperature is above the warning threshold` - NO_DISCOVER</p><p>trigger THRESHOLD_HI_CRIT<br> - {#THRESHOLD_HI_CRIT} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Temperature is above the critical threshold` - NO_DISCOVER</p> |
-|Voltage discovery |<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with volts filter</p> |DEPENDENT |voltage.discovery<p>**Filter**:</p>OR <p>- {#SENSOR_TYPE} MATCHES_REGEX `3|4`</p><p>**Overrides:**</p><p>trigger THRESHOLD_LO_WARN<br> - {#THRESHOLD_LO_WARN} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Voltage is below the warning threshold` - NO_DISCOVER</p><p>trigger THRESHOLD_LO_CRIT<br> - {#THRESHOLD_LO_CRIT} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Voltage is below the critical threshold` - NO_DISCOVER</p><p>trigger THRESHOLD_HI_WARN<br> - {#THRESHOLD_HI_WARN} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Voltage is above the warning threshold` - NO_DISCOVER</p><p>trigger THRESHOLD_HI_CRIT<br> - {#THRESHOLD_HI_CRIT} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Voltage is above the critical threshold` - NO_DISCOVER</p> |
+|Temperature discovery |<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with temperature filter</p> |DEPENDENT |temp.discovery<p>**Filter**:</p>AND <p>- {#SENSOR_TYPE} MATCHES_REGEX `8`</p><p>- {#SENSOR_PRECISION} MATCHES_REGEX `1`</p><p>**Overrides:**</p><p>trigger THRESHOLD_LO_WARN<br> - {#THRESHOLD_LO_WARN} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Temperature is below the warning threshold`<br> - NO_DISCOVER</p><p>trigger THRESHOLD_LO_CRIT<br> - {#THRESHOLD_LO_CRIT} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Temperature is below the critical threshold`<br> - NO_DISCOVER</p><p>trigger THRESHOLD_HI_WARN<br> - {#THRESHOLD_HI_WARN} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Temperature is above the warning threshold`<br> - NO_DISCOVER</p><p>trigger THRESHOLD_HI_CRIT<br> - {#THRESHOLD_HI_CRIT} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Temperature is above the critical threshold`<br> - NO_DISCOVER</p> |
+|Voltage discovery |<p>ENTITY-SENSORS-MIB::EntitySensorDataType discovery with volts filter</p> |DEPENDENT |voltage.discovery<p>**Filter**:</p>OR <p>- {#SENSOR_TYPE} MATCHES_REGEX `3|4`</p><p>**Overrides:**</p><p>trigger THRESHOLD_LO_WARN<br> - {#THRESHOLD_LO_WARN} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Voltage is below the warning threshold`<br> - NO_DISCOVER</p><p>trigger THRESHOLD_LO_CRIT<br> - {#THRESHOLD_LO_CRIT} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Voltage is below the critical threshold`<br> - NO_DISCOVER</p><p>trigger THRESHOLD_HI_WARN<br> - {#THRESHOLD_HI_WARN} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Voltage is above the warning threshold`<br> - NO_DISCOVER</p><p>trigger THRESHOLD_HI_CRIT<br> - {#THRESHOLD_HI_CRIT} MATCHES_REGEX `^$`<br> - TRIGGER_PROTOTYPE REGEXP `Voltage is above the critical threshold`<br> - NO_DISCOVER</p> |
## Items collected
@@ -121,38 +121,38 @@ There are no template links in this template.
|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----|----|----|
-|High CPU utilization |<p>CPU utilization is too high. The system might be slow to respond.</p> |`min(/Arista SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT}` |WARNING | |
-|{#SENSOR_INFO}: Fan speed is below the warning threshold |<p>This trigger uses fan sensor values defined in the device.</p> |`max(/Arista SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_WARN}` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Fan is in critical state</p><p>- {#SENSOR_INFO}: Fan speed is below the critical threshold</p> |
-|{#SENSOR_INFO}: Fan speed is below the critical threshold |<p>This trigger uses fan sensor values defined in the device.</p> |`max(/Arista SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}` |HIGH |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Fan is in critical state</p> |
-|{#SENSOR_INFO}: Fan speed is above the warning threshold |<p>This trigger uses fan sensor values defined in the device.</p> |`min(/Arista SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_WARN}` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Fan is in critical state</p><p>- {#SENSOR_INFO}: Fan speed is above the critical threshold</p> |
-|{#SENSOR_INFO}: Fan speed is above the critical threshold |<p>This trigger uses fan sensor values defined in the device.</p> |`min(/Arista SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}` |HIGH |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Fan is in critical state</p> |
-|{#SENSOR_INFO}: Fan is in critical state |<p>Please check the fan unit</p> |`count(/Arista SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1` |AVERAGE | |
-|System name has changed |<p>System name has changed. Ack to close.</p> |`last(/Arista SNMP/system.name,#1)<>last(/Arista SNMP/system.name,#2) and length(last(/Arista SNMP/system.name))>0` |INFO |<p>Manual close: YES</p> |
-|{#ENT_NAME}: Device has been replaced |<p>Device serial number has changed. Ack to close</p> |`last(/Arista SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#1)<>last(/Arista SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#2) and length(last(/Arista SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]))>0` |INFO |<p>Manual close: YES</p> |
-|{#MEMNAME}: High memory utilization |<p>The system is running out of free memory.</p> |`min(/Arista SNMP/vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}` |AVERAGE | |
-|Interface {#IFNAME}({#IFALIAS}): In half-duplex mode |<p>Please check autonegotiation settings and cabling</p> |`last(/Arista SNMP/net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2` |WARNING |<p>Manual close: YES</p> |
-|Interface {#IFNAME}({#IFALIAS}): Link down |<p>This trigger expression works as follows:</p><p>1. Can be triggered if operations status is down.</p><p>2. {$IFCONTROL:"{#IFNAME}"}=1 - user can redefine Context macro to value - 0. That marks this interface as not important. No new trigger will be fired if this interface is down.</p><p>3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)</p><p>WARNING: if closed manually - won't fire again on next poll, because of .diff.</p> |`{$IFCONTROL:"{#IFNAME}"}=1 and last(/Arista SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Arista SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Arista SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))`<p>Recovery expression:</p>`last(/Arista SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0` |AVERAGE |<p>Manual close: YES</p> |
-|Interface {#IFNAME}({#IFALIAS}): High bandwidth usage |<p>The network interface utilization is close to its estimated maximum bandwidth.</p> |`(avg(/Arista SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Arista SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Arista SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Arista SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Arista SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0`<p>Recovery expression:</p>`avg(/Arista SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Arista SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and avg(/Arista SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Arista SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
-|Interface {#IFNAME}({#IFALIAS}): High error rate |<p>Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold</p> |`min(/Arista SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Arista SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}`<p>Recovery expression:</p>`max(/Arista SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Arista SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
-|Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before |<p>This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.</p> |`change(/Arista SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Arista SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Arista SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Arista SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Arista SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Arista SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Arista SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Arista SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Arista SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2)`<p>Recovery expression:</p>`(change(/Arista SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/Arista SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or (last(/Arista SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2)` |INFO |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
-|{#ENT_NAME}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`count(/Arista SNMP/sensor.psu.status[entStateOper.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1` |AVERAGE | |
-|Host has been restarted |<p>Uptime is less than 10 minutes.</p> |`(last(/Arista SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Arista SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Arista SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Arista SNMP/system.net.uptime[sysUpTime.0])<10m)` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p> |
-|No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`max(/Arista SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> |
-|Unavailable by ICMP ping |<p>Last three attempts returned timeout. Please check device connectivity.</p> |`max(/Arista SNMP/icmpping,#3)=0` |HIGH | |
-|High ICMP ping loss |<p>-</p> |`min(/Arista SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Arista SNMP/icmppingloss,5m)<100` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> |
-|High ICMP ping response time |<p>-</p> |`avg(/Arista SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}` |WARNING |<p>**Depends on**:</p><p>- High ICMP ping loss</p><p>- Unavailable by ICMP ping</p> |
-|{#FSNAME}: Disk space is critically low |<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than {$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}.</p><p> - The disk will be full in less than 24 hours.</p> |`last(/Arista SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Arista SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Arista SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Arista SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) ` |AVERAGE |<p>Manual close: YES</p> |
-|{#FSNAME}: Disk space is low |<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than {$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"}.</p><p> - The disk will be full in less than 24 hours.</p> |`last(/Arista SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Arista SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Arista SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Arista SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) ` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- {#FSNAME}: Disk space is critically low</p> |
-|{#SENSOR_INFO}: Temperature is below the warning threshold |<p>This trigger uses temperature sensor values defined in the device.</p> |`max(/Arista SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_WARN}` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is below the critical threshold</p> |
-|{#SENSOR_INFO}: Temperature is below the critical threshold |<p>This trigger uses temperature sensor values defined in the device.</p> |`max(/Arista SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}` |HIGH | |
-|{#SENSOR_INFO}: Temperature is above the warning threshold |<p>This trigger uses temperature sensor values defined in the device.</p> |`min(/Arista SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_WARN}` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above the critical threshold</p> |
-|{#SENSOR_INFO}: Temperature is above the critical threshold |<p>This trigger uses temperature sensor values defined in the device.</p> |`min(/Arista SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}` |HIGH | |
-|{#SENSOR_INFO}: Voltage is below the warning threshold |<p>This trigger uses voltage sensor values defined in the device.</p> |`max(/Arista SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_WARN}` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Voltage is below the critical threshold</p> |
-|{#SENSOR_INFO}: Voltage is below the critical threshold |<p>This trigger uses voltage sensor values defined in the device.</p> |`max(/Arista SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}` |HIGH | |
-|{#SENSOR_INFO}: Voltage is above the warning threshold |<p>This trigger uses voltage sensor values defined in the device.</p> |`min(/Arista SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_WARN}` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Voltage is above the critical threshold</p> |
-|{#SENSOR_INFO}: Voltage is above the critical threshold |<p>This trigger uses voltage sensor values defined in the device.</p> |`min(/Arista SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}` |HIGH | |
+|High CPU utilization |<p>CPU utilization is too high. The system might be slow to respond.</p> |`min(/Arista by SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT}` |WARNING | |
+|{#SENSOR_INFO}: Fan speed is below the warning threshold |<p>This trigger uses fan sensor values defined in the device.</p> |`max(/Arista by SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_WARN}` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Fan is in critical state</p><p>- {#SENSOR_INFO}: Fan speed is below the critical threshold</p> |
+|{#SENSOR_INFO}: Fan speed is below the critical threshold |<p>This trigger uses fan sensor values defined in the device.</p> |`max(/Arista by SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}` |HIGH |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Fan is in critical state</p> |
+|{#SENSOR_INFO}: Fan speed is above the warning threshold |<p>This trigger uses fan sensor values defined in the device.</p> |`min(/Arista by SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_WARN}` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Fan is in critical state</p><p>- {#SENSOR_INFO}: Fan speed is above the critical threshold</p> |
+|{#SENSOR_INFO}: Fan speed is above the critical threshold |<p>This trigger uses fan sensor values defined in the device.</p> |`min(/Arista by SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}` |HIGH |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Fan is in critical state</p> |
+|{#SENSOR_INFO}: Fan is in critical state |<p>Please check the fan unit</p> |`count(/Arista by SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1` |AVERAGE | |
+|System name has changed |<p>System name has changed. Ack to close.</p> |`last(/Arista by SNMP/system.name,#1)<>last(/Arista by SNMP/system.name,#2) and length(last(/Arista by SNMP/system.name))>0` |INFO |<p>Manual close: YES</p> |
+|{#ENT_NAME}: Device has been replaced |<p>Device serial number has changed. Ack to close</p> |`last(/Arista by SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#1)<>last(/Arista by SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#2) and length(last(/Arista by SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]))>0` |INFO |<p>Manual close: YES</p> |
+|{#MEMNAME}: High memory utilization |<p>The system is running out of free memory.</p> |`min(/Arista by SNMP/vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}` |AVERAGE | |
+|Interface {#IFNAME}({#IFALIAS}): In half-duplex mode |<p>Please check autonegotiation settings and cabling</p> |`last(/Arista by SNMP/net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2` |WARNING |<p>Manual close: YES</p> |
+|Interface {#IFNAME}({#IFALIAS}): Link down |<p>This trigger expression works as follows:</p><p>1. Can be triggered if operations status is down.</p><p>2. {$IFCONTROL:"{#IFNAME}"}=1 - user can redefine Context macro to value - 0. That marks this interface as not important. No new trigger will be fired if this interface is down.</p><p>3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)</p><p>WARNING: if closed manually - won't fire again on next poll, because of .diff.</p> |`{$IFCONTROL:"{#IFNAME}"}=1 and last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))`<p>Recovery expression:</p>`last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0` |AVERAGE |<p>Manual close: YES</p> |
+|Interface {#IFNAME}({#IFALIAS}): High bandwidth usage |<p>The network interface utilization is close to its estimated maximum bandwidth.</p> |`(avg(/Arista by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Arista by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0`<p>Recovery expression:</p>`avg(/Arista by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and avg(/Arista by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
+|Interface {#IFNAME}({#IFALIAS}): High error rate |<p>Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold</p> |`min(/Arista by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Arista by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}`<p>Recovery expression:</p>`max(/Arista by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Arista by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
+|Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before |<p>This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close.</p> |`change(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Arista by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Arista by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Arista by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Arista by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Arista by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Arista by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2)`<p>Recovery expression:</p>`(change(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or (last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2)` |INFO |<p>Manual close: YES</p><p>**Depends on**:</p><p>- Interface {#IFNAME}({#IFALIAS}): Link down</p> |
+|{#ENT_NAME}: Power supply is in critical state |<p>Please check the power supply unit for errors</p> |`count(/Arista by SNMP/sensor.psu.status[entStateOper.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1` |AVERAGE | |
+|Host has been restarted |<p>Uptime is less than 10 minutes.</p> |`(last(/Arista by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Arista by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Arista by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Arista by SNMP/system.net.uptime[sysUpTime.0])<10m)` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- No SNMP data collection</p> |
+|No SNMP data collection |<p>SNMP is not available for polling. Please check device connectivity and SNMP settings.</p> |`max(/Arista by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> |
+|Unavailable by ICMP ping |<p>Last three attempts returned timeout. Please check device connectivity.</p> |`max(/Arista by SNMP/icmpping,#3)=0` |HIGH | |
+|High ICMP ping loss |<p>-</p> |`min(/Arista by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Arista by SNMP/icmppingloss,5m)<100` |WARNING |<p>**Depends on**:</p><p>- Unavailable by ICMP ping</p> |
+|High ICMP ping response time |<p>-</p> |`avg(/Arista by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}` |WARNING |<p>**Depends on**:</p><p>- High ICMP ping loss</p><p>- Unavailable by ICMP ping</p> |
+|{#FSNAME}: Disk space is critically low |<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than {$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}.</p><p> - The disk will be full in less than 24 hours.</p> |`last(/Arista by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Arista by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Arista by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Arista by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) ` |AVERAGE |<p>Manual close: YES</p> |
+|{#FSNAME}: Disk space is low |<p>Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}.</p><p> Second condition should be one of the following:</p><p> - The disk free space is less than {$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"}.</p><p> - The disk will be full in less than 24 hours.</p> |`last(/Arista by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Arista by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Arista by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Arista by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) ` |WARNING |<p>Manual close: YES</p><p>**Depends on**:</p><p>- {#FSNAME}: Disk space is critically low</p> |
+|{#SENSOR_INFO}: Temperature is below the warning threshold |<p>This trigger uses temperature sensor values defined in the device.</p> |`max(/Arista by SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_WARN}` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is below the critical threshold</p> |
+|{#SENSOR_INFO}: Temperature is below the critical threshold |<p>This trigger uses temperature sensor values defined in the device.</p> |`max(/Arista by SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}` |HIGH | |
+|{#SENSOR_INFO}: Temperature is above the warning threshold |<p>This trigger uses temperature sensor values defined in the device.</p> |`min(/Arista by SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_WARN}` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Temperature is above the critical threshold</p> |
+|{#SENSOR_INFO}: Temperature is above the critical threshold |<p>This trigger uses temperature sensor values defined in the device.</p> |`min(/Arista by SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}` |HIGH | |
+|{#SENSOR_INFO}: Voltage is below the warning threshold |<p>This trigger uses voltage sensor values defined in the device.</p> |`max(/Arista by SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_WARN}` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Voltage is below the critical threshold</p> |
+|{#SENSOR_INFO}: Voltage is below the critical threshold |<p>This trigger uses voltage sensor values defined in the device.</p> |`max(/Arista by SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}` |HIGH | |
+|{#SENSOR_INFO}: Voltage is above the warning threshold |<p>This trigger uses voltage sensor values defined in the device.</p> |`min(/Arista by SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_WARN}` |WARNING |<p>**Depends on**:</p><p>- {#SENSOR_INFO}: Voltage is above the critical threshold</p> |
+|{#SENSOR_INFO}: Voltage is above the critical threshold |<p>This trigger uses voltage sensor values defined in the device.</p> |`min(/Arista by SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}` |HIGH | |
## Feedback
-Please report any issues with the template at https://support.zabbix.com
+Please report any issues with the template at https://support.zabbix.com.