# ZYXEL MES3500-24 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-24 ## Requirements Zabbix version: 7.0 and higher. ## Tested versions This template has been tested on: - ZYXEL MES3500-24 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-24: SNMP agent availability||Zabbix internal|zabbix[host,snmp,available]

**Preprocessing**

| |ZYXEL MES3500-24: Hardware model name|

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_24.model

**Preprocessing**

| |ZYXEL MES3500-24: Contact|

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_24.contact

**Preprocessing**

| |ZYXEL MES3500-24: Host name|

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_24.name

**Preprocessing**

| |ZYXEL MES3500-24: Location|

MIB: RFC1213-MIB

The physical location of this node (e.g.,

`telephone closet, 3rd floor').

|SNMP agent|zyxel.3500_24.location

**Preprocessing**

| |ZYXEL MES3500-24: MAC address|

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_24.mac

**Preprocessing**

| |ZYXEL MES3500-24: Uptime (network)|

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_24.net.uptime

**Preprocessing**

| |ZYXEL MES3500-24: Uptime (hardware)|

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_24.hw.uptime

**Preprocessing**

| |ZYXEL MES3500-24: ZyNOS F/W Version|

MIB: ZYXEL-MES3500-24-MIB

|SNMP agent|zyxel.3500_24.fwversion

**Preprocessing**

| |ZYXEL MES3500-24: Hardware serial number|

MIB: ZYXEL-MES3500-24-MIB

Serial number

|SNMP agent|zyxel.3500_24.serialnumber

**Preprocessing**

| |ZYXEL MES3500-24: CPU utilization|

MIB: ZYXEL-MES3500-24-MIB

Show device CPU load in %, it's the snapshot of CPU load when

getting the values.

|SNMP agent|zyxel.3500_24.cpuusage| ### Triggers |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |ZYXEL MES3500-24: No SNMP data collection|

SNMP is not available for polling. Please check device connectivity and SNMP settings.

|`max(/ZYXEL MES3500-24 by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0`|Warning|| |ZYXEL MES3500-24: Template does not match hardware|

This template is for Zyxel MES3500-24, but connected to {ITEM.VALUE}

|`last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.model)<>"MES3500-24"`|Info|**Manual close**: Yes| |ZYXEL MES3500-24: Host has been restarted|

Uptime is less than 10 minutes.

|`(last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.hw.uptime)>0 and last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.hw.uptime)<10m) or (last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.hw.uptime)=0 and last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.net.uptime)<10m)`|Info|**Manual close**: Yes| |ZYXEL MES3500-24: Firmware has changed|

Firmware version has changed. Acknowledge to close the problem manually.

|`last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.fwversion,#1)<>last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.fwversion,#2) and length(last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.fwversion))>0`|Info|**Manual close**: Yes| |ZYXEL MES3500-24: Device has been replaced|

Device serial number has changed. Acknowledge to close the problem manually.

|`last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.serialnumber,#1)<>last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.serialnumber,#2) and length(last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.serialnumber))>0`|Info|**Manual close**: Yes| |ZYXEL MES3500-24: High CPU utilization|

The CPU utilization is too high. The system might be slow to respond.

|`min(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.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_24.temp.discovery

**Preprocessing**

| ### Item prototypes for Temperature discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |ZYXEL MES3500-24: Temperature "{#ZYXEL.TEMP.ID}"|

MIB: ZYXEL-MES3500-24-MIB

The current temperature measured at this sensor

|SNMP agent|zyxel.3500_24.temp[{#SNMPINDEX}]

**Preprocessing**

| ### Trigger prototypes for Temperature discovery |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |ZYXEL MES3500-24: Temperature {#ZYXEL.TEMP.ID} is in critical state|

Please check the temperature

|`last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.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_24.volt.discovery

**Preprocessing**

| ### Item prototypes for Voltage discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |ZYXEL MES3500-24: Nominal "{#ZYXEL.VOLT.NOMINAL}"|

MIB: ZYXEL-MES3500-24-MIB

The current voltage reading.

|SNMP agent|zyxel.3500_24.volt[{#SNMPINDEX}]

**Preprocessing**

| ### Trigger prototypes for Voltage discovery |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |ZYXEL MES3500-24: Voltage {#ZYXEL.VOLT.NOMINAL} is in critical state|

Please check the power supply

|`last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.volt[{#SNMPINDEX}])<{#ZYXEL.VOLT.THRESH.LOW}`|Average|| ### LLD rule Interface discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |Interface discovery||SNMP agent|zyxel.3500_24.net.if.discovery| ### Item prototypes for Interface discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Speed Duplex|

MIB: ZYXEL-MES3500-24-MIB

Transmission mode

|SNMP agent|zyxel.3500_24.net.if.speed_duplex[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Interface description|

MIB: ZYXEL-MES3500-24-MIB

A textual string containing information about the interface

|SNMP agent|zyxel.3500_24.net.if.name[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Link type|

MIB: ZYXEL-MES3500-24-MIB

Physical connection type

|SNMP agent|zyxel.3500_24.net.if.link_type[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Interface name|

MIB: IF-MIB

A textual string containing information about the interface

|SNMP agent|zyxel.3500_24.net.if.descr[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Operational status|

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_24.net.if.operstatus[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Administrative status|

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_24.net.if.adminstatus[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Incoming traffic|

MIB: IF-MIB

The total number of octets received on the interface,

including framing characters.

|SNMP agent|zyxel.3500_24.net.if.in.traffic[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Incoming unicast packages|

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_24.net.if.in.ucastpkts[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Incoming multicast packages|

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_24.net.if.in.multicastpkts[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Incoming broadcast packages|

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_24.net.if.in.broadcastpkts[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Outgoing traffic|

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_24.net.if.out.traffic[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Outgoing unicast packages|

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_24.net.if.out.ucastpkts[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Outgoing multicast packages|

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_24.net.if.out.multicastpkts[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Outgoing broadcast packages|

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_24.net.if.out.broadcastpkts[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Link speed|

MIB: IF-MIB

An estimate of the interface's current bandwidth in bits per second

|SNMP agent|zyxel.3500_24.net.if.highspeed[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Incoming utilization|

Interface utilization percentage

|Calculated|zyxel.3500_24.net.if.in.util[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Outgoing utilization|

Interface utilization percentage

|Calculated|zyxel.3500_24.net.if.out.util[{#SNMPINDEX}]

**Preprocessing**

| ### Trigger prototypes for Interface discovery |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |ZYXEL MES3500-24: Port {#SNMPINDEX}: Link down|

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.

|`last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.net.if.operstatus[{#SNMPINDEX}])=2 and last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.net.if.operstatus[{#SNMPINDEX}],#1)<>last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.net.if.operstatus[{#SNMPINDEX}],#2)`|Average|**Manual close**: Yes| ### LLD rule SFP without DDM discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |SFP without DDM discovery|

SFP module discovery.

|SNMP agent|zyxel.3500_24.sfp.discovery| ### Item prototypes for SFP without DDM discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |ZYXEL MES3500-24: SFP {#SNMPINDEX}: Status|

MIB: ZYXEL-MES3500-24-MIB

Transceiver module status.

|SNMP agent|zyxel.3500_24.sfp.status[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: SFP {#SNMPINDEX}: Vendor|

MIB: ZYXEL-MES3500-24-MIB

Transceiver module vendor name.

|SNMP agent|zyxel.3500_24.sfp.vendor[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: SFP {#SNMPINDEX}: Part number|

MIB: ZYXEL-MES3500-24-MIB

Part number provided by transceiver module vendor.

|SNMP agent|zyxel.3500_24.sfp.part[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: SFP {#SNMPINDEX}: Serial number|

MIB: ZYXEL-MES3500-24-MIB

Serial number provided by transceiver module vendor.

|SNMP agent|zyxel.3500_24.sfp.serialnumber[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: SFP {#SNMPINDEX}: Revision|

MIB: ZYXEL-MES3500-24-MIB

Revision level for part number provided by transceiver module vendor.

|SNMP agent|zyxel.3500_24.sfp.revision[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: SFP {#SNMPINDEX}: Date code|

MIB: ZYXEL-MES3500-24-MIB

Transceiver module vendor's manufacturing date code.

|SNMP agent|zyxel.3500_24.sfp.datecode[{#SNMPINDEX}]

**Preprocessing**

| |ZYXEL MES3500-24: SFP {#SNMPINDEX}: Transceiver|

MIB: ZYXEL-MES3500-24-MIB

Transceiver module type names.

|SNMP agent|zyxel.3500_24.sfp.transceiver[{#SNMPINDEX}]

**Preprocessing**

| ### Trigger prototypes for SFP without DDM discovery |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |ZYXEL MES3500-24: SFP {#SNMPINDEX} has been replaced|

SFP {#SNMPINDEX} serial number has changed. Acknowledge to close the problem manually.

|`last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.sfp.serialnumber[{#SNMPINDEX}],#1)<>last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.sfp.serialnumber[{#SNMPINDEX}],#2) and length(last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.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_24.sfp.ddm.discovery

**Preprocessing**

| ### Item prototypes for SFP with DDM discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |ZYXEL MES3500-24: SFP {#ZYXEL.SFP.PORT}: {#ZYXEL.SFP.DESCRIPTION}|

MIB: ZYXEL-MES3500-24-MIB

Transceiver module DDM data ({#ZYXEL.SFP.DESCRIPTION}).

|SNMP agent|zyxel.3500_24.sfp.ddm[{#SNMPINDEX}]

**Preprocessing**

| ### Trigger prototypes for SFP with DDM discovery |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |ZYXEL MES3500-24: SFP {#ZYXEL.SFP.PORT}: High {#ZYXEL.SFP.DESCRIPTION}|

The upper threshold value of the parameter is exceeded

|`last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.sfp.ddm[{#SNMPINDEX}]) > {#ZYXEL.SFP.WARN.MAX}`|Warning|**Manual close**: Yes| |ZYXEL MES3500-24: SFP {#ZYXEL.SFP.PORT}: Low {#ZYXEL.SFP.DESCRIPTION}|

The parameter values are less than the lower threshold

|`last(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.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_24.memory.discovery| ### Item prototypes for Memory pool discovery |Name|Description|Type|Key and additional info| |----|-----------|----|-----------------------| |ZYXEL MES3500-24: Memory "{#ZYXEL.MEMORY.NAME}" utilization|

MIB: ZYXEL-MES3500-24-MIB

Utilization of memory pool in %.

|SNMP agent|zyxel.3500_24.memory[{#SNMPINDEX}]

**Preprocessing**

| ### Trigger prototypes for Memory pool discovery |Name|Description|Expression|Severity|Dependencies and additional info| |----|-----------|----------|--------|--------------------------------| |ZYXEL MES3500-24: High memory utilization in "{#ZYXEL.MEMORY.NAME}" pool|

The system is running out of free memory.

|`min(/ZYXEL MES3500-24 by SNMP/zyxel.3500_24.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)