
# 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|
|----|-----------|----|-----------------------|
|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.3500_24.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.3500_24.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.3500_24.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.3500_24.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.3500_24.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.3500_24.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.3500_24.hw.uptime
**Preprocessing**

- 
Check for not supported value: `any error`

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

- 
Custom multiplier: `0.01`

|
|ZyNOS F/W Version|
MIB: ZYXEL-MES3500-24-MIB
|SNMP agent|zyxel.3500_24.fwversion
**Preprocessing**

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

- 
Discard unchanged with heartbeat: `1d`

|
|Hardware serial number|
MIB: ZYXEL-MES3500-24-MIB

Serial number
|SNMP agent|zyxel.3500_24.serialnumber
**Preprocessing**

- 
Discard unchanged with heartbeat: `6h`

|
|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: 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: 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: 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: 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: 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: 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**

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

|

### Item prototypes for Temperature discovery

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

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

- 
Discard unchanged with heartbeat: `1h`

|

### Trigger prototypes for Temperature discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: 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**

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

|

### Item prototypes for Voltage discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|Nominal "{#ZYXEL.VOLT.NOMINAL}"|
MIB: ZYXEL-MES3500-24-MIB

The current voltage reading.
|SNMP agent|zyxel.3500_24.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 {#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|
|----|-----------|----|-----------------------|
|Port {#SNMPINDEX}: Speed Duplex|
MIB:  ZYXEL-MES3500-24-MIB

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

- 
Discard unchanged with heartbeat: `6h`

|
|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**

- 
Discard unchanged with heartbeat: `6h`

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

Physical connection type
|SNMP agent|zyxel.3500_24.net.if.link_type[{#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.3500_24.net.if.descr[{#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.3500_24.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.3500_24.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.3500_24.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.3500_24.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.3500_24.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.3500_24.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.3500_24.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.3500_24.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.3500_24.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.3500_24.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.3500_24.net.if.highspeed[{#SNMPINDEX}]
**Preprocessing**

- 
Custom multiplier: `1000000`

- 
Discard unchanged with heartbeat: `6h`

|
|Port {#SNMPINDEX}: Incoming utilization|
Interface utilization percentage
|Calculated|zyxel.3500_24.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.3500_24.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 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 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|
|----|-----------|----|-----------------------|
|SFP {#SNMPINDEX}: Status|
MIB: ZYXEL-MES3500-24-MIB

Transceiver module status.
|SNMP agent|zyxel.3500_24.sfp.status[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `1h`

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

Transceiver module vendor name.
|SNMP agent|zyxel.3500_24.sfp.vendor[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `1h`

|
|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**

- 
Discard unchanged with heartbeat: `1h`

|
|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**

- 
Discard unchanged with heartbeat: `1h`

|
|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**

- 
Discard unchanged with heartbeat: `1h`

|
|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**

- 
Discard unchanged with heartbeat: `1h`

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

Transceiver module type names.
|SNMP agent|zyxel.3500_24.sfp.transceiver[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `1h`

|

### Trigger prototypes for SFP without DDM discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: 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**

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

|

### Item prototypes for SFP with DDM discovery

|Name|Description|Type|Key and additional info|
|----|-----------|----|-----------------------|
|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**

- 
Custom multiplier: `0.01`

- 
Discard unchanged with heartbeat: `6h`

|

### Trigger prototypes for SFP with DDM discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: 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: 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|
|----|-----------|----|-----------------------|
|Memory "{#ZYXEL.MEMORY.NAME}" utilization|
MIB: ZYXEL-MES3500-24-MIB

Utilization of memory pool in %.
|SNMP agent|zyxel.3500_24.memory[{#SNMPINDEX}]
**Preprocessing**

- 
Discard unchanged with heartbeat: `1h`

|

### Trigger prototypes for Memory pool discovery

|Name|Description|Expression|Severity|Dependencies and additional info|
|----|-----------|----------|--------|--------------------------------|
|ZYXEL: 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)

