Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/net/zyxel_snmp/zyxel_gs4012f_snmp

ZYXEL GS-4012F SNMP

Overview

For Zabbix version: 6.4 and higher
https://service-provider.zyxel.com/global/en/products/carrier-and-access-switches/access-switches/mgs-3712f

This template was tested on:

  • ZYXEL GS-4012F, version V3.90(BBB.5)_2019.9.23

Setup

See Zabbix template operation for basic instructions.

Refer to the vendor documentation.

Zabbix configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$CPU.UTIL.CRIT}

-

90
{$SNMP.TIMEOUT}

The time interval for SNMP agent availability trigger expression.

5m
{$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}

Triggers will be created only for interfaces whose description contains the value of this macro

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

Template links

There are no template links in this template.

Discovery rules

Name Description Type Key and additional info
Fan discovery

An entry in fanRpmTable.

SNMP zyxel.4012f.fan.discovery
Interface discovery

-

SNMP zyxel.4012f.net.if.discovery

Filter:

AND

- {#ZYXEL.IF.NAME} MATCHES_REGEX {$ZYXEL.LLD.FILTER.IF.NAME.MATCHES}

- {#ZYXEL.IF.NAME} NOT_MATCHES_REGEX {$ZYXEL.LLD.FILTER.IF.NAME.NOT_MATCHES}

- {#ZYXEL.IF.LINKUPTYPE} MATCHES_REGEX {$ZYXEL.LLD.FILTER.IF.LINKUPTYPE.MATCHES}

- {#ZYXEL.IF.LINKUPTYPE} NOT_MATCHES_REGEX {$ZYXEL.LLD.FILTER.IF.LINKUPTYPE.NOT_MATCHES}

Overrides:

Don't create triggers for matching interface
- {#ZYXEL.IF.NAME} NOT_MATCHES_REGEX {$ZYXEL.LLD.FILTER.IF.CONTROL.MATCHES}
- TRIGGER_PROTOTYPE REGEXP .* - NO_DISCOVER

Temperature discovery

An entry in tempTable.

Index of temperature unit. 1:MAC, 2:CPU, 3:PHY

SNMP zyxel.4012f.temp.discovery

Preprocessing:

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

Voltage discovery

An entry in voltageTable.

SNMP zyxel.4012f.volt.discovery

Preprocessing:

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

Items collected

Group Name Description Type Key and additional info
CPU ZYXEL GS-4012F: CPU utilization

MIB: ZYXEL-GS4012F-MIB

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

getting the values.

SNMP zyxel.4012f.cpuusage
Fans ZYXEL GS-4012F: Fan #{#SNMPINDEX}

MIB: ZYXEL-GS4012F-MIB

Current speed in Revolutions Per Minute (RPM) on the fan.

SNMP zyxel.4012f.fan[{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Inventory ZYXEL GS-4012F: 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 zyxel.4012f.model

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Inventory ZYXEL GS-4012F: 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 zyxel.4012f.contact

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Inventory ZYXEL GS-4012F: 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 zyxel.4012f.name

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Inventory ZYXEL GS-4012F: Location

MIB: RFC1213-MIB

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

telephone closet, 3rd floor').</p> |SNMP |zyxel.4012f.location<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT:6h`

Inventory ZYXEL GS-4012F: MAC address

MIB: IF-MIB

The interface's address at the protocol layer

immediately below' the network layer in the</p><p>protocol stack. For interfaces which do not have</p><p>such an address (e.g., a serial line), this object</p><p>should contain an octet string of zero length.</p> |SNMP |zyxel.4012f.mac<p>**Preprocessing**:</p><p>- DISCARD_UNCHANGED_HEARTBEAT:6h`

Inventory ZYXEL GS-4012F: ZyNOS F/W Version

MIB: ZYXEL-GS4012F-MIB

SNMP zyxel.4012f.fwversion

Preprocessing:

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

- DISCARD_UNCHANGED_HEARTBEAT: 1d

Inventory ZYXEL GS-4012F: Hardware serial number

MIB: ZYXEL-GS4012F-MIB

Serial number

SNMP zyxel.4012f.serialnumber

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Network interfaces ZYXEL GS-4012F: Port {#SNMPINDEX}: Speed Duplex

MIB: ZYXEL-GS4012F-MIB

Transmission mode

SNMP zyxel.4012f.net.if.speed_duplex[{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Network interfaces ZYXEL GS-4012F: Port {#SNMPINDEX}: Interface description

MIB: ZYXEL-GS4012F-MIB

A textual string containing information about the interface

SNMP zyxel.4012f.net.if.name[{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Network interfaces ZYXEL GS-4012F: Port {#SNMPINDEX}: Link type

MIB: ZYXEL-GS4012F-MIB

Physical connection type

SNMP zyxel.4012f.net.if.link_type[{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Network interfaces ZYXEL GS-4012F: Port {#SNMPINDEX}: Interface name

MIB: IF-MIB

A textual string containing information about the interface

SNMP zyxel.4012f.net.if.descr[{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Network interfaces ZYXEL GS-4012F: 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 zyxel.4012f.net.if.operstatus[{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Network interfaces ZYXEL GS-4012F: 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 zyxel.4012f.net.if.adminstatus[{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Network interfaces ZYXEL GS-4012F: Port {#SNMPINDEX}: Incoming traffic

MIB: IF-MIB

The total number of octets received on the interface,

including framing characters.

SNMP zyxel.4012f.net.if.in.traffic[{#SNMPINDEX}]

Preprocessing:

- MULTIPLIER: 8

- CHANGE_PER_SECOND

Network interfaces ZYXEL GS-4012F: 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 zyxel.4012f.net.if.in.ucastpkts[{#SNMPINDEX}]

Preprocessing:

- CHANGE_PER_SECOND

Network interfaces ZYXEL GS-4012F: 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 zyxel.4012f.net.if.in.multicastpkts[{#SNMPINDEX}]

Preprocessing:

- CHANGE_PER_SECOND

Network interfaces ZYXEL GS-4012F: 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 zyxel.4012f.net.if.in.broadcastpkts[{#SNMPINDEX}]

Preprocessing:

- CHANGE_PER_SECOND

Network interfaces ZYXEL GS-4012F: 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 zyxel.4012f.net.if.out.traffic[{#SNMPINDEX}]

Preprocessing:

- MULTIPLIER: 8

- CHANGE_PER_SECOND

Network interfaces ZYXEL GS-4012F: 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 zyxel.4012f.net.if.out.ucastpkts[{#SNMPINDEX}]

Preprocessing:

- CHANGE_PER_SECOND

Network interfaces ZYXEL GS-4012F: 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 zyxel.4012f.net.if.out.multicastpkts[{#SNMPINDEX}]

Preprocessing:

- CHANGE_PER_SECOND

Network interfaces ZYXEL GS-4012F: 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 zyxel.4012f.net.if.out.broadcastpkts[{#SNMPINDEX}]

Preprocessing:

- CHANGE_PER_SECOND

Network interfaces ZYXEL GS-4012F: Port {#SNMPINDEX}: Link speed

MIB: IF-MIB

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

SNMP zyxel.4012f.net.if.highspeed[{#SNMPINDEX}]

Preprocessing:

- MULTIPLIER: 1000000

- DISCARD_UNCHANGED_HEARTBEAT: 6h

Network interfaces ZYXEL GS-4012F: Port {#SNMPINDEX}: Incoming utilization

Interface utilization percentage

CALCULATED zyxel.4012f.net.if.in.util[{#SNMPINDEX}]

Preprocessing:

- IN_RANGE: 0 100

⛔️ON_FAIL: DISCARD_VALUE ->

- JAVASCRIPT: return +parseFloat(value).toFixed(0);

Expression:

last(//zyxel.4012f.net.if.in.traffic[{#SNMPINDEX}]) * (last(//zyxel.4012f.net.if.highspeed[{#SNMPINDEX}]) <> 0) / ( last(//zyxel.4012f.net.if.highspeed[{#SNMPINDEX}]) + (last(//zyxel.4012f.net.if.highspeed[{#SNMPINDEX}]) = 0) ) * 100
Network interfaces ZYXEL GS-4012F: Port {#SNMPINDEX}: Outgoing utilization

Interface utilization percentage

CALCULATED zyxel.4012f.net.if.out.util[{#SNMPINDEX}]

Preprocessing:

- IN_RANGE: 0 100

⛔️ON_FAIL: DISCARD_VALUE ->

- JAVASCRIPT: return +parseFloat(value).toFixed(0);

Expression:

last(//zyxel.4012f.net.if.out.traffic[{#SNMPINDEX}]) * (last(//zyxel.4012f.net.if.highspeed[{#SNMPINDEX}]) <> 0) / ( last(//zyxel.4012f.net.if.highspeed[{#SNMPINDEX}]) + (last(//zyxel.4012f.net.if.highspeed[{#SNMPINDEX}]) = 0) ) * 100
Power supply ZYXEL GS-4012F: Nominal "{#ZYXEL.VOLT.NOMINAL}"

MIB: ZYXEL-GS4012F-MIB

The current voltage reading.

SNMP zyxel.4012f.volt[{#SNMPINDEX}]

Preprocessing:

- MULTIPLIER: 0.001

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Status ZYXEL GS-4012F: SNMP agent availability

-

INTERNAL zabbix[host,snmp,available]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Status ZYXEL GS-4012F: 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 zyxel.4012f.net.uptime

Preprocessing:

- MULTIPLIER: 0.01

Status ZYXEL GS-4012F: 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 zyxel.4012f.hw.uptime

Preprocessing:

- CHECK_NOT_SUPPORTED

⛔️ON_FAIL: CUSTOM_VALUE -> 0

- MULTIPLIER: 0.01

Temperature ZYXEL GS-4012F: Temperature "{#ZYXEL.TEMP.ID}"

MIB: ZYXEL-GS4012F-MIB

The current temperature measured at this sensor

SNMP zyxel.4012f.temp[{#SNMPINDEX}]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Triggers

Name Description Expression Severity Dependencies and additional info
ZYXEL GS-4012F: High CPU utilization

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

min(/ZYXEL GS-4012F SNMP/zyxel.4012f.cpuusage,5m)>{$CPU.UTIL.CRIT} WARNING
ZYXEL GS-4012F: FAN{#SNMPINDEX} is in critical state

Please check the fan unit

last(/ZYXEL GS-4012F SNMP/zyxel.4012f.fan[{#SNMPINDEX}])<{#ZYXEL.FANRPM.THRESH.LOW} AVERAGE
ZYXEL GS-4012F: Template does not match hardware

This template is for Zyxel GS-4012F, but connected to {ITEM.VALUE}

last(/ZYXEL GS-4012F SNMP/zyxel.4012f.model)<>"GS-4012F" INFO
ZYXEL GS-4012F: Firmware has changed

Firmware version has changed. Ack to close

last(/ZYXEL GS-4012F SNMP/zyxel.4012f.fwversion,#1)<>last(/ZYXEL GS-4012F SNMP/zyxel.4012f.fwversion,#2) and length(last(/ZYXEL GS-4012F SNMP/zyxel.4012f.fwversion))>0 INFO

Manual close: YES

ZYXEL GS-4012F: Device has been replaced

Device serial number has changed. Ack to close

last(/ZYXEL GS-4012F SNMP/zyxel.4012f.serialnumber,#1)<>last(/ZYXEL GS-4012F SNMP/zyxel.4012f.serialnumber,#2) and length(last(/ZYXEL GS-4012F SNMP/zyxel.4012f.serialnumber))>0 INFO

Manual close: YES

ZYXEL GS-4012F: Port {#SNMPINDEX}: Link down

This trigger expression works as follows:

1. Can be triggered if operations status is down.

2. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status was up(1) sometime before. (So, do not fire 'ethernal off' interfaces.)

WARNING: if closed manually - won't fire again on next poll, because of .diff.

last(/ZYXEL GS-4012F SNMP/zyxel.4012f.net.if.operstatus[{#SNMPINDEX}])=2 and last(/ZYXEL GS-4012F SNMP/zyxel.4012f.net.if.operstatus[{#SNMPINDEX}],#1)<>last(/ZYXEL GS-4012F SNMP/zyxel.4012f.net.if.operstatus[{#SNMPINDEX}],#2)

Recovery expression:

last(/ZYXEL GS-4012F SNMP/zyxel.4012f.net.if.operstatus[{#SNMPINDEX}])<>2
AVERAGE

Manual close: YES

ZYXEL GS-4012F: Voltage {#ZYXEL.VOLT.NOMINAL} is in critical state

Please check the power supply

last(/ZYXEL GS-4012F SNMP/zyxel.4012f.volt[{#SNMPINDEX}])<{#ZYXEL.VOLT.THRESH.LOW} AVERAGE
ZYXEL GS-4012F: No SNMP data collection

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

max(/ZYXEL GS-4012F SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 WARNING
ZYXEL GS-4012F: Host has been restarted

Uptime is less than 10 minutes.

(last(/ZYXEL GS-4012F SNMP/zyxel.4012f.hw.uptime)>0 and last(/ZYXEL GS-4012F SNMP/zyxel.4012f.hw.uptime)<10m) or (last(/ZYXEL GS-4012F SNMP/zyxel.4012f.hw.uptime)=0 and last(/ZYXEL GS-4012F SNMP/zyxel.4012f.net.uptime)<10m) INFO

Manual close: YES

ZYXEL GS-4012F: Temperature {#ZYXEL.TEMP.ID} is in critical state

Please check the temperature

last(/ZYXEL GS-4012F SNMP/zyxel.4012f.temp[{#SNMPINDEX}])>{#ZYXEL.TEMP.THRESH.HIGH} AVERAGE

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template or ask for help with it at ZABBIX forums.

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 GS-4012F

Articles and documentation

+ Propose new article

Nenašli jste integraci, kterou potřebujete?