
# ZYXEL IES-500x by SNMP

## Overview

https://service-provider.zyxel.com/global/en/products/msansdslams/central-msans/chassis-msans/ies-5000-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 IES-500x

## Requirements

Zabbix version: 7.0 and higher.

## Tested versions

This template has been tested on:
- ZYXEL IES-500x

## 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`|
|{$ZYXEL.ADSL.SNR.MIN}|
Type the minimum signal to noise margin (0-31 dB)
|`8`|
|{$ZYXEL.ADSL.ATN.MAX}|
Type the maximum signal attenuation
|`40`|
|{$ZYXEL.LLD.FILTER.IF.DESC.MATCHES}|
Filter by discoverable interface names.
|`.*`|
|{$ZYXEL.LLD.FILTER.IF.DESC.NOT_MATCHES}|
Filter to exclude discovered interfaces by name.
|`CHANGE_IF_NEEDED`|
|{$ZYXEL.LLD.FILTER.SLOT.STATUS.MATCHES}|
Filter by discoverable slot status.
|`.*`|
|{$ZYXEL.LLD.FILTER.SLOT.STATUS.NOT_MATCHES}|
Filter to exclude discovered slots by status.
|`1`|
|{$ZYXEL.LLD.FILTER.IF.LINKSTATUS.MATCHES}|
Filter of discoverable link types.
|`.*`|
|{$ZYXEL.LLD.FILTER.IF.LINKSTATUS.NOT_MATCHES}|
Filter to exclude discovered by link types.
|`2`|

### Items

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|SNMP agent availability||Zabbix internal|zabbix[host,snmp,available]
**Preprocessing**

- 
Discard unchanged with heartbeat: `1h`

|
|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.ies500x.model
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|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.ies500x.contact
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|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.ies500x.name
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Location|
MIB: RFC1213-MIB

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

`telephone closet, 3rd floor').</p>|SNMP agent|zyxel.ies500x.location<p>**Preprocessing**</p><ul><li><p>Discard unchanged with heartbeat: `6h`

|
|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.ies500x.mac
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|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.ies500x.net.uptime
**Preprocessing**

- 
Custom multiplier: `0.01`

|
|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.ies500x.hw.uptime
**Preprocessing**

- 
Check for not supported value: `any error`

⛔️Custom on fail: Set value to: `0`

- 
Custom multiplier: `0.01`

|

### Triggers

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: No SNMP data collection|
SNMP is not available for polling. Please check device connectivity and SNMP settings.
|`max(/ZYXEL IES-500x by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0`|Warning||
|ZYXEL: Template does not match hardware|
This template is for Zyxel IES-500x, but connected to {ITEM.VALUE}
|`not(last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.model)="IES-5000" or last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.model)="IES-5005")`|Info|**Manual close**: Yes|
|ZYXEL: Host has been restarted|
Uptime is less than 10 minutes.
|`(last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.hw.uptime)>0 and last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.hw.uptime)<10m) or (last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.hw.uptime)=0 and last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.net.uptime)<10m)`|Info|**Manual close**: Yes|

### LLD rule Slot discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Slot discovery|
The table which contains the slot information in a chassis.
|SNMP agent|zyxel.ies500x.slot.discovery|

### Item prototypes for Slot discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Slot {#ZYXEL.SLOT.ID}: Type|
MIB: ZYXEL-IES5000-MIB

Card type of the plug-in card.
|SNMP agent|zyxel.ies500x.slot.type[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID}: Description|
MIB: ZYXEL-IES5000-MIB

The descriptions of the plug-in card.
|SNMP agent|zyxel.ies500x.slot.desc[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID}: Firmware version|
MIB: ZYXEL-IES5000-MIB

The firmware version of the plug-in card.
|SNMP agent|zyxel.ies500x.slot.fw.ver[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID}: Driver version|
MIB: ZYXEL-IES5000-MIB

The DSL driver of the plug-in card.
|SNMP agent|zyxel.ies500x.slot.dv.ver[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID}: DSL modem code version|
MIB: ZYXEL-IES5000-MIB

The DSL modem code version of the plug-in card.
|SNMP agent|zyxel.ies500x.slot.cv.ver[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID}: Status|
MIB: ZYXEL-IES5000-MIB

The module state of the plug-in card.
|SNMP agent|zyxel.ies500x.slot.status[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID}: Alarm status|
MIB: ZYXEL-IES5000-MIB

This variable indicates the alarm status of the module.

It is a bit map represented a sum, therefore, it can represent

multiple defects simultaneously. The moduleNoDefect should be set

if and only if no other flag is set.

The various bit positions are:

1   moduleNoDefect

2   moduleOverHeat

3   moduleFanRpmLow

4   moduleVoltageLow

5   moduleThermalSensorFailure

6   modulePullOut

7   powerDC48VAFailure

8   powerDC48VBFailure

9   extAlarmInputTrigger

10   moduleDown

11   mscSwitchOverOK

12   networkTopologyChange

13   macSpoof

14   cpuHigh

15   memoryUsageHigh

16   packetBufferUsageHigh

17   loopguardOccurence
|SNMP agent|zyxel.ies500x.slot.alarm[{#SNMPINDEX}]
**Preprocessing**

- 
JavaScript: `The text is too long. Please see the template.`

|
|Slot {#ZYXEL.SLOT.ID}: Hardware version|
MIB: ZYXEL-IES5000-MIB

The hardware version of the plug-in card.
|SNMP agent|zyxel.ies500x.slot.hw.ver[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID}: Serial number|
MIB: ZYXEL-IES5000-MIB

The serial number of the plug-in card.
|SNMP agent|zyxel.ies500x.slot.serial[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID}: Uptime|
MIB: ZYXEL-IES5000-MIB

The time (in seconds) since the plug-in card was last re-initialized.
|SNMP agent|zyxel.ies500x.slot.uptime[{#SNMPINDEX}]|
|Slot {#ZYXEL.SLOT.ID}: MAC address 1|
MIB: ZYXEL-IES5000-MIB

The MAC Address of the plug-in card.
|SNMP agent|zyxel.ies500x.slot.mac1[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID}: MAC address 2|
MIB: ZYXEL-IES5000-MIB

The MAC Address of the plug-in card.
|SNMP agent|zyxel.ies500x.slot.mac2[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|

### Trigger prototypes for Slot discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: Slot {#ZYXEL.SLOT.ID}: Firmware has changed|
Firmware version has changed. Acknowledge to close the problem manually.
|`last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.fw.ver[{#SNMPINDEX}],#1)<>last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.fw.ver[{#SNMPINDEX}],#2) and length(last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.fw.ver[{#SNMPINDEX}]))>0`|Info|**Manual close**: Yes|
|ZYXEL: Slot {#ZYXEL.SLOT.ID}: Driver has changed|
Firmware version has changed. Acknowledge to close the problem manually.
|`last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.dv.ver[{#SNMPINDEX}],#1)<>last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.dv.ver[{#SNMPINDEX}],#2) and length(last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.dv.ver[{#SNMPINDEX}]))>0`|Info|**Manual close**: Yes|
|ZYXEL: Slot {#ZYXEL.SLOT.ID}: DSL modem code has changed|
Firmware version has changed. Acknowledge to close the problem manually.
|`last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.cv.ver[{#SNMPINDEX}],#1)<>last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.cv.ver[{#SNMPINDEX}],#2) and length(last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.cv.ver[{#SNMPINDEX}]))>0`|Info|**Manual close**: Yes|
|ZYXEL: Slot {#ZYXEL.SLOT.ID} alarm|
The slot reported an error.
|`find(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.alarm[{#SNMPINDEX}],,"like","moduleNoDefect")=0`|Average|**Manual close**: Yes|
|ZYXEL: Slot {#ZYXEL.SLOT.ID}: Hardware version has changed|
Firmware version has changed. Acknowledge to close the problem manually.
|`last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.hw.ver[{#SNMPINDEX}],#1)<>last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.hw.ver[{#SNMPINDEX}],#2) and length(last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.hw.ver[{#SNMPINDEX}]))>0`|Info|**Manual close**: Yes|
|ZYXEL: Slot {#ZYXEL.SLOT.ID} has been replaced|
Slot {#ZYXEL.SLOT.ID} serial number has changed. Acknowledge to close the problem manually.
|`last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.serial[{#SNMPINDEX}],#1)<>last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.serial[{#SNMPINDEX}],#2) and length(last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.serial[{#SNMPINDEX}]))>0`|Info|**Manual close**: Yes|
|ZYXEL: Slot {#ZYXEL.SLOT.ID} has been restarted|
Uptime is less than 10 minutes.
|`last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.slot.uptime[{#SNMPINDEX}])<10m`|Info|**Manual close**: Yes|

### LLD rule Fan discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Fan discovery|
An entry in fanRpmTable.
|SNMP agent|zyxel.ies500x.fan.discovery|

### Item prototypes for Fan discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Fan #{#SNMPINDEX}|
MIB: ZYXEL-IES5000-MIB

Current speed in Revolutions Per Minute (RPM) on the fan.
|SNMP agent|zyxel.ies500x.fan[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `1h`

|

### Trigger prototypes for Fan discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: FAN{#SNMPINDEX} is in critical state|
Please check the fan unit
|`last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.fan[{#SNMPINDEX}])<{#ZYXEL.FANRPM.THRESH.LOW} or last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.fan[{#SNMPINDEX}])>{#ZYXEL.FANRPM.THRESH.HIGH}`|Average||

### LLD rule Temperature discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Temperature discovery|
An entry in tempTable.
|SNMP agent|zyxel.ies500x.temp.discovery
**Preprocessing**

- 
JavaScript: `The text is too long. Please see the template.`

|

### Item prototypes for Temperature discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Slot {#ZYXEL.SLOT.ID}: Temperature "{#ZYXEL.TEMP.ID}"|
MIB: ZYXEL-IES5000-MIB

The current temperature measured at this sensor
|SNMP agent|zyxel.ies500x.temp[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `1h`

|

### Trigger prototypes for Temperature discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: Temperature Slot {#ZYXEL.SLOT.ID} Sensor: {#ZYXEL.TEMP.ID} is in critical state|
Please check the temperature
|`last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.temp[{#SNMPINDEX}])>{#ZYXEL.TEMP.THRESH.HIGH} or last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.temp[{#SNMPINDEX}])<{#ZYXEL.TEMP.THRESH.LOW}`|Average||

### LLD rule Voltage discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Voltage discovery|
An entry in voltageTable.
|SNMP agent|zyxel.ies500x.volt.discovery
**Preprocessing**

- 
JavaScript: `The text is too long. Please see the template.`

|

### Item prototypes for Voltage discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Slot {#ZYXEL.SLOT.ID}: Nominal "{#ZYXEL.VOLT.NOMINAL}"|
MIB: ZYXEL-IES5000-MIB

The current voltage reading.
|SNMP agent|zyxel.ies500x.volt[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `0.001`

- 
Discard unchanged with heartbeat: `1h`

|

### Trigger prototypes for Voltage discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: Voltage Slot {#ZYXEL.SLOT.ID} {#ZYXEL.VOLT.NOMINAL} is in critical state|
Please check the power supply
|`last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.volt[{#SNMPINDEX}])<{#ZYXEL.VOLT.THRESH.LOW} or last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.volt[{#SNMPINDEX}])>{#ZYXEL.VOLT.THRESH.HIGH}`|Average||

### LLD rule CPU discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|CPU discovery|
A table that contains CPU utilization information.

This table is supported by R1.03 and later versions.
|SNMP agent|zyxel.ies500x.cpu.discovery
**Preprocessing**

- 
JavaScript: `The text is too long. Please see the template.`

|

### Item prototypes for CPU discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Slot {#ZYXEL.SLOT.ID}: CPU utilization|
MIB: ZYXEL-IES5000-MIB

The CPU utilization in the past 60 seconds.
|SNMP agent|zyxel.ies500x.cpu[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `1h`

|

### Trigger prototypes for CPU discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: Slot {#ZYXEL.SLOT.ID} high CPU utilization|
The CPU utilization is too high. The system might be slow to respond.
|`min(/ZYXEL IES-500x by SNMP/zyxel.ies500x.cpu[{#SNMPINDEX}],5m)>{#ZYXEL.CPU.THRESH.HIGH}`|Warning||

### LLD rule Memory discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Memory discovery|
A table that contains memory usage information.
|SNMP agent|zyxel.ies500x.memory.discovery
**Preprocessing**

- 
JavaScript: `The text is too long. Please see the template.`

|

### Item prototypes for Memory discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Slot {#ZYXEL.SLOT.ID}: Memory utilization|
MIB: ZYXEL-IES5000-MIB

The memory usage in the past 60 seconds.
|SNMP agent|zyxel.ies500x.memory[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `1h`

|

### Trigger prototypes for Memory discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: High memory utilization in Slot {#ZYXEL.SLOT.ID} pool|
The system is running out of free memory.
|`min(/ZYXEL IES-500x by SNMP/zyxel.ies500x.memory[{#SNMPINDEX}],5m)>{#ZYXEL.MEMORYHIGHTHRESH}`|Average||

### LLD rule Packet buffer discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Packet buffer discovery|
A table that contains packet buffer usage information.
|SNMP agent|zyxel.ies500x.buffer.discovery
**Preprocessing**

- 
JavaScript: `The text is too long. Please see the template.`

|

### Item prototypes for Packet buffer discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Slot {#ZYXEL.SLOT.ID}: Packet buffer utilization|
MIB: ZYXEL-IES5000-MIB

The packet buffer usage in the past 60 seconds.
|SNMP agent|zyxel.ies500x.buffer[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `1h`

|

### Trigger prototypes for Packet buffer discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: High Packet buffer utilization in Slot {#ZYXEL.SLOT.ID}|
The system is running out of free buffer.
|`min(/ZYXEL IES-500x by SNMP/zyxel.ies500x.buffer[{#SNMPINDEX}],5m)>{#ZYXEL.BUFFERHIGHTHRESH}`|Average||

### LLD rule Ethernet interface discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Ethernet interface discovery||SNMP agent|zyxel.ies500x.net.if.discovery|

### Item prototypes for Ethernet interface discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Port {#SNMPINDEX}: Interface description|
MIB: IF-MIB

A textual string containing information about the interface
|SNMP agent|zyxel.ies500x.net.if.descr[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Port {#SNMPINDEX}: Interface name|
MIB: IF-MIB

A textual string containing information about the interface
|SNMP agent|zyxel.ies500x.net.if.name[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

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

- 
Discard unchanged with heartbeat: `6h`

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

- 
Discard unchanged with heartbeat: `6h`

|
|Port {#SNMPINDEX}: Incoming traffic|
MIB: IF-MIB

The total number of octets received on the interface,

including framing characters.
|SNMP agent|zyxel.ies500x.net.if.in.traffic[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `8`

- Change per second
|
|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.ies500x.net.if.in.ucastpkts[{#SNMPINDEX}]
**Preprocessing**

- Change per second
|
|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.ies500x.net.if.in.multicastpkts[{#SNMPINDEX}]
**Preprocessing**

- Change per second
|
|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.ies500x.net.if.in.broadcastpkts[{#SNMPINDEX}]
**Preprocessing**

- Change per second
|
|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.ies500x.net.if.out.traffic[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `8`

- Change per second
|
|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.ies500x.net.if.out.ucastpkts[{#SNMPINDEX}]
**Preprocessing**

- Change per second
|
|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.ies500x.net.if.out.multicastpkts[{#SNMPINDEX}]
**Preprocessing**

- Change per second
|
|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.ies500x.net.if.out.broadcastpkts[{#SNMPINDEX}]
**Preprocessing**

- Change per second
|
|Port {#SNMPINDEX}: Link speed|
MIB: IF-MIB

An estimate of the interface's current bandwidth in bits per second
|SNMP agent|zyxel.ies500x.net.if.highspeed[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `1000000`

- 
Discard unchanged with heartbeat: `6h`

|
|Port {#SNMPINDEX}: Incoming utilization|
Interface utilization percentage
|Calculated|zyxel.ies500x.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.`

|
|Port {#SNMPINDEX}: Outgoing utilization|
Interface utilization percentage
|Calculated|zyxel.ies500x.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.`

|

### Trigger prototypes for Ethernet interface discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: 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 IES-500x by SNMP/zyxel.ies500x.net.if.operstatus[{#SNMPINDEX}])=2 and last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.net.if.operstatus[{#SNMPINDEX}],#1)<>last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.net.if.operstatus[{#SNMPINDEX}],#2)`|Average|**Manual close**: Yes|

### LLD rule ADSL interface discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|ADSL interface discovery||SNMP agent|zyxel.ies500x.net.adsl.discovery
**Preprocessing**

- 
JavaScript: `The text is too long. Please see the template.`

|

### Item prototypes for ADSL interface discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: Interface description|
MIB: IF-MIB

A textual string containing information about the interface
|SNMP agent|zyxel.ies500x.net.adsl.descr[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: Interface name|
MIB: IF-MIB

A textual string containing information about the interface
|SNMP agent|zyxel.ies500x.net.adsl.name[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: 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.ies500x.net.adsl.operstatus[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: 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.ies500x.net.adsl.adminstatus[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: Incoming traffic|
MIB: IF-MIB

The total number of octets received on the interface,

including framing characters.
|SNMP agent|zyxel.ies500x.net.adsl.in.traffic[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `8`

- Change per second
|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: 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.ies500x.net.adsl.in.ucastpkts[{#SNMPINDEX}]
**Preprocessing**

- Change per second
|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: 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.ies500x.net.adsl.in.multicastpkts[{#SNMPINDEX}]
**Preprocessing**

- Change per second
|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: 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.ies500x.net.adsl.in.broadcastpkts[{#SNMPINDEX}]
**Preprocessing**

- Change per second
|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: 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.ies500x.net.adsl.out.traffic[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `8`

- Change per second
|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: 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.ies500x.net.adsl.out.ucastpkts[{#SNMPINDEX}]
**Preprocessing**

- Change per second
|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: 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.ies500x.net.adsl.out.multicastpkts[{#SNMPINDEX}]
**Preprocessing**

- Change per second
|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: 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.ies500x.net.adsl.out.broadcastpkts[{#SNMPINDEX}]
**Preprocessing**

- Change per second
|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: ATUC noise margin|
MIB: ADSL-LINE-MIB

Noise Margin as seen by this ATU with respect to its

received signal in tenth dB.

The Info Atuc fields show data acquired from the ATUC (ADSL Termination Unit - Central), in this case ZYXEL IES-500x, during negotiation/provisioning message interchanges.
|SNMP agent|zyxel.ies500x.net.adsl.atuc.snrmgn[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `0.1`

- 
Discard unchanged with heartbeat: `1h`

|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: ATUC attenuation|
MIB: ADSL-LINE-MIB

Measured difference in the total power transmitted by

the peer ATU and the total power received by this ATU.

The Info Atuc fields show data acquired from the ATUC (ADSL Termination Unit - Central), in this case ZYXEL IES-500x, during negotiation/provisioning message interchanges.
|SNMP agent|zyxel.ies500x.net.adsl.atuc.atn[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `0.1`

- 
Discard unchanged with heartbeat: `1h`

|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: ATUC output power|
MIB: ADSL-LINE-MIB

Measured total output power transmitted by this ATU.

The Info Atuc fields show data acquired from the ATUC (ADSL Termination Unit - Central), in this case ZYXEL IES-500x, during negotiation/provisioning message interchanges.
|SNMP agent|zyxel.ies500x.net.adsl.atuc.outpwr[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `0.1`

- 
Discard unchanged with heartbeat: `1h`

|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: ATUR noise margin|
MIB: ADSL-LINE-MIB

Noise Margin as seen by this ATU with respect to its

received signal in tenth dB.

The Info Atur fields show data acquired from the ATUR (ADSL Termination Unit - Remote), in this case the subscriber's ADSL modem or router, during negotiation/provisioning message interchanges.
|SNMP agent|zyxel.ies500x.net.adsl.atur.snrmgn[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `0.1`

- 
Discard unchanged with heartbeat: `1h`

|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: ATUR attenuation|
MIB: ADSL-LINE-MIB

Measured difference in the total power transmitted by

the peer ATU and the total power received by this ATU.

The Info Atur fields show data acquired from the ATUR (ADSL Termination Unit - Remote), in this case the subscriber's ADSL modem or router, during negotiation/provisioning message interchanges.
|SNMP agent|zyxel.ies500x.net.adsl.atur.atn[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `0.1`

- 
Discard unchanged with heartbeat: `1h`

|
|Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: ATUR output power|
MIB: ADSL-LINE-MIB

Measured total output power transmitted by this ATU.

The Info Atur fields show data acquired from the ATUR (ADSL Termination Unit - Remote), in this case the subscriber's ADSL modem or router, during negotiation/provisioning message interchanges.
|SNMP agent|zyxel.ies500x.net.adsl.atur.outpwr[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `0.1`

- 
Discard unchanged with heartbeat: `1h`

|

### Trigger prototypes for ADSL interface discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}: 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 IES-500x by SNMP/zyxel.ies500x.net.adsl.operstatus[{#SNMPINDEX}])=2 and last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.net.adsl.operstatus[{#SNMPINDEX}],#1)<>last(/ZYXEL IES-500x by SNMP/zyxel.ies500x.net.adsl.operstatus[{#SNMPINDEX}],#2)`|Average|**Manual close**: Yes|
|ZYXEL: Low the DSL line noise margins in Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}|
Signal-to-noise margin (SNR Margin) which is the difference between the actual SNR and the SNR required to sync at a specific speed
|`min(/ZYXEL IES-500x by SNMP/zyxel.ies500x.net.adsl.atuc.snrmgn[{#SNMPINDEX}],5m)<{$ZYXEL.ADSL.SNR.MIN}`|Warning||
|ZYXEL: High the DSL line attenuation in Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}|
The reductions in amplitude of the downstream and upstream DSL signals.
|`min(/ZYXEL IES-500x by SNMP/zyxel.ies500x.net.adsl.atuc.atn[{#SNMPINDEX}],5m)>{$ZYXEL.ADSL.ATN.MAX}`|Warning||
|ZYXEL: Low the DSL line noise margins in Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}|
Signal-to-noise margin (SNR Margin) which is the difference between the actual SNR and the SNR required to sync at a specific speed
|`min(/ZYXEL IES-500x by SNMP/zyxel.ies500x.net.adsl.atur.snrmgn[{#SNMPINDEX}],5m)<{$ZYXEL.ADSL.SNR.MIN}`|Warning||
|ZYXEL: High the DSL line attenuation in Slot {#ZYXEL.SLOT.ID} Port {#ZYXEL.PORTID}|
The reductions in amplitude of the downstream and upstream DSL signals.
|`min(/ZYXEL IES-500x by SNMP/zyxel.ies500x.net.adsl.atur.atn[{#SNMPINDEX}],5m)>{$ZYXEL.ADSL.ATN.MAX}`|Warning||

## 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)

