Linux

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged in a Linux distribution.

Available solutions




This template is for Zabbix version: 6.4
Also available for: 6.2 6.0 5.4 5.0

Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux?at=release/6.4

Linux by Zabbix agent

Overview

New official Linux template. Requires agent of Zabbix 3.0.14, 3.4.5 and 4.0.0 or newer.

Requirements

For Zabbix version: 6.4 and higher.

Setup

Install Zabbix agent on Linux OS following Zabbix documentation.

Configuration

No specific Zabbix configuration is required.

Macros used

Name Description Default
{$AGENT.TIMEOUT}

Timeout after which agent is considered unavailable. Works only for agents reachable from Zabbix server/proxy (passive mode).

3m
{$CPU.UTIL.CRIT}

-

90
{$IF.ERRORS.WARN}

-

2
{$IF.UTIL.MAX}

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

90
{$IFCONTROL}

-

1
{$KERNEL.MAXFILES.MIN}

-

256
{$KERNEL.MAXPROC.MIN}

-

1024
{$LOAD_AVG_PER_CPU.MAX.WARN}

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

1.5
{$MEMORY.AVAILABLE.MIN}

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

20M
{$MEMORY.UTIL.MAX}

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

90
{$NET.IF.IFNAME.MATCHES}

-

^.*$
{$NET.IF.IFNAME.NOT_MATCHES}

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

(^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9A-z]+$|docker[0-9]+|br-[a-z0-9]{12})
{$SWAP.PFREE.MIN.WARN}

-

50
{$SYSTEM.FUZZYTIME.MAX}

-

60
{$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.

.+
{$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.

^(loop[0-9]*|sd[a-z][0-9]+|nbd[0-9]+|sr[0-9]+|fd[0-9]+|dm-[0-9]+|ram[0-9]+|ploop[a-z0-9]+|md[0-9]*|hcp[0-9]*|zram[0-9]*)
{$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.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.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.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.FSTYPE.MATCHES}

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

^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$
{$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.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

Template links

There are no template links in this template.

Discovery rules

Name Description Type Key and additional info
Block devices discovery

-

ZABBIX_PASSIVE vfs.dev.discovery

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Filter:

AND

- {#DEVTYPE} MATCHES_REGEX disk

- {#DEVNAME} MATCHES_REGEX {$VFS.DEV.DEVNAME.MATCHES}

- {#DEVNAME} NOT_MATCHES_REGEX {$VFS.DEV.DEVNAME.NOT_MATCHES}

Mounted filesystem discovery

The discovery of mounted filesystems with different types.

DEPENDENT vfs.fs.dependent.discovery

Filter:

AND

- {#FSTYPE} MATCHES_REGEX {$VFS.FS.FSTYPE.MATCHES}

- {#FSTYPE} NOT_MATCHES_REGEX {$VFS.FS.FSTYPE.NOT_MATCHES}

- {#FSNAME} MATCHES_REGEX {$VFS.FS.FSNAME.MATCHES}

- {#FSNAME} NOT_MATCHES_REGEX {$VFS.FS.FSNAME.NOT_MATCHES}

Overrides:

Skip metadata collection for dynamic FS
- {#FSTYPE} MATCHES_REGEX ^(btrfs|zfs)$
- ITEM_PROTOTYPE LIKE inode
- NO_DISCOVER

Network interface discovery

The discovery of network interfaces.

ZABBIX_PASSIVE net.if.discovery

Filter:

AND

- {#IFNAME} MATCHES_REGEX {$NET.IF.IFNAME.MATCHES}

- {#IFNAME} NOT_MATCHES_REGEX {$NET.IF.IFNAME.NOT_MATCHES}

Items collected

Group Name Description Type Key and additional info
CPU Number of CPUs

-

ZABBIX_PASSIVE system.cpu.num

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1d

CPU Load average (1m avg)

-

ZABBIX_PASSIVE system.cpu.load[all,avg1]
CPU Load average (5m avg)

-

ZABBIX_PASSIVE system.cpu.load[all,avg5]
CPU Load average (15m avg)

-

ZABBIX_PASSIVE system.cpu.load[all,avg15]
CPU CPU utilization

The CPU utilization expressed in %.

DEPENDENT system.cpu.util

Preprocessing:

- JAVASCRIPT: //Calculate utilization return (100 - value)

CPU CPU idle time

The time the CPU has spent doing nothing.

ZABBIX_PASSIVE system.cpu.util[,idle]
CPU CPU system time

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

ZABBIX_PASSIVE system.cpu.util[,system]
CPU CPU user time

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

ZABBIX_PASSIVE system.cpu.util[,user]
CPU CPU nice time

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

ZABBIX_PASSIVE system.cpu.util[,nice]
CPU CPU iowait time

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

ZABBIX_PASSIVE system.cpu.util[,iowait]
CPU 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_PASSIVE system.cpu.util[,steal]
CPU CPU interrupt time

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

ZABBIX_PASSIVE system.cpu.util[,interrupt]
CPU CPU softirq time

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

ZABBIX_PASSIVE system.cpu.util[,softirq]
CPU CPU guest time

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

ZABBIX_PASSIVE system.cpu.util[,guest]
CPU 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_PASSIVE system.cpu.util[,guest_nice]
CPU Context switches per second

-

ZABBIX_PASSIVE system.cpu.switches

Preprocessing:

- CHANGE_PER_SECOND

CPU Interrupts per second

-

ZABBIX_PASSIVE system.cpu.intr

Preprocessing:

- CHANGE_PER_SECOND

Filesystems {#FSNAME}: Filesystem is read-only

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

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

Preprocessing:

- JSONPATH: $.options

⛔️ON_FAIL: DISCARD_VALUE ->

- REGEX: (?:^|,)ro\b 1

⛔️ON_FAIL: CUSTOM_VALUE -> 0

Filesystems {#FSNAME}: Used space

Used storage expressed in Bytes.

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

Preprocessing:

- JSONPATH: $.bytes.used

Filesystems {#FSNAME}: Total space

The total space expressed in Bytes.

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

Preprocessing:

- JSONPATH: $.bytes.total

Filesystems {#FSNAME}: Space utilization

Space utilization expressed in % for {#FSNAME}.

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

Preprocessing:

- JSONPATH: $.bytes.pused

Filesystems {#FSNAME}: Free inodes in %

-

DEPENDENT vfs.fs.dependent.inode[{#FSNAME},pfree]

Preprocessing:

- JSONPATH: $.inodes.pfree

General System boot time

-

ZABBIX_PASSIVE system.boottime

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

General System local time

The local system time of the host.

ZABBIX_PASSIVE system.localtime
General System name

The host name of the system.

ZABBIX_PASSIVE system.hostname

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 12h

General System description

The information as normally returned by uname -a.

ZABBIX_PASSIVE system.uname

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 12h

General Number of logged in users

The number of users who are currently logged in.

ZABBIX_PASSIVE system.users.num
General Maximum number of open file descriptors

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

ZABBIX_PASSIVE kernel.maxfiles

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1d

General Maximum number of processes

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

ZABBIX_PASSIVE kernel.maxproc

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1d

General Number of processes

-

ZABBIX_PASSIVE proc.num
General Number of running processes

-

ZABBIX_PASSIVE proc.num[,,run]
Inventory Operating system

-

ZABBIX_PASSIVE system.sw.os

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1d

Inventory Operating system architecture

The architecture of the operating system.

ZABBIX_PASSIVE system.sw.arch

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1d

Inventory Number of installed packages

-

ZABBIX_PASSIVE system.sw.packages.get

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 12h

- JSONPATH: $.length()

Memory Memory utilization

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

DEPENDENT vm.memory.utilization

Preprocessing:

- JAVASCRIPT: return (100-value);

Memory 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_PASSIVE vm.memory.size[pavailable]
Memory Total memory

The total memory expressed in Bytes.

ZABBIX_PASSIVE vm.memory.size[total]
Memory 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_PASSIVE vm.memory.size[available]
Memory Total swap space

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

ZABBIX_PASSIVE system.swap.size[,total]
Memory Free swap space

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

ZABBIX_PASSIVE system.swap.size[,free]
Memory Free swap space in %

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

ZABBIX_PASSIVE system.swap.size[,pfree]
Monitoring agent Version of Zabbix agent running

-

ZABBIX_PASSIVE agent.version

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1d

Monitoring agent Host name of Zabbix agent running

-

ZABBIX_PASSIVE agent.hostname

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1d

Monitoring agent Zabbix agent ping

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

ZABBIX_PASSIVE agent.ping
Network interfaces Interface {#IFNAME}: Bits received

-

ZABBIX_PASSIVE net.if.in["{#IFNAME}"]

Preprocessing:

- CHANGE_PER_SECOND

- MULTIPLIER: 8

Network interfaces Interface {#IFNAME}: Bits sent

-

ZABBIX_PASSIVE net.if.out["{#IFNAME}"]

Preprocessing:

- CHANGE_PER_SECOND

- MULTIPLIER: 8

Network interfaces Interface {#IFNAME}: Outbound packets with errors

-

ZABBIX_PASSIVE net.if.out["{#IFNAME}",errors]

Preprocessing:

- CHANGE_PER_SECOND

Network interfaces Interface {#IFNAME}: Inbound packets with errors

-

ZABBIX_PASSIVE net.if.in["{#IFNAME}",errors]

Preprocessing:

- CHANGE_PER_SECOND

Network interfaces Interface {#IFNAME}: Outbound packets discarded

-

ZABBIX_PASSIVE net.if.out["{#IFNAME}",dropped]

Preprocessing:

- CHANGE_PER_SECOND

Network interfaces Interface {#IFNAME}: Inbound packets discarded

-

ZABBIX_PASSIVE net.if.in["{#IFNAME}",dropped]

Preprocessing:

- CHANGE_PER_SECOND

Network interfaces Interface {#IFNAME}: Operational status

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

ZABBIX_PASSIVE vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"]

Preprocessing:

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

Network interfaces 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_PASSIVE vfs.file.contents["/sys/class/net/{#IFNAME}/type"]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1d

Network interfaces 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_PASSIVE vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]

Preprocessing:

- MULTIPLIER: 1000000

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Security Checksum of /etc/passwd

-

ZABBIX_PASSIVE vfs.file.cksum[/etc/passwd,sha256]

Preprocessing:

- DISCARD_UNCHANGED_HEARTBEAT: 1h

Status System uptime

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

ZABBIX_PASSIVE system.uptime
Status Zabbix agent availability

Monitoring the availability status of the agent.

INTERNAL zabbix[host,agent,available]
Storage {#DEVNAME}: Disk read rate

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

DEPENDENT vfs.dev.read.rate[{#DEVNAME}]

Preprocessing:

- JSONPATH: $[0]

- CHANGE_PER_SECOND

Storage {#DEVNAME}: Disk write rate

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

DEPENDENT vfs.dev.write.rate[{#DEVNAME}]

Preprocessing:

- JSONPATH: $[4]

- CHANGE_PER_SECOND

Storage {#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}]

Expression:

(last(//vfs.dev.read.time.rate[{#DEVNAME}])/(last(//vfs.dev.read.rate[{#DEVNAME}])+(last(//vfs.dev.read.rate[{#DEVNAME}])=0)))*1000*(last(//vfs.dev.read.rate[{#DEVNAME}]) > 0)
Storage {#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}]

Expression:

(last(//vfs.dev.write.time.rate[{#DEVNAME}])/(last(//vfs.dev.write.rate[{#DEVNAME}])+(last(//vfs.dev.write.rate[{#DEVNAME}])=0)))*1000*(last(//vfs.dev.write.rate[{#DEVNAME}]) > 0)
Storage {#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 vfs.dev.queue_size[{#DEVNAME}]

Preprocessing:

- JSONPATH: $[10]

- CHANGE_PER_SECOND

- MULTIPLIER: 0.001

Storage {#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 vfs.dev.util[{#DEVNAME}]

Preprocessing:

- JSONPATH: $[9]

- CHANGE_PER_SECOND

- MULTIPLIER: 0.1

Zabbix raw items 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_PASSIVE vfs.fs.get
Zabbix raw items {#DEVNAME}: Get stats

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

ZABBIX_PASSIVE vfs.file.contents[/sys/block/{#DEVNAME}/stat]

Preprocessing:

- JAVASCRIPT: return JSON.stringify(value.trim().split(/ +/));

Zabbix raw items {#DEVNAME}: Disk read time (rate)

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

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

Preprocessing:

- JSONPATH: $[3]

- CHANGE_PER_SECOND

- MULTIPLIER: 0.001

Zabbix raw items {#DEVNAME}: Disk write time (rate)

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

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

Preprocessing:

- JSONPATH: $[7]

- CHANGE_PER_SECOND

- MULTIPLIER: 0.001

Zabbix raw items {#FSNAME}: Get filesystem data

-

DEPENDENT vfs.fs.dependent[{#FSNAME},data]

Preprocessing:

- JSONPATH: $.[?(@.fsname=='{#FSNAME}')].first()

Triggers

Name Description Expression Severity Dependencies and additional info
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/system.cpu.load[all,avg1],5m)/last(/Linux by Zabbix agent/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by Zabbix agent/system.cpu.load[all,avg5])>0 and last(/Linux by Zabbix agent/system.cpu.load[all,avg15])>0 AVERAGE
High CPU utilization

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

min(/Linux by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT} WARNING

Depends on:

- Load average is too high

{#FSNAME}: Filesystem became 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/vfs.fs.dependent[{#FSNAME},readonly],#2)=0 and last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly])=1

Recovery expression:

last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly])=0
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/vfs.fs.dependent.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},total])-last(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Linux by Zabbix agent/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.CRIT:"{#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/vfs.fs.dependent.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},total])-last(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Linux by Zabbix agent/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/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/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} WARNING

Depends on:

- {#FSNAME}: Running out of free inodes

System time is out of sync

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

fuzzytime(/Linux by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0 WARNING

Manual close: YES

System name has changed

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

change(/Linux by Zabbix agent/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0 INFO

Manual close: YES

Configured max number of open filedescriptors is too low

-

last(/Linux by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} INFO
Configured max number of processes is too low

-

last(/Linux by Zabbix agent/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} INFO

Depends on:

- Getting closer to process limit

Getting closer to process limit

-

last(/Linux by Zabbix agent/proc.num)/last(/Linux by Zabbix agent/kernel.maxproc)*100>80 WARNING
Operating system description has changed

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

change(/Linux by Zabbix agent/system.sw.os) and length(last(/Linux by Zabbix agent/system.sw.os))>0 INFO

Manual close: YES

Depends on:

- System name has changed

Number of installed packages has been changed

-

change(/Linux by Zabbix agent/system.sw.packages.get)<>0 WARNING

Manual close: YES

High memory utilization

The system is running out of free memory.

min(/Linux by Zabbix agent/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX} AVERAGE

Depends on:

- Lack of available memory

Lack of available memory

-

max(/Linux by Zabbix agent/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Zabbix agent/vm.memory.size[total])>0 AVERAGE
High swap space usage

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

max(/Linux by Zabbix agent/system.swap.size[,pfree],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Zabbix agent/system.swap.size[,total])>0 WARNING

Depends on:

- High memory utilization

- Lack of available memory

Interface {#IFNAME}: High bandwidth usage

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

(avg(/Linux by Zabbix agent/net.if.in["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) or avg(/Linux by Zabbix agent/net.if.out["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])) and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0

Recovery expression:

avg(/Linux by Zabbix agent/net.if.in["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) and avg(/Linux by Zabbix agent/net.if.out["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])
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/net.if.in["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by Zabbix agent/net.if.out["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}

Recovery expression:

max(/Linux by Zabbix agent/net.if.in["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Linux by Zabbix agent/net.if.out["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
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/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))

Recovery expression:

last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0
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 (Ack) to close the problem manually.

change(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])<0 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 and (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=6 or last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=1) and (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2)

Recovery expression:

(change(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"],#2)>0) or (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2)
INFO

Manual close: YES

Depends on:

- Interface {#IFNAME}: Link down

/etc/passwd has been changed

-

last(/Linux by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#1)<>last(/Linux by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#2) INFO

Manual close: YES

Depends on:

- Operating system description has changed

- System name has changed

has been restarted

The host uptime is less than 10 minutes

last(/Linux by Zabbix agent/system.uptime)<10m WARNING

Manual close: YES

Zabbix agent is not available

For passive only agents, host availability is used with {$AGENT.TIMEOUT} as time threshold.

max(/Linux by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 AVERAGE

Manual close: YES

{#DEVNAME}: Disk read/write request responses are too high

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

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

Manual close: YES

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.

Known Issues

  • Description: Network discovery. Zabbix agent as of 4.2 doesn't support items such as net.if.status, net.if.speed.

Didn't find what you are looking for?