You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 KiB

Linux by Zabbix agent active

Overview

New official Linux template. Requires agent of Zabbix 7.0 or newer.

Requirements

Zabbix version: 7.0 and higher.

Tested versions

This template has been tested on:

  • Linux OS

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

Install Zabbix agent on Linux OS following Zabbix documentation.

Macros used

Name Description Default
{$AGENT.NODATA_TIMEOUT}

No data timeout for active agents. Consider to keep it relatively high.

30m
{$AGENT.TIMEOUT}

Timeout after which agent is considered unavailable.

5m
{$CPU.UTIL.CRIT} 90
{$LOAD_AVG_PER_CPU.MAX.WARN}

The CPU load per core is considered sustainable. If necessary, it can be tuned.

1.5
{$VFS.FS.FSNAME.NOT_MATCHES}

This macro is used for discovery of the filesystems. It can be overridden on host level or its linked template level.

^(/dev|/sys|/run|/proc|.+/shm$)
{$VFS.FS.FSNAME.MATCHES}

This macro is used for discovery of the filesystems. It can be overridden on host level or its linked template level.

.+
{$VFS.FS.FSTYPE.MATCHES}

This macro is used for discovery of the filesystems. It can be overridden on host level or its linked template level.

Macro too long. Please see the template.
{$VFS.FS.FSTYPE.NOT_MATCHES}

This macro is used for discovery of the filesystems. It can be overridden on host level or its linked template level.

^\s$
{$VFS.FS.FREE.MIN.CRIT}

The critical threshold for utilization of the filesystem.

5G
{$VFS.FS.FREE.MIN.WARN}

The warning threshold for utilization of the filesystem.

10G
{$VFS.FS.INODE.PFREE.MIN.CRIT}

The critical threshold of the filesystem metadata utilization.

10
{$VFS.FS.INODE.PFREE.MIN.WARN}

The warning threshold of the filesystem metadata utilization.

20
{$VFS.FS.PUSED.MAX.CRIT}

The critical threshold of the filesystem utilization.

90
{$VFS.FS.PUSED.MAX.WARN}

The warning threshold of the filesystem utilization.

80
{$MEMORY.UTIL.MAX}

This macro is used as a threshold in the memory utilization trigger.

90
{$MEMORY.AVAILABLE.MIN}

This macro is used as a threshold in the memory available trigger.

20M
{$SWAP.PFREE.MIN.WARN} 50
{$VFS.DEV.READ.AWAIT.WARN}

The average response time (in ms) of disk read before the trigger would fire.

20
{$VFS.DEV.WRITE.AWAIT.WARN}

The average response time (in ms) of disk write before the trigger would fire.

20
{$VFS.DEV.DEVNAME.NOT_MATCHES}

This macro is used for a discovery of block devices. It can be overridden on host level or its linked template level.

Macro too long. Please see the template.
{$VFS.DEV.DEVNAME.MATCHES}

This macro is used for a discovery of block devices. It can be overridden on host level or its linked template level.

.+
{$IF.ERRORS.WARN} 2
{$IFCONTROL} 1
{$NET.IF.IFNAME.MATCHES} ^.*$
{$NET.IF.IFNAME.NOT_MATCHES}

It filters out loopbacks, nulls, docker veth links and docker0 bridge by default.

Macro too long. Please see the template.
{$IF.UTIL.MAX}

This macro is used as a threshold in the interface utilization trigger.

90
{$SYSTEM.FUZZYTIME.MAX} 60
{$KERNEL.MAXPROC.MIN} 1024
{$KERNEL.MAXFILES.MIN} 256

Items

Name Description Type Key and additional info
Linux: Version of Zabbix agent running Zabbix agent (active) agent.version

Preprocessing

  • Discard unchanged with heartbeat: 1d

Linux: Host name of Zabbix agent running Zabbix agent (active) agent.hostname

Preprocessing

  • Discard unchanged with heartbeat: 1d

Linux: Zabbix agent ping

The agent always returns 1 for this item. It could be used in combination with nodata() for availability check.

Zabbix agent (active) agent.ping
Linux: Active agent availability

Availability of active checks on the host. The value of this item corresponds to availability icons in the host list.

Possible value:

0 - unknown

1 - available

2 - not available

Zabbix internal zabbix[host,active_agent,available]
Linux: Number of CPUs Zabbix agent (active) system.cpu.num

Preprocessing

  • Discard unchanged with heartbeat: 1d

Linux: Load average (1m avg) Zabbix agent (active) system.cpu.load[all,avg1]
Linux: Load average (5m avg) Zabbix agent (active) system.cpu.load[all,avg5]
Linux: Load average (15m avg) Zabbix agent (active) system.cpu.load[all,avg15]
Linux: CPU utilization

The CPU utilization expressed in %.

Dependent item system.cpu.util

Preprocessing

  • JavaScript: //Calculate utilization<br>return (100 - value)

Linux: CPU idle time

The time the CPU has spent doing nothing.

Zabbix agent (active) system.cpu.util[,idle]
Linux: CPU system time

The time the CPU has spent running the kernel and its processes.

Zabbix agent (active) system.cpu.util[,system]
Linux: CPU user time

The time the CPU has spent running users' processes that are not niced.

Zabbix agent (active) system.cpu.util[,user]
Linux: CPU nice time

The time the CPU has spent running users' processes that have been niced.

Zabbix agent (active) system.cpu.util[,nice]
Linux: CPU iowait time

The amount of time the CPU has been waiting for I/O to complete.

Zabbix agent (active) system.cpu.util[,iowait]
Linux: CPU steal time

The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine.

Zabbix agent (active) system.cpu.util[,steal]
Linux: CPU interrupt time

The amount of time the CPU has been servicing hardware interrupts.

Zabbix agent (active) system.cpu.util[,interrupt]
Linux: CPU softirq time

The amount of time the CPU has been servicing software interrupts.

Zabbix agent (active) system.cpu.util[,softirq]
Linux: CPU guest time

Guest time - the time spent on running a virtual CPU for a guest operating system.

Zabbix agent (active) system.cpu.util[,guest]
Linux: CPU guest nice time

The time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel).

Zabbix agent (active) system.cpu.util[,guest_nice]
Linux: Context switches per second Zabbix agent (active) system.cpu.switches

Preprocessing

  • Change per second
Linux: Interrupts per second Zabbix agent (active) system.cpu.intr

Preprocessing

  • Change per second
Linux: Get filesystems

The vfs.fs.get key acquires raw information set about the file systems. Later to be extracted by preprocessing in dependent items.

Zabbix agent (active) vfs.fs.get
Linux: Memory utilization

The percentage of used memory is calculated as 100-pavailable.

Dependent item vm.memory.utilization

Preprocessing

  • JavaScript: return (100-value);

Linux: Available memory in %

The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the vm.memory.size item.

Zabbix agent (active) vm.memory.size[pavailable]
Linux: Total memory

The total memory expressed in bytes.

Zabbix agent (active) vm.memory.size[total]
Linux: Available memory

The available memory:

- in Linux - available = free + buffers + cache;

- on other platforms calculation may vary.

See also Appendixes in Zabbix Documentation about parameters of the vm.memory.size item.

Zabbix agent (active) vm.memory.size[available]
Linux: Total swap space

The total space of the swap volume/file expressed in bytes.

Zabbix agent (active) system.swap.size[,total]
Linux: Free swap space

The free space of the swap volume/file expressed in bytes.

Zabbix agent (active) system.swap.size[,free]
Linux: Free swap space in %

The free space of the swap volume/file expressed in %.

Zabbix agent (active) system.swap.size[,pfree]
Linux: System uptime

The system uptime expressed in the following format: "N days, hh:mm:ss".

Zabbix agent (active) system.uptime
Linux: System boot time Zabbix agent (active) system.boottime

Preprocessing

  • Discard unchanged with heartbeat: 1h

Linux: System local time

The local system time of the host.

Zabbix agent (active) system.localtime
Linux: System name

The host name of the system.

Zabbix agent (active) system.hostname

Preprocessing

  • Discard unchanged with heartbeat: 12h

Linux: System description

The information as normally returned by uname -a.

Zabbix agent (active) system.uname

Preprocessing

  • Discard unchanged with heartbeat: 12h

Linux: Number of logged in users

The number of users who are currently logged in.

Zabbix agent (active) system.users.num
Linux: Maximum number of open file descriptors

It could be increased by using sysctl utility or modifying the file /etc/sysctl.conf.

Zabbix agent (active) kernel.maxfiles

Preprocessing

  • Discard unchanged with heartbeat: 1d

Linux: Maximum number of processes

It could be increased by using sysctl utility or modifying the file /etc/sysctl.conf.

Zabbix agent (active) kernel.maxproc

Preprocessing

  • Discard unchanged with heartbeat: 1d

Linux: Number of processes Zabbix agent (active) proc.num
Linux: Number of running processes Zabbix agent (active) proc.num[,,run]
Linux: Checksum of /etc/passwd Zabbix agent (active) vfs.file.cksum[/etc/passwd,sha256]

Preprocessing

  • Discard unchanged with heartbeat: 1h

Linux: Operating system Zabbix agent (active) system.sw.os

Preprocessing

  • Discard unchanged with heartbeat: 1d

Linux: Operating system architecture

The architecture of the operating system.

Zabbix agent (active) system.sw.arch

Preprocessing

  • Discard unchanged with heartbeat: 1d

Linux: Number of installed packages Zabbix agent (active) system.sw.packages.get

Preprocessing

  • JSON Path: $.length()

  • Discard unchanged with heartbeat: 12h

Triggers

Name Description Expression Severity Dependencies and additional info
Linux: Zabbix agent is not available

For active agents, nodata() with agent.ping is used with {$AGENT.NODATA_TIMEOUT} as time threshold.

nodata(/Linux by Zabbix agent active/agent.ping,{$AGENT.NODATA_TIMEOUT})=1 Average Manual close: Yes
Linux: Active checks are not available

Active checks are considered unavailable. Agent is not sending heartbeat for prolonged time.

min(/Linux by Zabbix agent active/zabbix[host,active_agent,available],{$AGENT.TIMEOUT})=2 High
Linux: Load average is too high

The load average per CPU is too high. The system may be slow to respond.

min(/Linux by Zabbix agent active/system.cpu.load[all,avg1],5m)/last(/Linux by Zabbix agent active/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by Zabbix agent active/system.cpu.load[all,avg5])>0 and last(/Linux by Zabbix agent active/system.cpu.load[all,avg15])>0 Average
Linux: High CPU utilization

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

min(/Linux by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT} Warning Depends on:
  • Linux: Load average is too high
Linux: High memory utilization

The system is running out of free memory.

min(/Linux by Zabbix agent active/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX} Average Depends on:
  • Linux: Lack of available memory
Linux: Lack of available memory max(/Linux by Zabbix agent active/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Zabbix agent active/vm.memory.size[total])>0 Average
Linux: High swap space usage

If there is no swap configured, this trigger is ignored.

max(/Linux by Zabbix agent active/system.swap.size[,pfree],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Zabbix agent active/system.swap.size[,total])>0 Warning Depends on:
  • Linux: Lack of available memory
  • Linux: High memory utilization
Linux: {HOST.NAME} has been restarted

The host uptime is less than 10 minutes.

last(/Linux by Zabbix agent active/system.uptime)<10m Warning Manual close: Yes
Linux: System time is out of sync

The host's system time is different from Zabbix server time.

fuzzytime(/Linux by Zabbix agent active/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0 Warning Manual close: Yes
Linux: System name has changed

The name of the system has changed. Acknowledge to close the problem manually.

change(/Linux by Zabbix agent active/system.hostname) and length(last(/Linux by Zabbix agent active/system.hostname))>0 Info Manual close: Yes
Linux: Configured max number of open filedescriptors is too low last(/Linux by Zabbix agent active/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} Info
Linux: Configured max number of processes is too low last(/Linux by Zabbix agent active/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} Info Depends on:
  • Linux: Getting closer to process limit
Linux: Getting closer to process limit last(/Linux by Zabbix agent active/proc.num)/last(/Linux by Zabbix agent active/kernel.maxproc)*100>80 Warning
Linux: /etc/passwd has been changed last(/Linux by Zabbix agent active/vfs.file.cksum[/etc/passwd,sha256],#1)<>last(/Linux by Zabbix agent active/vfs.file.cksum[/etc/passwd,sha256],#2) Info Manual close: Yes
Depends on:
  • Linux: System name has changed
  • Linux: Operating system description has changed
Linux: Operating system description has changed

The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually.

change(/Linux by Zabbix agent active/system.sw.os) and length(last(/Linux by Zabbix agent active/system.sw.os))>0 Info Manual close: Yes
Depends on:
  • Linux: System name has changed
Linux: Number of installed packages has been changed change(/Linux by Zabbix agent active/system.sw.packages.get)<>0 Warning Manual close: Yes

LLD rule Mounted filesystem discovery

Name Description Type Key and additional info
Mounted filesystem discovery

The discovery of mounted filesystems with different types.

Dependent item vfs.fs.dependent.discovery

Item prototypes for Mounted filesystem discovery

Name Description Type Key and additional info
{#FSNAME}: Get filesystem data Dependent item vfs.fs.dependent[{#FSNAME},data]

Preprocessing

  • JSON Path: $.[?(@.fsname=='{#FSNAME}')].first()

{#FSNAME}: Filesystem is read-only

The filesystem is mounted as read-only. It is available only for Zabbix agents 6.4 and higher.

Dependent item vfs.fs.dependent[{#FSNAME},readonly]

Preprocessing

  • JSON Path: $.options

    Custom on fail: Discard value

  • Regular expression: `(?:^

{#FSNAME}: Used space

Used storage expressed in bytes.

Dependent item vfs.fs.dependent.size[{#FSNAME},used]

Preprocessing

  • JSON Path: $.bytes.used

{#FSNAME}: Total space

The total space expressed in bytes.

Dependent item vfs.fs.dependent.size[{#FSNAME},total]

Preprocessing

  • JSON Path: $.bytes.total

{#FSNAME}: Space utilization

Space utilization expressed in % for {#FSNAME}.

Dependent item vfs.fs.dependent.size[{#FSNAME},pused]

Preprocessing

  • JSON Path: $.bytes.pused

{#FSNAME}: Free inodes in % Dependent item vfs.fs.dependent.inode[{#FSNAME},pfree]

Preprocessing

  • JSON Path: $.inodes.pfree

Trigger prototypes for Mounted filesystem discovery

Name Description Expression Severity Dependencies and additional info
{#FSNAME}: Filesystem has become read-only

The filesystem has become read-only. A possible reason is an I/O error. It is available only for Zabbix agents 6.4 and higher.

last(/Linux by Zabbix agent active/vfs.fs.dependent[{#FSNAME},readonly],#2)=0 and last(/Linux by Zabbix agent active/vfs.fs.dependent[{#FSNAME},readonly])=1 Average Manual close: Yes
{#FSNAME}: Disk space is critically low

Two conditions should match:
1. The first condition - utilization of the space should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}.
2. The second condition should be one of the following:
- the disk free space is less than {$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"};
- the disk will be full in less than 24 hours.

last(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},total])-last(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],1h,100)<1d) Average Manual close: Yes
{#FSNAME}: Disk space is low

Two conditions should match:
1. The first condition - utilization of the space should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}.
2. The second condition should be one of the following:
- the disk free space is less than {$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"};
- the disk will be full in less than 24 hours.

last(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},total])-last(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],1h,100)<1d) Warning Manual close: Yes
Depends on:
  • {#FSNAME}: Disk space is critically low
{#FSNAME}: Running out of free inodes

It may become impossible to write to a disk if there are no index nodes left.
The following error messages may be returned as symptoms, even though the free space is available:
- 'No space left on device';
- 'Disk is full'.

min(/Linux by Zabbix agent active/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} Average
{#FSNAME}: Running out of free inodes

It may become impossible to write to a disk if there are no index nodes left.
The following error messages may be returned as symptoms, even though the free space is available:
- 'No space left on device';
- 'Disk is full'.

min(/Linux by Zabbix agent active/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} Warning Depends on:
  • {#FSNAME}: Running out of free inodes

LLD rule Block devices discovery

Name Description Type Key and additional info
Block devices discovery Zabbix agent (active) vfs.dev.discovery

Preprocessing

  • Discard unchanged with heartbeat: 1h

Item prototypes for Block devices discovery

Name Description Type Key and additional info
{#DEVNAME}: Get stats

The contents of get /sys/block/{#DEVNAME}/stat to get the disk statistics.

Zabbix agent (active) vfs.file.contents[/sys/block/{#DEVNAME}/stat]

Preprocessing

  • JavaScript: return JSON.stringify(value.trim().split(/ +/));

{#DEVNAME}: Disk read rate

r/s (read operations per second) - the number (after merges) of read requests completed per second for the device.

Dependent item vfs.dev.read.rate[{#DEVNAME}]

Preprocessing

  • JSON Path: $[0]

  • Change per second
{#DEVNAME}: Disk write rate

w/s (write operations per second) - the number (after merges) of write requests completed per second for the device.

Dependent item vfs.dev.write.rate[{#DEVNAME}]

Preprocessing

  • JSON Path: $[4]

  • Change per second
{#DEVNAME}: Disk read time (rate)

The rate of total read time counter; used in r_await calculation.

Dependent item vfs.dev.read.time.rate[{#DEVNAME}]

Preprocessing

  • JSON Path: $[3]

  • Change per second
  • Custom multiplier: 0.001

{#DEVNAME}: Disk write time (rate)

The rate of total write time counter; used in w_await calculation.

Dependent item vfs.dev.write.time.rate[{#DEVNAME}]

Preprocessing

  • JSON Path: $[7]

  • Change per second
  • Custom multiplier: 0.001

{#DEVNAME}: Disk read request avg waiting time (r_await)

This formula contains two Boolean expressions that evaluate to 1 or 0 in order to set the calculated metric to zero and to avoid the exception - division by zero.

Calculated vfs.dev.read.await[{#DEVNAME}]
{#DEVNAME}: Disk write request avg waiting time (w_await)

This formula contains two Boolean expressions that evaluate to 1 or 0 in order to set the calculated metric to zero and to avoid the exception - division by zero.

Calculated vfs.dev.write.await[{#DEVNAME}]
{#DEVNAME}: Disk average queue size (avgqu-sz)

The current average disk queue; the number of requests outstanding on the disk while the performance data is being collected.

Dependent item vfs.dev.queue_size[{#DEVNAME}]

Preprocessing

  • JSON Path: $[10]

  • Change per second
  • Custom multiplier: 0.001

{#DEVNAME}: Disk utilization

This item is the percentage of elapsed time during which the selected disk drive was busy while servicing read or write requests.

Dependent item vfs.dev.util[{#DEVNAME}]

Preprocessing

  • JSON Path: $[9]

  • Change per second
  • Custom multiplier: 0.1

Trigger prototypes for Block devices discovery

Name Description Expression Severity Dependencies and additional info
{#DEVNAME}: Disk read/write request responses are too high

This trigger might indicate the disk {#DEVNAME} saturation.

min(/Linux by Zabbix agent active/vfs.dev.read.await[{#DEVNAME}],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux by Zabbix agent active/vfs.dev.write.await[{#DEVNAME}],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} Warning Manual close: Yes

LLD rule Network interface discovery

Name Description Type Key and additional info
Network interface discovery

The discovery of network interfaces.

Zabbix agent (active) net.if.discovery

Item prototypes for Network interface discovery

Name Description Type Key and additional info
Interface {#IFNAME}: Bits received Zabbix agent (active) net.if.in["{#IFNAME}"]

Preprocessing

  • Change per second
  • Custom multiplier: 8

Interface {#IFNAME}: Bits sent Zabbix agent (active) net.if.out["{#IFNAME}"]

Preprocessing

  • Change per second
  • Custom multiplier: 8

Interface {#IFNAME}: Outbound packets with errors Zabbix agent (active) net.if.out["{#IFNAME}",errors]

Preprocessing

  • Change per second
Interface {#IFNAME}: Inbound packets with errors Zabbix agent (active) net.if.in["{#IFNAME}",errors]

Preprocessing

  • Change per second
Interface {#IFNAME}: Outbound packets discarded Zabbix agent (active) net.if.out["{#IFNAME}",dropped]

Preprocessing

  • Change per second
Interface {#IFNAME}: Inbound packets discarded Zabbix agent (active) net.if.in["{#IFNAME}",dropped]

Preprocessing

  • Change per second
Interface {#IFNAME}: Operational status

Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt

Zabbix agent (active) vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"]

Preprocessing

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

Interface {#IFNAME}: Interface type

It indicates the interface protocol type as a decimal value.

See include/uapi/linux/if_arp.h for all possible values.

Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net

Zabbix agent (active) vfs.file.contents["/sys/class/net/{#IFNAME}/type"]

Preprocessing

  • Discard unchanged with heartbeat: 1d

Interface {#IFNAME}: Speed

It indicates the latest or current speed value of the interface. The value is an integer representing the link speed expressed in bits/sec.

This attribute is only valid for the interfaces that implement the ethtool get_link_ksettings method (mostly Ethernet).

Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net

Zabbix agent (active) vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]

Preprocessing

  • Custom multiplier: 1000000

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for Network interface discovery

Name Description Expression Severity Dependencies and additional info
Interface {#IFNAME}: High bandwidth usage

The utilization of the network interface is close to its estimated maximum bandwidth.

(avg(/Linux by Zabbix agent active/net.if.in["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) or avg(/Linux by Zabbix agent active/net.if.out["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])) and last(/Linux by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 Warning Manual close: Yes
Depends on:
  • Interface {#IFNAME}: Link down
Interface {#IFNAME}: High error rate

It recovers when it is below 80% of the {$IF.ERRORS.WARN:"{#IFNAME}"} threshold.

min(/Linux by Zabbix agent active/net.if.in["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by Zabbix agent active/net.if.out["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} Warning Manual close: Yes
Depends on:
  • Interface {#IFNAME}: Link down
Interface {#IFNAME}: 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.

{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2)) Average Manual close: Yes
Interface {#IFNAME}: Ethernet has changed to lower speed than it was before

This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually.

change(/Linux by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])<0 and last(/Linux by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 and (last(/Linux by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=6 or last(/Linux by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=1) and (last(/Linux by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2) Info Manual close: Yes
Depends on:
  • Interface {#IFNAME}: Link down

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 at ZABBIX forums