# ZYXEL MES3500-10 by SNMP ## Overview https://service-provider.zyxel.com/emea/en/products/carrier-and-access-switches/access-switches/mes3500-series ### Known Issues Description: Incorrect handling of SNMP bulk requests. Disable the use of bulk requests in the SNMP interface settings. Version: all versions firmware Device: ZYXEL MES3500-10 ## Requirements Zabbix version: 7.0 and higher. ## Tested versions This template has been tested on: - ZYXEL MES3500-10 V4.00(AABB.4)b1_20180502 | 05/02/2018 ## Configuration > Zabbix should be configured according to the instructions in the [Templates out of the box](https://www.zabbix.com/documentation/7.0/manual/config/templates_out_of_the_box) section. ## Setup Refer to the vendor documentation. ### Macros used |Name|Description|Default| |----|-----------|-------| |{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}|
Triggers will be created only for interfaces whose description contains the value of this macro
|`CHANGE_IF_NEEDED`| |{$SNMP.TIMEOUT}|The time interval for SNMP agent availability trigger expression.
|`5m`| |{$CPU.UTIL.CRIT}||`90`| |{$MEMORY.UTIL.MAX}||`90`| |{$ZYXEL.LLD.FILTER.IF.NAME.MATCHES}|Filter by discoverable interface names.
|`.*`| |{$ZYXEL.LLD.FILTER.IF.NAME.NOT_MATCHES}|Filter to exclude discovered interfaces by name.
|`CHANGE_IF_NEEDED`| |{$ZYXEL.LLD.FILTER.IF.LINKUPTYPE.MATCHES}|Filter of discoverable link types.
0 - Down link
1 - Cooper link
2 - Fiber link
|`1\|2`| |{$ZYXEL.LLD.FILTER.IF.LINKUPTYPE.NOT_MATCHES}|Filter to exclude discovered by link types.
|`CHANGE_IF_NEEDED`| |{$ZYXEL.LLD.FILTER.SFP.STATUS.MATCHES}|Filter of discoverable status.
0 - OK with DDM
1 - OK without DDM
2 - nonoperational
|`1\|2`| |{$ZYXEL.LLD.FILTER.SFP.STATUS.NOT_MATCHES}|Filter to exclude discovered by status.
|`CHANGE_IF_NEEDED`| |{$ZYXEL.LLD.FILTER.SFPDDM.DESC.MATCHES}|Filter by discoverable SFP modules name.
|`.*`| |{$ZYXEL.LLD.FILTER.SFPDDM.DESC.NOT_MATCHES}|Filter to exclude discovered SFP modules by name.
|`N/A`| |{$ZYXEL.LLD.SFP.UPDATE}|Receiving data from the SFP module is slow, we do not recommend setting the interval less than 10 minutes.
|`10m`| ### Items |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |ZYXEL MES3500-10: SNMP agent availability||Zabbix internal|zabbix[host,snmp,available]**Preprocessing**
Discard unchanged with heartbeat: `1h`
MIB: RFC1213-MIB
A textual description of the entity. This value
should include the full name and version
identification of the system's hardware type,
software operating-system, and networking
software. It is mandatory that this only contain
printable ASCII characters.
|SNMP agent|zyxel.3500_10.model**Preprocessing**
Discard unchanged with heartbeat: `6h`
MIB: RFC1213-MIB
The textual identification of the contact person
for this managed node, together with information
on how to contact this person.
|SNMP agent|zyxel.3500_10.contact**Preprocessing**
Discard unchanged with heartbeat: `6h`
MIB: RFC1213-MIB
An administratively-assigned name for this
managed node. By convention, this is the node's
fully-qualified domain name.
|SNMP agent|zyxel.3500_10.name**Preprocessing**
Discard unchanged with heartbeat: `6h`
MIB: RFC1213-MIB
The physical location of this node (e.g.,
`telephone closet, 3rd floor').
|SNMP agent|zyxel.3500_10.location**Preprocessing**
Discard unchanged with heartbeat: `6h`
MIB: IF-MIB
The interface's address at the protocol layer
immediately `below' the network layer in the
protocol stack. For interfaces which do not have
such an address (e.g., a serial line), this object
should contain an octet string of zero length.
|SNMP agent|zyxel.3500_10.mac**Preprocessing**
Discard unchanged with heartbeat: `6h`
MIB: RFC1213-MIB
The time (in hundredths of a second) since the
network management portion of the system was last
re-initialized.
|SNMP agent|zyxel.3500_10.net.uptime**Preprocessing**
Custom multiplier: `0.01`
MIB: HOST-RESOURCES-MIB
The amount of time since this host was last initialized.
Note that this is different from sysUpTime in the SNMPv2-MIB
[RFC1907] because sysUpTime is the uptime of the
network management portion of the system.
|SNMP agent|zyxel.3500_10.hw.uptime**Preprocessing**
Check for not supported value
⛔️Custom on fail: Set value to: `0`
Custom multiplier: `0.01`
MIB: ZYXEL-MES3500-10-MIB
|SNMP agent|zyxel.3500_10.fwversion**Preprocessing**
JavaScript: `The text is too long. Please see the template.`
Discard unchanged with heartbeat: `1d`
MIB: ZYXEL-MES3500-10-MIB
Serial number
|SNMP agent|zyxel.3500_10.serialnumber**Preprocessing**
Discard unchanged with heartbeat: `6h`
MIB: ZYXEL-MES3500-10-MIB
Show device CPU load in %, it's the snapshot of CPU load when
getting the values.
|SNMP agent|zyxel.3500_10.cpuusage| ### Triggers |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |ZYXEL MES3500-10: No SNMP data collection|SNMP is not available for polling. Please check device connectivity and SNMP settings.
|`max(/ZYXEL MES3500-10 by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0`|Warning|| |ZYXEL MES3500-10: Template does not match hardware|This template is for Zyxel MES3500-10, but connected to {ITEM.VALUE}
|`last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.model)<>"MES3500-10"`|Info|**Manual close**: Yes| |ZYXEL MES3500-10: Host has been restarted|Uptime is less than 10 minutes.
|`(last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.hw.uptime)>0 and last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.hw.uptime)<10m) or (last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.hw.uptime)=0 and last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.net.uptime)<10m)`|Info|**Manual close**: Yes| |ZYXEL MES3500-10: Firmware has changed|Firmware version has changed. Acknowledge to close the problem manually.
|`last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.fwversion,#1)<>last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.fwversion,#2) and length(last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.fwversion))>0`|Info|**Manual close**: Yes| |ZYXEL MES3500-10: Device has been replaced|Device serial number has changed. Acknowledge to close the problem manually.
|`last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.serialnumber,#1)<>last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.serialnumber,#2) and length(last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.serialnumber))>0`|Info|**Manual close**: Yes| |ZYXEL MES3500-10: High CPU utilization|The CPU utilization is too high. The system might be slow to respond.
|`min(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.cpuusage,5m)>{$CPU.UTIL.CRIT}`|Warning|| ### LLD rule Temperature discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Temperature discovery|An entry in tempTable.
Index of temperature unit. 1:MAC, 2:CPU, 3:PHY
|SNMP agent|zyxel.3500_10.temp.discovery**Preprocessing**
JavaScript: `The text is too long. Please see the template.`
MIB: ZYXEL-MES3500-10-MIB
The current temperature measured at this sensor
|SNMP agent|zyxel.3500_10.temp[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `1h`
Please check the temperature
|`last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.temp[{#SNMPINDEX}])>{#ZYXEL.TEMP.THRESH.HIGH}`|Average|| ### LLD rule Voltage discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Voltage discovery|An entry in voltageTable.
|SNMP agent|zyxel.3500_10.volt.discovery**Preprocessing**
JavaScript: `The text is too long. Please see the template.`
MIB: ZYXEL-MES3500-10-MIB
The current voltage reading.
|SNMP agent|zyxel.3500_10.volt[{#SNMPINDEX}]**Preprocessing**
Custom multiplier: `0.001`
Discard unchanged with heartbeat: `1h`
Please check the power supply
|`last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.volt[{#SNMPINDEX}])<{#ZYXEL.VOLT.THRESH.LOW}`|Average|| ### LLD rule Interface discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Interface discovery||SNMP agent|zyxel.3500_10.net.if.discovery| ### Item prototypes for Interface discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |ZYXEL MES3500-10: Port {#SNMPINDEX}: Speed Duplex|MIB: ZYXEL-MES3500-10-MIB
Transmission mode
|SNMP agent|zyxel.3500_10.net.if.speed_duplex[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `6h`
MIB: ZYXEL-MES3500-10-MIB
A textual string containing information about the interface
|SNMP agent|zyxel.3500_10.net.if.name[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `6h`
MIB: ZYXEL-MES3500-10-MIB
Physical connection type
|SNMP agent|zyxel.3500_10.net.if.link_type[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `6h`
MIB: IF-MIB
A textual string containing information about the interface
|SNMP agent|zyxel.3500_10.net.if.descr[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `6h`
MIB: IF-MIB
The current operational state of the interface.
The testing(3) state indicates that no operational
packets can be passed.
|SNMP agent|zyxel.3500_10.net.if.operstatus[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `6h`
MIB: IF-MIB
The desired state of the interface. The
testing(3) state indicates that no operational
packets can be passed.
|SNMP agent|zyxel.3500_10.net.if.adminstatus[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `6h`
MIB: IF-MIB
The total number of octets received on the interface,
including framing characters.
|SNMP agent|zyxel.3500_10.net.if.in.traffic[{#SNMPINDEX}]**Preprocessing**
Custom multiplier: `8`
MIB: IF-MIB
The number of packets, delivered by this sub-layer to a
higher (sub-)layer, which were not addressed to a multicast
or broadcast address at this sub-layer
|SNMP agent|zyxel.3500_10.net.if.in.ucastpkts[{#SNMPINDEX}]**Preprocessing**
MIB: IF-MIB
The number of packets, delivered by this sub-layer to a
higher (sub-)layer, which were addressed to a multicast
address at this sub-layer. For a MAC layer protocol, this
includes both Group and Functional addresses.
|SNMP agent|zyxel.3500_10.net.if.in.multicastpkts[{#SNMPINDEX}]**Preprocessing**
MIB: IF-MIB
The number of packets, delivered by this sub-layer to a
higher (sub-)layer, which were addressed to a broadcast
address at this sub-layer.
|SNMP agent|zyxel.3500_10.net.if.in.broadcastpkts[{#SNMPINDEX}]**Preprocessing**
MIB: IF-MIB
The total number of octets transmitted out of the
interface, including framing characters. This object is a
64-bit version of ifOutOctets.
|SNMP agent|zyxel.3500_10.net.if.out.traffic[{#SNMPINDEX}]**Preprocessing**
Custom multiplier: `8`
MIB: IF-MIB
The total number of packets that higher-level protocols
requested be transmitted, and which were not addressed to a
multicast or broadcast address at this sub-layer, including
those that were discarded or not sent.
|SNMP agent|zyxel.3500_10.net.if.out.ucastpkts[{#SNMPINDEX}]**Preprocessing**
MIB: IF-MIB
The total number of packets that higher-level protocols
requested be transmitted, and which were addressed to a
multicast address at this sub-layer, including those that
were discarded or not sent. For a MAC layer protocol, this
includes both Group and Functional addresses.
|SNMP agent|zyxel.3500_10.net.if.out.multicastpkts[{#SNMPINDEX}]**Preprocessing**
MIB: IF-MIB
The total number of packets that higher-level protocols
requested be transmitted, and which were addressed to a
broadcast address at this sub-layer, including those that
were discarded or not sent.
|SNMP agent|zyxel.3500_10.net.if.out.broadcastpkts[{#SNMPINDEX}]**Preprocessing**
MIB: IF-MIB
An estimate of the interface's current bandwidth in bits per second
|SNMP agent|zyxel.3500_10.net.if.highspeed[{#SNMPINDEX}]**Preprocessing**
Custom multiplier: `1000000`
Discard unchanged with heartbeat: `6h`
Interface utilization percentage
|Calculated|zyxel.3500_10.net.if.in.util[{#SNMPINDEX}]**Preprocessing**
In range: `0 -> 100`
⛔️Custom on fail: Discard value
JavaScript: `The text is too long. Please see the template.`
Interface utilization percentage
|Calculated|zyxel.3500_10.net.if.out.util[{#SNMPINDEX}]**Preprocessing**
In range: `0 -> 100`
⛔️Custom on fail: Discard value
JavaScript: `The text is too long. Please see the template.`
This trigger expression works as follows:
1. It can be triggered if the operations status is down.
2. `{$IFCONTROL:"{#IFNAME}"}=1` - a 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.
3. `{TEMPLATE_NAME:METRIC.diff()}=1` - the trigger fires only if the operational status was up to (1) sometime before (so, do not fire for the 'eternal off' interfaces.)
WARNING: if closed manually - it will not fire again on the next poll, because of .diff.
SFP module discovery.
|SNMP agent|zyxel.3500_10.sfp.discovery| ### Item prototypes for SFP without DDM discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |ZYXEL MES3500-10: SFP {#SNMPINDEX}: Status|MIB: ZYXEL-MES3500-10-MIB
Transceiver module status.
|SNMP agent|zyxel.3500_10.sfp.status[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `1h`
MIB: ZYXEL-MES3500-10-MIB
Transceiver module vendor name.
|SNMP agent|zyxel.3500_10.sfp.vendor[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `1h`
MIB: ZYXEL-MES3500-10-MIB
Part number provided by transceiver module vendor.
|SNMP agent|zyxel.3500_10.sfp.part[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `1h`
MIB: ZYXEL-MES3500-10-MIB
Serial number provided by transceiver module vendor.
|SNMP agent|zyxel.3500_10.sfp.serialnumber[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `1h`
MIB: ZYXEL-MES3500-10-MIB
Revision level for part number provided by transceiver module vendor.
|SNMP agent|zyxel.3500_10.sfp.revision[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `1h`
MIB: ZYXEL-MES3500-10-MIB
Transceiver module vendor's manufacturing date code.
|SNMP agent|zyxel.3500_10.sfp.datecode[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `1h`
MIB: ZYXEL-MES3500-10-MIB
Transceiver module type names.
|SNMP agent|zyxel.3500_10.sfp.transceiver[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `1h`
SFP {#SNMPINDEX} serial number has changed. Acknowledge to close the problem manually.
|`last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.sfp.serialnumber[{#SNMPINDEX}],#1)<>last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.sfp.serialnumber[{#SNMPINDEX}],#2) and length(last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.sfp.serialnumber[{#SNMPINDEX}]))>0`|Info|**Manual close**: Yes| ### LLD rule SFP with DDM discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |SFP with DDM discovery|SFP DDM module discovery.
|SNMP agent|zyxel.3500_10.sfp.ddm.discovery**Preprocessing**
JavaScript: `The text is too long. Please see the template.`
MIB: ZYXEL-MES3500-10-MIB
Transceiver module DDM data ({#ZYXEL.SFP.DESCRIPTION}).
|SNMP agent|zyxel.3500_10.sfp.ddm[{#SNMPINDEX}]**Preprocessing**
Custom multiplier: `0.01`
Discard unchanged with heartbeat: `6h`
The upper threshold value of the parameter is exceeded
|`last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.sfp.ddm[{#SNMPINDEX}]) > {#ZYXEL.SFP.WARN.MAX}`|Warning|**Manual close**: Yes| |ZYXEL MES3500-10: SFP {#ZYXEL.SFP.PORT}: Low {#ZYXEL.SFP.DESCRIPTION}|The parameter values are less than the lower threshold
|`last(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.sfp.ddm[{#SNMPINDEX}]) < {#ZYXEL.SFP.WARN.MIN}`|Warning|**Manual close**: Yes| ### LLD rule Memory pool discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Memory pool discovery||SNMP agent|zyxel.3500_10.memory.discovery| ### Item prototypes for Memory pool discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |ZYXEL MES3500-10: Memory "{#ZYXEL.MEMORY.NAME}" utilization|MIB: ZYXEL-MES3500-10-MIB
Utilization of memory pool in %.
|SNMP agent|zyxel.3500_10.memory[{#SNMPINDEX}]**Preprocessing**
Discard unchanged with heartbeat: `1h`
The system is running out of free memory.
|`min(/ZYXEL MES3500-10 by SNMP/zyxel.3500_10.memory[{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}`|Average|| ## Feedback Please report any issues with the template at [`https://support.zabbix.com`](https://support.zabbix.com) You can also provide feedback, discuss the template, or ask for help at [`ZABBIX forums`](https://www.zabbix.com/forum/zabbix-suggestions-and-feedback)