Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux?at=release/7.4
This is an official Linux template. It requires Zabbix agent 7.4 or newer.
pused = 100 - 100 * (available / total - free + available)Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Linux OS following Zabbix documentation.
| 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} | Critical threshold of CPU utilization expressed in %. |
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.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | The warning threshold of the filesystem metadata utilization. |
20 |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | The critical threshold of the filesystem metadata utilization. |
10 |
| {$VFS.FS.FSNAME.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSTYPE.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$MEMORY.UTIL.MAX} | Used as a threshold in the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a threshold in the available memory trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.READ.AWAIT.WARN} | The average response time (in ms) of disk read before the trigger fires. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | The average response time (in ms) of disk write before the trigger fires. |
20 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$KERNEL.MAXPROC.MIN} | 1024 |
|
| {$KERNEL.MAXFILES.MIN} | 256 |
|
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version of Zabbix agent running | Zabbix agent | agent.version Preprocessing
|
|
| Host name of Zabbix agent running | Zabbix agent | agent.hostname Preprocessing
|
|
| Zabbix agent ping | The agent always returns "1" for this item. May be used in combination with |
Zabbix agent | agent.ping |
| Zabbix agent availability | Used for monitoring the availability status of the agent. |
Zabbix internal | zabbix[host,agent,available] |
| Number of CPUs | Zabbix agent | system.cpu.num Preprocessing
|
|
| Load average (1m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent | system.cpu.load[all,avg1] |
| Load average (5m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent | system.cpu.load[all,avg5] |
| Load average (15m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent | system.cpu.load[all,avg15] |
| CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util Preprocessing
|
| CPU idle time | Time the CPU has spent doing nothing. |
Zabbix agent | system.cpu.util[,idle] |
| CPU system time | Time the CPU has spent running the kernel and its processes. |
Zabbix agent | system.cpu.util[,system] |
| CPU user time | Time the CPU has spent running users' processes that are not niced. |
Zabbix agent | system.cpu.util[,user] |
| CPU nice time | Time the CPU has spent running users' processes that have been niced. |
Zabbix agent | system.cpu.util[,nice] |
| CPU iowait time | Time the CPU has been waiting for I/O to complete. |
Zabbix agent | system.cpu.util[,iowait] |
| 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 | system.cpu.util[,steal] |
| CPU interrupt time | Time the CPU has spent servicing hardware interrupts. |
Zabbix agent | system.cpu.util[,interrupt] |
| CPU softirq time | Time the CPU has been servicing software interrupts. |
Zabbix agent | system.cpu.util[,softirq] |
| CPU guest time | Time spent on running a virtual CPU for a guest operating system. |
Zabbix agent | system.cpu.util[,guest] |
| CPU guest nice time | Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel). |
Zabbix agent | system.cpu.util[,guest_nice] |
| Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
Zabbix agent | system.cpu.switches Preprocessing
|
| Interrupts per second | Number of interrupts processed. |
Zabbix agent | system.cpu.intr Preprocessing
|
| Get filesystems | The |
Zabbix agent | vfs.fs.get |
| Memory utilization | The percentage of used memory is calculated as |
Dependent item | vm.memory.util Preprocessing
|
| Available memory in % | The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent | vm.memory.size[pavailable] |
| Total memory | Total memory expressed in bytes. |
Zabbix agent | vm.memory.size[total] |
| Available memory | The available memory: - in Linux = free + buffers + cache; - on other platforms calculation may vary. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent | vm.memory.size[available] |
| Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,total] |
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,free] |
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Zabbix agent | system.swap.size[,pfree] |
| System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent | system.uptime |
| System boot time | Zabbix agent | system.boottime Preprocessing
|
|
| System local time | The local system time of the host. |
Zabbix agent | system.localtime |
| System name | The host name of the system. |
Zabbix agent | system.hostname Preprocessing
|
| System description | The information as normally returned by |
Zabbix agent | system.uname Preprocessing
|
| Number of logged in users | The number of users who are currently logged in. |
Zabbix agent | system.users.num |
| Maximum number of open file descriptors | May be increased by using the |
Zabbix agent | kernel.maxfiles Preprocessing
|
| Maximum number of processes | May be increased by using the |
Zabbix agent | kernel.maxproc Preprocessing
|
| Number of processes | Zabbix agent | proc.num | |
| Number of running processes | Zabbix agent | proc.num[,,run] | |
| Checksum of /etc/passwd | Zabbix agent | vfs.file.cksum[/etc/passwd,sha256] Preprocessing
|
|
| Operating system | Zabbix agent | system.sw.os Preprocessing
|
|
| Operating system architecture | The architecture of the operating system. |
Zabbix agent | system.sw.arch Preprocessing
|
| Number of installed packages | Zabbix agent | system.sw.packages.get Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Zabbix agent is not available | For passive agents only, host availability is used with |
max(/Linux by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 |
Average | Manual close: Yes |
| 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/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 | |
| Linux: High CPU utilization | 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:
|
| Linux: High memory utilization | The system is running out of free memory. |
min(/Linux by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | The system is running out of 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 | |
| Linux: 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:
|
| Linux: {HOST.NAME} has been restarted | The host uptime is less than 10 minutes. |
last(/Linux by Zabbix agent/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/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/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0 |
Info | Manual close: Yes |
| Linux: Configured max number of open filedescriptors is too low | last(/Linux by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} |
Info | ||
| Linux: Configured max number of processes is too low | last(/Linux by Zabbix agent/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} |
Info | Depends on:
|
|
| Linux: Getting closer to process limit | last(/Linux by Zabbix agent/proc.num)/last(/Linux by Zabbix agent/kernel.maxproc)*100>80 |
Warning | ||
| Linux: /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:
|
|
| 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/system.sw.os) and length(last(/Linux by Zabbix agent/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Linux: Number of installed packages has been changed | change(/Linux by Zabbix agent/system.sw.packages.get)<>0 |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | The discovery of mounted filesystems with different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSNAME}]: Option: 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
|
| FS [{#FSNAME}]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSNAME}]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | Free metadata space expressed in %. |
Dependent item | vfs.fs.dependent.inode[{#FSNAME},pfree] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: FS [{#FSNAME}]: Filesystem has become read-only | The filesystem has become read-only, possibly due to an I/O error. 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 |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is critically low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Zabbix agent | vfs.dev.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Get stats | The contents of get |
Zabbix agent | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing
|
| {#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
|
| {#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
|
| {#DEVNAME}: Disk read time (rate) | The rate of total read time counter; used in |
Dependent item | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | The rate of total write time counter; used in |
Dependent item | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing
|
| {#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
|
| {#DEVNAME}: Disk utilization | 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
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | The discovery of network interfaces. |
Zabbix agent | net.if.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}: Bits received | Zabbix agent | net.if.in["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Bits sent | Zabbix agent | net.if.out["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets with errors | Zabbix agent | net.if.out["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets with errors | Zabbix agent | net.if.in["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets discarded | Zabbix agent | net.if.out["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets discarded | Zabbix agent | net.if.in["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"] Preprocessing
|
| Interface {#IFNAME}: Interface type | It indicates the interface protocol type as a decimal value. See Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing
|
| 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 Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: 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 |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}: High error rate | It recovers when it is below 80% of the |
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}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}: Link down | This trigger expression works as follows: |
{$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)) |
Average | Manual close: Yes |
| Linux: 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/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) |
Info | Manual close: Yes Depends on:
|
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux?at=release/7.2
This is an official Linux template. It requires Zabbix agent 7.2 or newer.
pused = 100 - 100 * (available / total - free + available)Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Linux OS following Zabbix documentation.
| 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} | Critical threshold of CPU utilization expressed in %. |
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} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used for filesystem discovery. Can be overridden on the host or 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 |
| {$MEMORY.UTIL.MAX} | Used as a threshold in the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a threshold in the available memory trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.READ.AWAIT.WARN} | The average response time (in ms) of disk read before the trigger fires. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | The average response time (in ms) of disk write before the trigger fires. |
20 |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.DEV.DEVNAME.MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$KERNEL.MAXPROC.MIN} | 1024 |
|
| {$KERNEL.MAXFILES.MIN} | 256 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version of Zabbix agent running | Zabbix agent | agent.version Preprocessing
|
|
| Host name of Zabbix agent running | Zabbix agent | agent.hostname Preprocessing
|
|
| Zabbix agent ping | The agent always returns "1" for this item. May be used in combination with |
Zabbix agent | agent.ping |
| Zabbix agent availability | Used for monitoring the availability status of the agent. |
Zabbix internal | zabbix[host,agent,available] |
| Number of CPUs | Zabbix agent | system.cpu.num Preprocessing
|
|
| Load average (1m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent | system.cpu.load[all,avg1] |
| Load average (5m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent | system.cpu.load[all,avg5] |
| Load average (15m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent | system.cpu.load[all,avg15] |
| CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util Preprocessing
|
| CPU idle time | Time the CPU has spent doing nothing. |
Zabbix agent | system.cpu.util[,idle] |
| CPU system time | Time the CPU has spent running the kernel and its processes. |
Zabbix agent | system.cpu.util[,system] |
| CPU user time | Time the CPU has spent running users' processes that are not niced. |
Zabbix agent | system.cpu.util[,user] |
| CPU nice time | Time the CPU has spent running users' processes that have been niced. |
Zabbix agent | system.cpu.util[,nice] |
| CPU iowait time | Time the CPU has been waiting for I/O to complete. |
Zabbix agent | system.cpu.util[,iowait] |
| 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 | system.cpu.util[,steal] |
| CPU interrupt time | Time the CPU has spent servicing hardware interrupts. |
Zabbix agent | system.cpu.util[,interrupt] |
| CPU softirq time | Time the CPU has been servicing software interrupts. |
Zabbix agent | system.cpu.util[,softirq] |
| CPU guest time | Time spent on running a virtual CPU for a guest operating system. |
Zabbix agent | system.cpu.util[,guest] |
| CPU guest nice time | Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel). |
Zabbix agent | system.cpu.util[,guest_nice] |
| Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
Zabbix agent | system.cpu.switches Preprocessing
|
| Interrupts per second | Number of interrupts processed. |
Zabbix agent | system.cpu.intr Preprocessing
|
| Get filesystems | The |
Zabbix agent | vfs.fs.get |
| Memory utilization | The percentage of used memory is calculated as |
Dependent item | vm.memory.utilization Preprocessing
|
| Available memory in % | The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent | vm.memory.size[pavailable] |
| Total memory | Total memory expressed in bytes. |
Zabbix agent | vm.memory.size[total] |
| Available memory | The available memory: - in Linux = free + buffers + cache; - on other platforms calculation may vary. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent | vm.memory.size[available] |
| Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,total] |
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,free] |
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Zabbix agent | system.swap.size[,pfree] |
| System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent | system.uptime |
| System boot time | Zabbix agent | system.boottime Preprocessing
|
|
| System local time | The local system time of the host. |
Zabbix agent | system.localtime |
| System name | The host name of the system. |
Zabbix agent | system.hostname Preprocessing
|
| System description | The information as normally returned by |
Zabbix agent | system.uname Preprocessing
|
| Number of logged in users | The number of users who are currently logged in. |
Zabbix agent | system.users.num |
| Maximum number of open file descriptors | May be increased by using the |
Zabbix agent | kernel.maxfiles Preprocessing
|
| Maximum number of processes | May be increased by using the |
Zabbix agent | kernel.maxproc Preprocessing
|
| Number of processes | Zabbix agent | proc.num | |
| Number of running processes | Zabbix agent | proc.num[,,run] | |
| Checksum of /etc/passwd | Zabbix agent | vfs.file.cksum[/etc/passwd,sha256] Preprocessing
|
|
| Operating system | Zabbix agent | system.sw.os Preprocessing
|
|
| Operating system architecture | The architecture of the operating system. |
Zabbix agent | system.sw.arch Preprocessing
|
| Number of installed packages | Zabbix agent | system.sw.packages.get Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Zabbix agent is not available | For passive agents only, host availability is used with |
max(/Linux by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 |
Average | Manual close: Yes |
| 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/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 | |
| Linux: High CPU utilization | 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:
|
| Linux: 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:
|
| Linux: Lack of available memory | The system is running out of 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 | |
| Linux: 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:
|
| Linux: {HOST.NAME} has been restarted | The host uptime is less than 10 minutes. |
last(/Linux by Zabbix agent/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/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/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0 |
Info | Manual close: Yes |
| Linux: Configured max number of open filedescriptors is too low | last(/Linux by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} |
Info | ||
| Linux: Configured max number of processes is too low | last(/Linux by Zabbix agent/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} |
Info | Depends on:
|
|
| Linux: Getting closer to process limit | last(/Linux by Zabbix agent/proc.num)/last(/Linux by Zabbix agent/kernel.maxproc)*100>80 |
Warning | ||
| Linux: /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:
|
|
| 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/system.sw.os) and length(last(/Linux by Zabbix agent/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Linux: Number of installed packages has been changed | change(/Linux by Zabbix agent/system.sw.packages.get)<>0 |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | The discovery of mounted filesystems with different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSNAME}]: Option: 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
|
| FS [{#FSNAME}]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSNAME}]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | Free metadata space expressed in %. |
Dependent item | vfs.fs.dependent.inode[{#FSNAME},pfree] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: FS [{#FSNAME}]: Filesystem has become read-only | The filesystem has become read-only, possibly due to an I/O error. 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 |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is critically low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Zabbix agent | vfs.dev.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Get stats | The contents of get |
Zabbix agent | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing
|
| {#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
|
| {#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
|
| {#DEVNAME}: Disk read time (rate) | The rate of total read time counter; used in |
Dependent item | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | The rate of total write time counter; used in |
Dependent item | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing
|
| {#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
|
| {#DEVNAME}: Disk utilization | 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
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | The discovery of network interfaces. |
Zabbix agent | net.if.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}: Bits received | Zabbix agent | net.if.in["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Bits sent | Zabbix agent | net.if.out["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets with errors | Zabbix agent | net.if.out["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets with errors | Zabbix agent | net.if.in["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets discarded | Zabbix agent | net.if.out["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets discarded | Zabbix agent | net.if.in["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"] Preprocessing
|
| Interface {#IFNAME}: Interface type | It indicates the interface protocol type as a decimal value. See Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing
|
| 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 Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: 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 |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}: High error rate | It recovers when it is below 80% of the |
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}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}: Link down | This trigger expression works as follows: |
{$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)) |
Average | Manual close: Yes |
| Linux: 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/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) |
Info | Manual close: Yes Depends on:
|
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux?at=release/7.0
This is an official Linux template. It requires Zabbix agent 7.0 or newer.
pused = 100 - 100 * (available / total - free + available)Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Linux OS following Zabbix documentation.
| 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} | Critical threshold of CPU utilization expressed in %. |
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} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used for filesystem discovery. Can be overridden on the host or 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 |
| {$MEMORY.UTIL.MAX} | Used as a threshold in the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a threshold in the available memory trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.READ.AWAIT.WARN} | The average response time (in ms) of disk read before the trigger fires. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | The average response time (in ms) of disk write before the trigger fires. |
20 |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.DEV.DEVNAME.MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$KERNEL.MAXPROC.MIN} | 1024 |
|
| {$KERNEL.MAXFILES.MIN} | 256 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version of Zabbix agent running | Zabbix agent | agent.version Preprocessing
|
|
| Host name of Zabbix agent running | Zabbix agent | agent.hostname Preprocessing
|
|
| Zabbix agent ping | The agent always returns "1" for this item. May be used in combination with |
Zabbix agent | agent.ping |
| Zabbix agent availability | Used for monitoring the availability status of the agent. |
Zabbix internal | zabbix[host,agent,available] |
| Number of CPUs | Zabbix agent | system.cpu.num Preprocessing
|
|
| Load average (1m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent | system.cpu.load[all,avg1] |
| Load average (5m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent | system.cpu.load[all,avg5] |
| Load average (15m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent | system.cpu.load[all,avg15] |
| CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util Preprocessing
|
| CPU idle time | Time the CPU has spent doing nothing. |
Zabbix agent | system.cpu.util[,idle] |
| CPU system time | Time the CPU has spent running the kernel and its processes. |
Zabbix agent | system.cpu.util[,system] |
| CPU user time | Time the CPU has spent running users' processes that are not niced. |
Zabbix agent | system.cpu.util[,user] |
| CPU nice time | Time the CPU has spent running users' processes that have been niced. |
Zabbix agent | system.cpu.util[,nice] |
| CPU iowait time | Time the CPU has been waiting for I/O to complete. |
Zabbix agent | system.cpu.util[,iowait] |
| 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 | system.cpu.util[,steal] |
| CPU interrupt time | Time the CPU has spent servicing hardware interrupts. |
Zabbix agent | system.cpu.util[,interrupt] |
| CPU softirq time | Time the CPU has been servicing software interrupts. |
Zabbix agent | system.cpu.util[,softirq] |
| CPU guest time | Time spent on running a virtual CPU for a guest operating system. |
Zabbix agent | system.cpu.util[,guest] |
| CPU guest nice time | Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel). |
Zabbix agent | system.cpu.util[,guest_nice] |
| Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
Zabbix agent | system.cpu.switches Preprocessing
|
| Interrupts per second | Number of interrupts processed. |
Zabbix agent | system.cpu.intr Preprocessing
|
| Get filesystems | The |
Zabbix agent | vfs.fs.get |
| Memory utilization | The percentage of used memory is calculated as |
Dependent item | vm.memory.util Preprocessing
|
| Available memory in % | The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent | vm.memory.size[pavailable] |
| Total memory | Total memory expressed in bytes. |
Zabbix agent | vm.memory.size[total] |
| Available memory | The available memory: - in Linux = free + buffers + cache; - on other platforms calculation may vary. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent | vm.memory.size[available] |
| Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,total] |
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,free] |
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Zabbix agent | system.swap.size[,pfree] |
| System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent | system.uptime |
| System boot time | Zabbix agent | system.boottime Preprocessing
|
|
| System local time | The local system time of the host. |
Zabbix agent | system.localtime |
| System name | The host name of the system. |
Zabbix agent | system.hostname Preprocessing
|
| System description | The information as normally returned by |
Zabbix agent | system.uname Preprocessing
|
| Number of logged in users | The number of users who are currently logged in. |
Zabbix agent | system.users.num |
| Maximum number of open file descriptors | May be increased by using the |
Zabbix agent | kernel.maxfiles Preprocessing
|
| Maximum number of processes | May be increased by using the |
Zabbix agent | kernel.maxproc Preprocessing
|
| Number of processes | Zabbix agent | proc.num | |
| Number of running processes | Zabbix agent | proc.num[,,run] | |
| Checksum of /etc/passwd | Zabbix agent | vfs.file.cksum[/etc/passwd,sha256] Preprocessing
|
|
| Operating system | Zabbix agent | system.sw.os Preprocessing
|
|
| Operating system architecture | The architecture of the operating system. |
Zabbix agent | system.sw.arch Preprocessing
|
| Number of installed packages | Zabbix agent | system.sw.packages.get Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Zabbix agent is not available | For passive agents only, host availability is used with |
max(/Linux by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 |
Average | Manual close: Yes |
| 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/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 | |
| Linux: High CPU utilization | 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:
|
| Linux: High memory utilization | The system is running out of free memory. |
min(/Linux by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | The system is running out of 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 | |
| Linux: 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:
|
| Linux: {HOST.NAME} has been restarted | The host uptime is less than 10 minutes. |
last(/Linux by Zabbix agent/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/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/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0 |
Info | Manual close: Yes |
| Linux: Configured max number of open filedescriptors is too low | last(/Linux by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} |
Info | ||
| Linux: Configured max number of processes is too low | last(/Linux by Zabbix agent/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} |
Info | Depends on:
|
|
| Linux: Getting closer to process limit | last(/Linux by Zabbix agent/proc.num)/last(/Linux by Zabbix agent/kernel.maxproc)*100>80 |
Warning | ||
| Linux: /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:
|
|
| 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/system.sw.os) and length(last(/Linux by Zabbix agent/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Linux: Number of installed packages has been changed | change(/Linux by Zabbix agent/system.sw.packages.get)<>0 |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | The discovery of mounted filesystems with different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSNAME}]: Option: 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
|
| FS [{#FSNAME}]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSNAME}]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | Free metadata space expressed in %. |
Dependent item | vfs.fs.dependent.inode[{#FSNAME},pfree] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: FS [{#FSNAME}]: Filesystem has become read-only | The filesystem has become read-only, possibly due to an I/O error. 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 |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is critically low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Zabbix agent | vfs.dev.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Get stats | The contents of get |
Zabbix agent | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing
|
| {#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
|
| {#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
|
| {#DEVNAME}: Disk read time (rate) | The rate of total read time counter; used in |
Dependent item | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | The rate of total write time counter; used in |
Dependent item | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing
|
| {#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
|
| {#DEVNAME}: Disk utilization | 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
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | The discovery of network interfaces. |
Zabbix agent | net.if.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}: Bits received | Zabbix agent | net.if.in["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Bits sent | Zabbix agent | net.if.out["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets with errors | Zabbix agent | net.if.out["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets with errors | Zabbix agent | net.if.in["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets discarded | Zabbix agent | net.if.out["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets discarded | Zabbix agent | net.if.in["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"] Preprocessing
|
| Interface {#IFNAME}: Interface type | It indicates the interface protocol type as a decimal value. See Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing
|
| 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 Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: 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 |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}: High error rate | It recovers when it is below 80% of the |
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}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}: Link down | This trigger expression works as follows: |
{$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)) |
Average | Manual close: Yes |
| Linux: 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/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) |
Info | Manual close: Yes Depends on:
|
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux?at=release/6.4
This is an official Linux template. It requires Zabbix agent 6.4 or newer.
pused = 100 - 100 * (available / total - free + available)Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Linux OS following Zabbix documentation.
| 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} | Critical threshold of CPU utilization expressed in %. |
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} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used for filesystem discovery. Can be overridden on the host or 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 |
| {$MEMORY.UTIL.MAX} | Used as a threshold in the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a threshold in the available memory trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.READ.AWAIT.WARN} | The average response time (in ms) of disk read before the trigger fires. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | The average response time (in ms) of disk write before the trigger fires. |
20 |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.DEV.DEVNAME.MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$KERNEL.MAXPROC.MIN} | 1024 |
|
| {$KERNEL.MAXFILES.MIN} | 256 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Linux: Version of Zabbix agent running | Zabbix agent | agent.version Preprocessing
|
|
| Linux: Host name of Zabbix agent running | Zabbix agent | agent.hostname Preprocessing
|
|
| 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 | agent.ping |
| Linux: Zabbix agent availability | Monitoring the availability status of the agent. |
Zabbix internal | zabbix[host,agent,available] |
| Linux: Number of CPUs | Zabbix agent | system.cpu.num Preprocessing
|
|
| Linux: Load average (1m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent | system.cpu.load[all,avg1] |
| Linux: Load average (5m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent | system.cpu.load[all,avg5] |
| Linux: Load average (15m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent | system.cpu.load[all,avg15] |
| Linux: CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util Preprocessing
|
| Linux: CPU idle time | Time the CPU has spent doing nothing. |
Zabbix agent | system.cpu.util[,idle] |
| Linux: CPU system time | Time the CPU has spent running the kernel and its processes. |
Zabbix agent | system.cpu.util[,system] |
| Linux: CPU user time | Time the CPU has spent running users' processes that are not niced. |
Zabbix agent | system.cpu.util[,user] |
| Linux: CPU nice time | Time the CPU has spent running users' processes that have been niced. |
Zabbix agent | system.cpu.util[,nice] |
| Linux: CPU iowait time | Time the CPU has been waiting for I/O to complete. |
Zabbix agent | 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 | system.cpu.util[,steal] |
| Linux: CPU interrupt time | Time the CPU has spent servicing hardware interrupts. |
Zabbix agent | system.cpu.util[,interrupt] |
| Linux: CPU softirq time | Time the CPU has been servicing software interrupts. |
Zabbix agent | system.cpu.util[,softirq] |
| Linux: CPU guest time | Time spent on running a virtual CPU for a guest operating system. |
Zabbix agent | system.cpu.util[,guest] |
| Linux: CPU guest nice time | Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel). |
Zabbix agent | system.cpu.util[,guest_nice] |
| Linux: Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
Zabbix agent | system.cpu.switches Preprocessing
|
| Linux: Interrupts per second | Number of interrupts processed. |
Zabbix agent | system.cpu.intr Preprocessing
|
| Linux: Get filesystems | The |
Zabbix agent | vfs.fs.get |
| Linux: Memory utilization | The percentage of used memory is calculated as |
Dependent item | vm.memory.utilization Preprocessing
|
| Linux: Available memory in % | The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent | vm.memory.size[pavailable] |
| Linux: Total memory | Total memory expressed in bytes. |
Zabbix agent | vm.memory.size[total] |
| Linux: Available memory | The available memory: - in Linux = free + buffers + cache; - on other platforms calculation may vary. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent | vm.memory.size[available] |
| Linux: Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,total] |
| Linux: Free swap space | The free space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,free] |
| Linux: Free swap space in % | The free space of the swap volume/file expressed in %. |
Zabbix agent | system.swap.size[,pfree] |
| Linux: System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent | system.uptime |
| Linux: System boot time | Zabbix agent | system.boottime Preprocessing
|
|
| Linux: System local time | The local system time of the host. |
Zabbix agent | system.localtime |
| Linux: System name | The host name of the system. |
Zabbix agent | system.hostname Preprocessing
|
| Linux: System description | The information as normally returned by |
Zabbix agent | system.uname Preprocessing
|
| Linux: Number of logged in users | The number of users who are currently logged in. |
Zabbix agent | system.users.num |
| Linux: Maximum number of open file descriptors | May be increased by using the |
Zabbix agent | kernel.maxfiles Preprocessing
|
| Linux: Maximum number of processes | May be increased by using the |
Zabbix agent | kernel.maxproc Preprocessing
|
| Linux: Number of processes | Zabbix agent | proc.num | |
| Linux: Number of running processes | Zabbix agent | proc.num[,,run] | |
| Linux: Checksum of /etc/passwd | Zabbix agent | vfs.file.cksum[/etc/passwd,sha256] Preprocessing
|
|
| Linux: Operating system | Zabbix agent | system.sw.os Preprocessing
|
|
| Linux: Operating system architecture | The architecture of the operating system. |
Zabbix agent | system.sw.arch Preprocessing
|
| Linux: Number of installed packages | Zabbix agent | system.sw.packages.get Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: 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 |
| 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/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 | |
| Linux: High CPU utilization | 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:
|
| Linux: 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:
|
| Linux: Lack of available memory | The system is running out of 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 | |
| Linux: 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:
|
| Linux: {HOST.NAME} has been restarted | The host uptime is less than 10 minutes. |
last(/Linux by Zabbix agent/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/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/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0 |
Info | Manual close: Yes |
| Linux: Configured max number of open filedescriptors is too low | last(/Linux by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} |
Info | ||
| Linux: Configured max number of processes is too low | last(/Linux by Zabbix agent/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} |
Info | Depends on:
|
|
| Linux: Getting closer to process limit | last(/Linux by Zabbix agent/proc.num)/last(/Linux by Zabbix agent/kernel.maxproc)*100>80 |
Warning | ||
| Linux: /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:
|
|
| 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/system.sw.os) and length(last(/Linux by Zabbix agent/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Linux: Number of installed packages has been changed | change(/Linux by Zabbix agent/system.sw.packages.get)<>0 |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | The discovery of mounted filesystems with different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSNAME}]: Option: 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
|
| FS [{#FSNAME}]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSNAME}]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | Free metadata space expressed in %. |
Dependent item | vfs.fs.dependent.inode[{#FSNAME},pfree] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| FS [{#FSNAME}]: Filesystem has become read-only | The filesystem has become read-only, possibly due to an I/O error. 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 |
Average | Manual close: Yes |
| FS [{#FSNAME}]: Space is critically low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| FS [{#FSNAME}]: Space is low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Zabbix agent | vfs.dev.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Get stats | The contents of get |
Zabbix agent | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing
|
| {#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
|
| {#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
|
| {#DEVNAME}: Disk read time (rate) | The rate of total read time counter; used in |
Dependent item | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | The rate of total write time counter; used in |
Dependent item | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing
|
| {#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
|
| {#DEVNAME}: Disk utilization | 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
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | The discovery of network interfaces. |
Zabbix agent | net.if.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}: Bits received | Zabbix agent | net.if.in["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Bits sent | Zabbix agent | net.if.out["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets with errors | Zabbix agent | net.if.out["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets with errors | Zabbix agent | net.if.in["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets discarded | Zabbix agent | net.if.out["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets discarded | Zabbix agent | net.if.in["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"] Preprocessing
|
| Interface {#IFNAME}: Interface type | It indicates the interface protocol type as a decimal value. See Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing
|
| 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 Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing
|
| 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/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 |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}: High error rate | It recovers when it is below 80% of the |
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}"} |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}: Link down | This trigger expression works as follows: |
{$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)) |
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/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) |
Info | Manual close: Yes Depends on:
|
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux?at=release/6.2
For Zabbix version: 6.2 and higher. New official Linux template. Requires agent of Zabbix 3.0.14, 3.4.5 and 4.0.0 or newer.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
| 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} | 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 |
| {$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]* |
| {$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 |
| {$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 |
| {$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} | - |
10 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | - |
20 |
| {$VFS.FS.PUSED.MAX.CRIT} | - |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | - |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | - |
ZABBIX_PASSIVE | vfs.dev.discovery Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#DEVTYPE} MATCHES_REGEX - {#DEVNAME} MATCHES_REGEX - {#DEVNAME} NOT_MATCHES_REGEX |
| Mounted filesystem discovery | The discovery of mounted filesystems with different types. |
ZABBIX_PASSIVE | vfs.fs.discovery Filter: AND- {#FSTYPE} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX Overrides: Skip metadata collection for dynamic FS |
| Network interface discovery | The discovery of network interfaces. |
ZABBIX_PASSIVE | net.if.discovery Filter: AND- {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Number of CPUs | - |
ZABBIX_PASSIVE | system.cpu.num Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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: |
| 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}: Used space | Used storage expressed in Bytes |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},used] |
| Filesystems | {#FSNAME}: Total space | The total space expressed in Bytes. |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},total] |
| Filesystems | {#FSNAME}: Space utilization | The space utilization expressed in % for {#FSNAME}. |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},pused] |
| Filesystems | {#FSNAME}: Free inodes in % | - |
ZABBIX_PASSIVE | vfs.fs.inode[{#FSNAME},pfree] |
| General | System boot time | - |
ZABBIX_PASSIVE | system.boottime Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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: |
| General | System description | The information as normally returned by 'uname -a'. |
ZABBIX_PASSIVE | system.uname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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: |
| 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: |
| 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: |
| Inventory | Operating system architecture | The architecture of the host's operating system. |
ZABBIX_PASSIVE | system.sw.arch Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Inventory | Software installed | - |
ZABBIX_PASSIVE | system.sw.packages Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Memory | Memory utilization | The percentage of used memory is calculated as 100-pavailable. |
DEPENDENT | vm.memory.utilization Preprocessing: - JAVASCRIPT: |
| 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: |
| Monitoring agent | Host name of Zabbix agent running | - |
ZABBIX_PASSIVE | agent.hostname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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: |
| Network interfaces | Interface {#IFNAME}: Bits sent | - |
ZABBIX_PASSIVE | net.if.out["{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
| 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: |
| 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: |
| 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: - DISCARD_UNCHANGED_HEARTBEAT: |
| Security | Checksum of /etc/passwd | - |
ZABBIX_PASSIVE | vfs.file.cksum[/etc/passwd,sha256] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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: - 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: - 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: - CHANGE_PER_SECOND - MULTIPLIER: |
| 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: - CHANGE_PER_SECOND - MULTIPLIER: |
| 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: |
| 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: - CHANGE_PER_SECOND - MULTIPLIER: |
| 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: - CHANGE_PER_SECOND - MULTIPLIER: |
| 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}: Disk space is critically low | Two conditions should match: 1. The first condition - utilization of 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.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Linux by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Linux by Zabbix agent/vfs.fs.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 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.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Linux by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Linux by Zabbix agent/vfs.fs.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. 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.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. 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.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. |
last(/Linux by Zabbix agent/system.hostname,#1)<>last(/Linux by Zabbix agent/system.hostname,#2) 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. |
last(/Linux by Zabbix agent/system.sw.os,#1)<>last(/Linux by Zabbix agent/system.sw.os,#2) and length(last(/Linux by Zabbix agent/system.sw.os))>0 |
INFO | Manual close: YES Depends on: - System name has changed |
| 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"])>0Recovery 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 'ethernal 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 |
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.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux?at=release/6.0
New official Linux template. Requires agent of Zabbix 6.0 or newer.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Linux OS following Zabbix documentation.
| 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 |
|
| {$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.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 |
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} | The upper threshold for difference of system time. |
60s |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$KERNEL.MAXPROC.MIN} | 1024 |
|
| {$KERNEL.MAXFILES.MIN} | 256 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Linux: Version of Zabbix agent running | Zabbix agent | agent.version Preprocessing
|
|
| Linux: Host name of Zabbix agent running | Zabbix agent | agent.hostname Preprocessing
|
|
| 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 | agent.ping |
| Linux: Zabbix agent availability | Monitoring the availability status of the agent. |
Zabbix internal | zabbix[host,agent,available] |
| Linux: Number of CPUs | Zabbix agent | system.cpu.num Preprocessing
|
|
| Linux: Load average (1m avg) | Zabbix agent | system.cpu.load[all,avg1] | |
| Linux: Load average (5m avg) | Zabbix agent | system.cpu.load[all,avg5] | |
| Linux: Load average (15m avg) | Zabbix agent | system.cpu.load[all,avg15] | |
| Linux: CPU utilization | The CPU utilization expressed in %. |
Dependent item | system.cpu.util Preprocessing
|
| Linux: CPU idle time | The time the CPU has spent doing nothing. |
Zabbix agent | system.cpu.util[,idle] |
| Linux: CPU system time | The time the CPU has spent running the kernel and its processes. |
Zabbix agent | system.cpu.util[,system] |
| Linux: CPU user time | The time the CPU has spent running users' processes that are not niced. |
Zabbix agent | system.cpu.util[,user] |
| Linux: CPU nice time | The time the CPU has spent running users' processes that have been niced. |
Zabbix agent | system.cpu.util[,nice] |
| Linux: CPU iowait time | The amount of time the CPU has been waiting for I/O to complete. |
Zabbix agent | 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 | system.cpu.util[,steal] |
| Linux: CPU interrupt time | The amount of time the CPU has been servicing hardware interrupts. |
Zabbix agent | system.cpu.util[,interrupt] |
| Linux: CPU softirq time | The amount of time the CPU has been servicing software interrupts. |
Zabbix agent | 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 | 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 | system.cpu.util[,guest_nice] |
| Linux: Context switches per second | Zabbix agent | system.cpu.switches Preprocessing
|
|
| Linux: Interrupts per second | Zabbix agent | system.cpu.intr Preprocessing
|
|
| Linux: Memory utilization | The percentage of used memory is calculated as |
Dependent item | vm.memory.utilization Preprocessing
|
| Linux: Available memory in % | The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent | vm.memory.size[pavailable] |
| Linux: Total memory | The total memory expressed in bytes. |
Zabbix agent | 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 |
Zabbix agent | vm.memory.size[available] |
| Linux: Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,total] |
| Linux: Free swap space | The free space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,free] |
| Linux: Free swap space in % | The free space of the swap volume/file expressed in %. |
Zabbix agent | system.swap.size[,pfree] |
| Linux: System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent | system.uptime |
| Linux: System boot time | Zabbix agent | system.boottime Preprocessing
|
|
| Linux: System local time | The local system time of the host. |
Zabbix agent | system.localtime |
| Linux: System name | The host name of the system. |
Zabbix agent | system.hostname Preprocessing
|
| Linux: System description | The information as normally returned by |
Zabbix agent | system.uname Preprocessing
|
| Linux: Number of logged in users | The number of users who are currently logged in. |
Zabbix agent | system.users.num |
| Linux: Maximum number of open file descriptors | It could be increased by using |
Zabbix agent | kernel.maxfiles Preprocessing
|
| Linux: Maximum number of processes | It could be increased by using |
Zabbix agent | kernel.maxproc Preprocessing
|
| Linux: Number of processes | Zabbix agent | proc.num | |
| Linux: Number of running processes | Zabbix agent | proc.num[,,run] | |
| Linux: Checksum of /etc/passwd | Zabbix agent | vfs.file.cksum[/etc/passwd,sha256] Preprocessing
|
|
| Linux: Operating system | Zabbix agent | system.sw.os Preprocessing
|
|
| Linux: Operating system architecture | The architecture of the operating system. |
Zabbix agent | system.sw.arch Preprocessing
|
| Linux: Software installed | Zabbix agent | system.sw.packages Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: 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 |
| 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/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 | |
| Linux: 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:
|
| Linux: 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:
|
| Linux: 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 | ||
| Linux: 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:
|
| Linux: {HOST.NAME} has been restarted | The host uptime is less than 10 minutes. |
last(/Linux by Zabbix agent/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/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/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0 |
Info | Manual close: Yes |
| Linux: Configured max number of open filedescriptors is too low | last(/Linux by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} |
Info | ||
| Linux: Configured max number of processes is too low | last(/Linux by Zabbix agent/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} |
Info | Depends on:
|
|
| Linux: Getting closer to process limit | last(/Linux by Zabbix agent/proc.num)/last(/Linux by Zabbix agent/kernel.maxproc)*100>80 |
Warning | ||
| Linux: /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:
|
|
| 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/system.sw.os) and length(last(/Linux by Zabbix agent/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | The discovery of mounted filesystems with different types. |
Zabbix agent | vfs.fs.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FSNAME}: Used space | Used storage in bytes |
Zabbix agent | vfs.fs.size[{#FSNAME},used] |
| {#FSNAME}: Total space | Total space in bytes |
Zabbix agent | vfs.fs.size[{#FSNAME},total] |
| {#FSNAME}: Space utilization | The space utilization expressed in % for {#FSNAME}. |
Zabbix agent | vfs.fs.size[{#FSNAME},pused] |
| {#FSNAME}: Free inodes in % | Zabbix agent | vfs.fs.inode[{#FSNAME},pfree] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low | The volume's space usage exceeds the |
last(/Linux by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| {#FSNAME}: Disk space is low | The volume's space usage exceeds the |
last(/Linux by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| {#FSNAME}: Running out of free inodes | It may become impossible to write to a disk if there are no index nodes left. |
min(/Linux by Zabbix agent/vfs.fs.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. |
min(/Linux by Zabbix agent/vfs.fs.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Zabbix agent | vfs.dev.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Get stats | The contents of get |
Zabbix agent | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing
|
| {#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
|
| {#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
|
| {#DEVNAME}: Disk read time (rate) | The rate of total read time counter; used in |
Dependent item | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | The rate of total write time counter; used in |
Dependent item | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing
|
| {#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
|
| {#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
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | The discovery of network interfaces. |
Zabbix agent | net.if.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}: Bits received | Zabbix agent | net.if.in["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Bits sent | Zabbix agent | net.if.out["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets with errors | Zabbix agent | net.if.out["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets with errors | Zabbix agent | net.if.in["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets discarded | Zabbix agent | net.if.out["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets discarded | Zabbix agent | net.if.in["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"] Preprocessing
|
| Interface {#IFNAME}: Interface type | It indicates the interface protocol type as a decimal value. See Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing
|
| 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 Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing
|
| 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/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 |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}: High error rate | It recovers when it is below 80% of the |
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}"} |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}: Link down | This trigger expression works as follows: |
{$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)) |
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/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) |
Info | Manual close: Yes Depends on:
|
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux?at=release/5.4
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | - |
90 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Number of CPUs | - |
ZABBIX_PASSIVE | system.cpu.num Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 | CPU utilization in % |
DEPENDENT | system.cpu.util Preprocessing: - JAVASCRIPT: |
| 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 | 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 CPU 'stolen' 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 (time spent running a virtual CPU for a guest operating system) |
ZABBIX_PASSIVE | system.cpu.util[,guest] |
| CPU | CPU guest nice time | Time spent running a niced guest (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 |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) | Per CPU load average is too high. Your system may be slow to respond. |
min(/Linux CPU by Zabbix agent/system.cpu.load[all,avg1],5m)/last(/Linux CPU by Zabbix agent/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux CPU by Zabbix agent/system.cpu.load[all,avg5])>0 and last(/Linux CPU by Zabbix agent/system.cpu.load[all,avg15])>0 |
AVERAGE | |
| High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | CPU utilization is too high. The system might be slow to respond. |
min(/Linux CPU by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
WARNING | Depends on: - Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(/dev |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(btrfs |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
^\s$ |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | - |
10 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | - |
20 |
| {$VFS.FS.PUSED.MAX.CRIT} | - |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | - |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of file systems of different types. |
ZABBIX_PASSIVE | vfs.fs.discovery Filter: AND- {#FSTYPE} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Filesystems | {#FSNAME}: Used space | Used storage in Bytes |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},used] |
| Filesystems | {#FSNAME}: Total space | Total space in Bytes |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},total] |
| Filesystems | {#FSNAME}: Space utilization | Space utilization in % for {#FSNAME} |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},pused] |
| Filesystems | {#FSNAME}: Free inodes in % | - |
ZABBIX_PASSIVE | vfs.fs.inode[{#FSNAME},pfree] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than 5G. - The disk will be full in less than 24 hours. |
last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<5G or timeleft(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than 10G. - The disk will be full in less than 24 hours. |
last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<10G or timeleft(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
min(/Linux filesystems by Zabbix agent/vfs.fs.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
AVERAGE | |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
min(/Linux filesystems by Zabbix agent/vfs.fs.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
WARNING | Depends on: - {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MEMORY.AVAILABLE.MIN} | This macro is used as a threshold in memory available trigger. |
20M |
| {$MEMORY.UTIL.MAX} | This macro is used as a threshold in memory utilization trigger. |
90 |
| {$SWAP.PFREE.MIN.WARN} | - |
50 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Memory | Memory utilization | Memory used percentage is calculated as (100-pavailable) |
DEPENDENT | vm.memory.utilization Preprocessing: - JAVASCRIPT: |
| Memory | Available memory in % | Available memory as percentage of total. See also Appendixes in Zabbix Documentation about parameters of the vm.memory.size item. |
ZABBIX_PASSIVE | vm.memory.size[pavailable] |
| Memory | Total memory | Total memory in Bytes |
ZABBIX_PASSIVE | vm.memory.size[total] |
| Memory | Available memory | 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 swap volume/file in bytes. |
ZABBIX_PASSIVE | system.swap.size[,total] |
| Memory | Free swap space | The free space of swap volume/file in bytes. |
ZABBIX_PASSIVE | system.swap.size[,free] |
| Memory | Free swap space in % | The free space of swap volume/file in percent. |
ZABBIX_PASSIVE | system.swap.size[,pfree] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) | The system is running out of free memory. |
min(/Linux memory by Zabbix agent/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | Depends on: - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
| Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) | - |
min(/Linux memory by Zabbix agent/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory by Zabbix agent/vm.memory.size[total])>0 |
AVERAGE | |
| High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free) | This trigger is ignored, if there is no swap configured |
min(/Linux memory by Zabbix agent/system.swap.size[,pfree],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux memory by Zabbix agent/system.swap.size[,total])>0 |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
`^(loop[0-9]* |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in ms) before the trigger would fire |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in ms) before the trigger would fire |
20 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | - |
ZABBIX_PASSIVE | vfs.dev.discovery Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#DEVTYPE} MATCHES_REGEX - {#DEVNAME} MATCHES_REGEX - {#DEVNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Storage | {#DEVNAME}: Disk read rate | r/s. The number (after merges) of read requests completed per second for the device. |
DEPENDENT | vfs.dev.read.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk write rate | w/s. The number (after merges) of write requests completed per second for the device. |
DEPENDENT | vfs.dev.write.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk read request avg waiting time (r_await) | This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
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 evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
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) | Current average disk queue, the number of requests outstanding on the disk at the time the performance data is collected. |
DEPENDENT | vfs.dev.queue_size[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Storage | {#DEVNAME}: Disk utilization | This item is the percentage of elapsed time that the selected disk drive was busy servicing read or writes requests. |
DEPENDENT | vfs.dev.util[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Zabbix_raw_items | {#DEVNAME}: Get stats | Get contents of /sys/block/{#DEVNAME}/stat for disk stats. |
ZABBIX_PASSIVE | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing: - JAVASCRIPT: |
| Zabbix_raw_items | {#DEVNAME}: Disk read time (rate) | Rate of total read time counter. Used in r_await calculation |
DEPENDENT | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Zabbix_raw_items | {#DEVNAME}: Disk write time (rate) | Rate of total write time counter. Used in w_await calculation |
DEPENDENT | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m) | This trigger might indicate disk {#DEVNAME} saturation. |
min(/Linux block devices by Zabbix agent/vfs.dev.read.await[{#DEVNAME}],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux block devices by Zabbix agent/vfs.dev.write.await[{#DEVNAME}],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | This macro is used as a threshold in interface utilization trigger. |
90 |
| {$IFCONTROL} | - |
1 |
| {$NET.IF.IFNAME.MATCHES} | - |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
`(^Software Loopback Interface |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of network interfaces. |
ZABBIX_PASSIVE | net.if.discovery Filter: AND- {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Network_interfaces | Interface {#IFNAME}: Bits received | - |
ZABBIX_PASSIVE | net.if.in["{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network_interfaces | Interface {#IFNAME}: Bits sent | - |
ZABBIX_PASSIVE | net.if.out["{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
| 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: |
| Network_interfaces | Interface {#IFNAME}: Interface type | 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: |
| Network interfaces | Interface {#IFNAME}: Speed | Indicates the interface latest or current speed value. Value is an integer representing the link speed in bits/sec. This attribute is only valid for 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: - DISCARD_UNCHANGED_HEARTBEAT: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}: High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%) | The network interface utilization is close to its estimated maximum bandwidth. |
(avg(/Linux network interfaces by Zabbix agent/net.if.in["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) or avg(/Linux network interfaces by Zabbix agent/net.if.out["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])) and last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0Recovery expression: avg(/Linux network interfaces by Zabbix agent/net.if.in["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) and avg(/Linux network interfaces by Zabbix agent/net.if.out["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux network interfaces 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 (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
min(/Linux network interfaces by Zabbix agent/net.if.in["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux network interfaces by Zabbix agent/net.if.out["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}Recovery expression: max(/Linux network interfaces by Zabbix agent/net.if.in["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Linux network interfaces 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. Can be triggered if operations status is down. 2. {$IFCONTROL:"{#IFNAME}"}=1 - 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) - 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. |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))Recovery expression: last(/Linux network interfaces 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. Ack to close. |
change(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])<0 and last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 and (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=6 or last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=1) and (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2) Recovery expression: (change(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 and last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"],#2)>0) or (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}: Link down |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$KERNEL.MAXFILES.MIN} | - |
256 |
| {$KERNEL.MAXPROC.MIN} | - |
1024 |
| {$SYSTEM.FUZZYTIME.MAX} | - |
60 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| General | System boot time | - |
ZABBIX_PASSIVE | system.boottime Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System local time | System local time of the host. |
ZABBIX_PASSIVE | system.localtime |
| General | System name | System host name. |
ZABBIX_PASSIVE | system.hostname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | The information as normally returned by 'uname -a'. |
ZABBIX_PASSIVE | system.uname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Number of logged in users | 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 sysctrl utility or modifying file /etc/sysctl.conf. |
ZABBIX_PASSIVE | kernel.maxfiles Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Maximum number of processes | It could be increased by using sysctrl utility or modifying file /etc/sysctl.conf. |
ZABBIX_PASSIVE | kernel.maxproc Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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: |
| Inventory | Operating system architecture | Operating system architecture of the host. |
ZABBIX_PASSIVE | system.sw.arch Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Inventory | Software installed | - |
ZABBIX_PASSIVE | system.sw.packages Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Security | Checksum of /etc/passwd | - |
ZABBIX_PASSIVE | vfs.file.cksum[/etc/passwd] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Status | System uptime | System uptime in 'N days, hh:mm:ss' format. |
ZABBIX_PASSIVE | system.uptime |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s) | The host system time is different from the Zabbix server time. |
fuzzytime(/Linux generic by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0 |
WARNING | Manual close: YES |
| System name has changed (new name: {ITEM.VALUE}) | System name has changed. Ack to close. |
last(/Linux generic by Zabbix agent/system.hostname,#1)<>last(/Linux generic by Zabbix agent/system.hostname,#2) and length(last(/Linux generic by Zabbix agent/system.hostname))>0 |
INFO | Manual close: YES |
| Configured max number of open filedescriptors is too low (< {$KERNEL.MAXFILES.MIN}) | - |
last(/Linux generic by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} |
INFO | |
| Configured max number of processes is too low (< {$KERNEL.MAXPROC.MIN}) | - |
last(/Linux generic by Zabbix agent/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} |
INFO | Depends on: - Getting closer to process limit (over 80% used) |
| Getting closer to process limit (over 80% used) | - |
last(/Linux generic by Zabbix agent/proc.num)/last(/Linux generic by Zabbix agent/kernel.maxproc)*100>80 |
WARNING | |
| Operating system description has changed | Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close. |
last(/Linux generic by Zabbix agent/system.sw.os,#1)<>last(/Linux generic by Zabbix agent/system.sw.os,#2) and length(last(/Linux generic by Zabbix agent/system.sw.os))>0 |
INFO | Manual close: YES Depends on: - System name has changed (new name: {ITEM.VALUE}) |
| /etc/passwd has been changed | - |
last(/Linux generic by Zabbix agent/vfs.file.cksum[/etc/passwd],#1)<>last(/Linux generic by Zabbix agent/vfs.file.cksum[/etc/passwd],#2) |
INFO | Manual close: YES Depends on: - Operating system description has changed - System name has changed (new name: {ITEM.VALUE}) |
| {HOST.NAME} has been restarted (uptime < 10m) | The host uptime is less than 10 minutes |
last(/Linux generic by Zabbix agent/system.uptime)<10m |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
New official Linux template. Requires agent of Zabbix 3.0.14, 3.4.5 and 4.0.0 or newer.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
| Name |
|---|
| Linux CPU by Zabbix agent |
| Linux block devices by Zabbix agent |
| Linux filesystems by Zabbix agent |
| Linux generic by Zabbix agent |
| Linux memory by Zabbix agent |
| Linux network interfaces by Zabbix agent |
| Zabbix agent |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux?at=release/5.0
For Zabbix version: 5.0 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | - |
90 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Number of CPUs | - |
ZABBIX_PASSIVE | system.cpu.num Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 | CPU utilization in %. |
DEPENDENT | system.cpu.util Preprocessing: - JAVASCRIPT: |
| 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 | 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 CPU 'stolen' 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 (time spent running a virtual CPU for a guest operating system). |
ZABBIX_PASSIVE | system.cpu.util[,guest] |
| CPU | CPU guest nice time | Time spent running a niced guest (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 |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) | Per CPU load average is too high. Your system may be slow to respond. |
{TEMPLATE_NAME:system.cpu.load[all,avg1].min(5m)}/{TEMPLATE_NAME:system.cpu.num.last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} and {TEMPLATE_NAME:system.cpu.load[all,avg5].last()}>0 and {TEMPLATE_NAME:system.cpu.load[all,avg15].last()}>0 |
AVERAGE | |
| High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | CPU utilization is too high. The system might be slow to respond. |
{TEMPLATE_NAME:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT} |
WARNING | Depends on: - Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 5.0 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.FS.FREE.MIN.CRIT} | The critical threshold of the filesystem utilization. |
5G |
| {$VFS.FS.FREE.MIN.WARN} | The warning threshold of the filesystem utilization. |
10G |
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(/dev |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(btrfs |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
^\s$ |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | - |
10 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | - |
20 |
| {$VFS.FS.PUSED.MAX.CRIT} | - |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | - |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of file systems of different types. |
ZABBIX_PASSIVE | vfs.fs.discovery Filter: AND- A: {#FSTYPE} MATCHES_REGEX - B: {#FSTYPE} NOT_MATCHES_REGEX - C: {#FSNAME} MATCHES_REGEX - D: {#FSNAME} NOT_MATCHES_REGEX Overrides: Skip metadata collection for dynamic FS |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Filesystems | {#FSNAME}: Used space | Used storage in Bytes |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},used] |
| Filesystems | {#FSNAME}: Total space | Total space in Bytes |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},total] |
| Filesystems | {#FSNAME}: Space utilization | Space utilization in % for {#FSNAME} |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},pused] |
| Filesystems | {#FSNAME}: Free inodes in % | - |
ZABBIX_PASSIVE | vfs.fs.inode[{#FSNAME},pfree] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}. 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. |
{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and (({TEMPLATE_NAME:vfs.fs.size[{#FSNAME},total].last()}-{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},used].last()})<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or {TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}. 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. |
{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and (({TEMPLATE_NAME:vfs.fs.size[{#FSNAME},total].last()}-{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},used].last()})<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or {TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
{TEMPLATE_NAME:vfs.fs.inode[{#FSNAME},pfree].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
AVERAGE | |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
{TEMPLATE_NAME:vfs.fs.inode[{#FSNAME},pfree].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
WARNING | Depends on: - {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 5.0 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MEMORY.AVAILABLE.MIN} | This macro is used as a threshold in memory available trigger. |
20M |
| {$MEMORY.UTIL.MAX} | This macro is used as a threshold in memory utilization trigger. |
90 |
| {$SWAP.PFREE.MIN.WARN} | - |
50 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Memory | Memory utilization | Memory used percentage is calculated as (100-pavailable) |
DEPENDENT | vm.memory.utilization Preprocessing: - JAVASCRIPT: |
| Memory | Available memory in % | Available memory as percentage of total. See also Appendixes in Zabbix Documentation about parameters of the vm.memory.size item. |
ZABBIX_PASSIVE | vm.memory.size[pavailable] |
| Memory | Total memory | Total memory in Bytes. |
ZABBIX_PASSIVE | vm.memory.size[total] |
| Memory | Available memory | 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 swap volume/file in bytes. |
ZABBIX_PASSIVE | system.swap.size[,total] |
| Memory | Free swap space | The free space of swap volume/file in bytes. |
ZABBIX_PASSIVE | system.swap.size[,free] |
| Memory | Free swap space in % | The free space of swap volume/file in percent. |
ZABBIX_PASSIVE | system.swap.size[,pfree] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) | The system is running out of free memory. |
{TEMPLATE_NAME:vm.memory.utilization.min(5m)}>{$MEMORY.UTIL.MAX} |
AVERAGE | Depends on: - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
| Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) | - |
{TEMPLATE_NAME:vm.memory.size[available].max(5m)}<{$MEMORY.AVAILABLE.MIN} and {TEMPLATE_NAME:vm.memory.size[total].last()}>0 |
AVERAGE | |
| High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free) | This trigger is ignored, if there is no swap configured. |
{TEMPLATE_NAME:system.swap.size[,pfree].max(5m)}<{$SWAP.PFREE.MIN.WARN} and {TEMPLATE_NAME:system.swap.size[,total].last()}>0 |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 5.0 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
`^(loop[0-9]* |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in ms) before the trigger would fire |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in ms) before the trigger would fire |
20 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | - |
ZABBIX_PASSIVE | vfs.dev.discovery Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- A: {#DEVTYPE} MATCHES_REGEX - B: {#DEVNAME} MATCHES_REGEX - C: {#DEVNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Storage | {#DEVNAME}: Disk read rate | r/s. The number (after merges) of read requests completed per second for the device. |
DEPENDENT | vfs.dev.read.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk write rate | w/s. The number (after merges) of write requests completed per second for the device. |
DEPENDENT | vfs.dev.write.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk read request avg waiting time (r_await) | This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
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 evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
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) | Current average disk queue, the number of requests outstanding on the disk at the time the performance data is collected. |
DEPENDENT | vfs.dev.queue_size[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Storage | {#DEVNAME}: Disk utilization | This item is the percentage of elapsed time that the selected disk drive was busy servicing read or writes requests. |
DEPENDENT | vfs.dev.util[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Zabbix_raw_items | {#DEVNAME}: Get stats | Get contents of /sys/block/{#DEVNAME}/stat for disk stats. |
ZABBIX_PASSIVE | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing: - JAVASCRIPT: |
| Zabbix_raw_items | {#DEVNAME}: Disk read time (rate) | Rate of total read time counter. Used in r_await calculation |
DEPENDENT | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Zabbix_raw_items | {#DEVNAME}: Disk write time (rate) | Rate of total write time counter. Used in w_await calculation |
DEPENDENT | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m) | This trigger might indicate disk {#DEVNAME} saturation. |
{TEMPLATE_NAME:vfs.dev.read.await[{#DEVNAME}].min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or {TEMPLATE_NAME:vfs.dev.write.await[{#DEVNAME}].min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 5.0 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | This macro is used as a threshold in interface utilization trigger. |
90 |
| {$IFCONTROL} | - |
1 |
| {$NET.IF.IFNAME.MATCHES} | - |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
`(^Software Loopback Interface |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of network interfaces. |
ZABBIX_PASSIVE | net.if.discovery Filter: AND- A: {#IFNAME} MATCHES_REGEX - B: {#IFNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Network_interfaces | Interface {#IFNAME}: Bits received | ZABBIX_PASSIVE | net.if.in["{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
|
| Network_interfaces | Interface {#IFNAME}: Bits sent | ZABBIX_PASSIVE | net.if.out["{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
|
| 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: |
| Network_interfaces | Interface {#IFNAME}: Interface type | 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: |
| Network_interfaces | Interface {#IFNAME}: Speed | Indicates the interface latest or current speed value. Value is an integer representing the link speed in bits/sec. This attribute is only valid for 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: - DISCARD_UNCHANGED_HEARTBEAT: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}: High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%) | The network interface utilization is close to its estimated maximum bandwidth. |
({TEMPLATE_NAME:net.if.in["{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()} or {TEMPLATE_NAME:net.if.out["{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()}) and {TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()}>0Recovery expression: {TEMPLATE_NAME:net.if.in["{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()} and {TEMPLATE_NAME:net.if.out["{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()} |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}: Link down |
| Interface {#IFNAME}: High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
{TEMPLATE_NAME:net.if.in["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {TEMPLATE_NAME:net.if.out["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}Recovery expression: {TEMPLATE_NAME:net.if.in["{#IFNAME}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {TEMPLATE_NAME:net.if.out["{#IFNAME}",errors].max(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. Can be triggered if operations status is down. 2. {$IFCONTROL:"{#IFNAME}"}=1 - 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) - 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. |
{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2 and {TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].diff()}=1)Recovery expression: {TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>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. Ack to close. |
{TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].change()}<0 and {TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()}>0 and ({TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].last()}=6 or {TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].last()}=1) and ({TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>2)Recovery expression: ({TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].change()}>0 and {TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].prev()}>0) or ({TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}: Link down |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 5.0 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$KERNEL.MAXFILES.MIN} | - |
256 |
| {$KERNEL.MAXPROC.MIN} | - |
1024 |
| {$SYSTEM.FUZZYTIME.MAX} | - |
60 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| General | System boot time | - |
ZABBIX_PASSIVE | system.boottime Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System local time | System local time of the host. |
ZABBIX_PASSIVE | system.localtime |
| General | System name | System host name. |
ZABBIX_PASSIVE | system.hostname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | The information as normally returned by 'uname -a'. |
ZABBIX_PASSIVE | system.uname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Number of logged in users | 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 file /etc/sysctl.conf. |
ZABBIX_PASSIVE | kernel.maxfiles Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Maximum number of processes | It could be increased by using sysctl utility or modifying file /etc/sysctl.conf. |
ZABBIX_PASSIVE | kernel.maxproc Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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: |
| Inventory | Operating system architecture | Operating system architecture of the host. |
ZABBIX_PASSIVE | system.sw.arch Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Inventory | Software installed | - |
ZABBIX_PASSIVE | system.sw.packages Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Security | Checksum of /etc/passwd | - |
ZABBIX_PASSIVE | vfs.file.cksum[/etc/passwd] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Status | System uptime | System uptime in 'N days, hh:mm:ss' format. |
ZABBIX_PASSIVE | system.uptime |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s) | The host system time is different from the Zabbix server time. |
{TEMPLATE_NAME:system.localtime.fuzzytime({$SYSTEM.FUZZYTIME.MAX})}=0 |
WARNING | Manual close: YES |
| System name has changed (new name: {ITEM.VALUE}) | System name has changed. Ack to close. |
{TEMPLATE_NAME:system.hostname.diff()}=1 and {TEMPLATE_NAME:system.hostname.strlen()}>0 |
INFO | Manual close: YES |
| Configured max number of open filedescriptors is too low (< {$KERNEL.MAXFILES.MIN}) | - |
{TEMPLATE_NAME:kernel.maxfiles.last()}<{$KERNEL.MAXFILES.MIN} |
INFO | |
| Configured max number of processes is too low (< {$KERNEL.MAXPROC.MIN}) | - |
{TEMPLATE_NAME:kernel.maxproc.last()}<{$KERNEL.MAXPROC.MIN} |
INFO | Depends on: - Getting closer to process limit (over 80% used) |
| Getting closer to process limit (over 80% used) | - |
{TEMPLATE_NAME:proc.num.last()}/{TEMPLATE_NAME:kernel.maxproc.last()}*100>80 |
WARNING | |
| Operating system description has changed | Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close. |
{TEMPLATE_NAME:system.sw.os.diff()}=1 and {TEMPLATE_NAME:system.sw.os.strlen()}>0 |
INFO | Manual close: YES Depends on: - System name has changed (new name: {ITEM.VALUE}) |
| /etc/passwd has been changed | - |
{TEMPLATE_NAME:vfs.file.cksum[/etc/passwd].diff()}>0 |
INFO | Manual close: YES Depends on: - Operating system description has changed - System name has changed (new name: {ITEM.VALUE}) |
| {HOST.NAME} has been restarted (uptime < 10m) | The host uptime is less than 10 minutes |
{TEMPLATE_NAME:system.uptime.last()}<10m |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 5.0 and higher.
New official Linux template. Requires agent of Zabbix 3.0.14, 3.4.5 and 4.0.0 or newer.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
| Name |
|---|
| Linux CPU by Zabbix agent |
| Linux block devices by Zabbix agent |
| Linux filesystems by Zabbix agent |
| Linux generic by Zabbix agent |
| Linux memory by Zabbix agent |
| Linux network interfaces by Zabbix agent |
| Zabbix agent |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
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.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_active?at=release/7.4
This is an official Linux template. It requires Zabbix agent 7.4 or newer.
pused = 100 - 100 * (available / total - free + available)Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Linux OS following Zabbix documentation.
| 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} | Critical threshold of CPU utilization expressed in %. |
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.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | The warning threshold of the filesystem metadata utilization. |
20 |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | The critical threshold of the filesystem metadata utilization. |
10 |
| {$VFS.FS.FSNAME.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSTYPE.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$MEMORY.UTIL.MAX} | Used as a thresholdin the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a thresholdin the memory available trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.READ.AWAIT.WARN} | The average response time (in ms) of disk read before the trigger fires. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | The average response time (in ms) of disk write before the trigger fires. |
20 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$KERNEL.MAXPROC.MIN} | 1024 |
|
| {$KERNEL.MAXFILES.MIN} | 256 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version of Zabbix agent running | Zabbix agent (active) | agent.version Preprocessing
|
|
| Host name of Zabbix agent running | Zabbix agent (active) | agent.hostname Preprocessing
|
|
| Zabbix agent ping | The agent always returns "1" for this item. May be used in combination with |
Zabbix agent (active) | agent.ping |
| Active agent availability | Availability of active checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - unknown 1 - available 2 - not available |
Zabbix internal | zabbix[host,active_agent,available] |
| Number of CPUs | Zabbix agent (active) | system.cpu.num Preprocessing
|
|
| Load average (1m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent (active) | system.cpu.load[all,avg1] |
| Load average (5m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent (active) | system.cpu.load[all,avg5] |
| Load average (15m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent (active) | system.cpu.load[all,avg15] |
| CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util Preprocessing
|
| CPU idle time | Time the CPU has spent doing nothing. |
Zabbix agent (active) | system.cpu.util[,idle] |
| CPU system time | Time the CPU has spent running the kernel and its processes. |
Zabbix agent (active) | system.cpu.util[,system] |
| CPU user time | Time the CPU has spent running users' processes that are not niced. |
Zabbix agent (active) | system.cpu.util[,user] |
| CPU nice time | Time the CPU has spent running users' processes that have been niced. |
Zabbix agent (active) | system.cpu.util[,nice] |
| CPU iowait time | Time the CPU has been waiting for I/O to complete. |
Zabbix agent (active) | system.cpu.util[,iowait] |
| 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] |
| CPU interrupt time | Time the CPU has spent servicing hardware interrupts. |
Zabbix agent (active) | system.cpu.util[,interrupt] |
| CPU softirq time | Time the CPU has been servicing software interrupts. |
Zabbix agent (active) | system.cpu.util[,softirq] |
| CPU guest time | Time spent on running a virtual CPU for a guest operating system. |
Zabbix agent (active) | system.cpu.util[,guest] |
| CPU guest nice time | 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] |
| Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
Zabbix agent (active) | system.cpu.switches Preprocessing
|
| Interrupts per second | Number of interrupts processed. |
Zabbix agent (active) | system.cpu.intr Preprocessing
|
| Get filesystems | The |
Zabbix agent (active) | vfs.fs.get |
| Memory utilization | The percentage of used memory is calculated as |
Dependent item | vm.memory.util Preprocessing
|
| Available memory in % | The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent (active) | vm.memory.size[pavailable] |
| Total memory | Total memory expressed in bytes. |
Zabbix agent (active) | vm.memory.size[total] |
| Available memory | The available memory: - in Linux = free + buffers + cache; - on other platforms calculation may vary. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent (active) | vm.memory.size[available] |
| Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent (active) | system.swap.size[,total] |
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Zabbix agent (active) | system.swap.size[,free] |
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Zabbix agent (active) | system.swap.size[,pfree] |
| System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent (active) | system.uptime |
| System boot time | Zabbix agent (active) | system.boottime Preprocessing
|
|
| System local time | The local system time of the host. |
Zabbix agent (active) | system.localtime |
| System name | The host name of the system. |
Zabbix agent (active) | system.hostname Preprocessing
|
| System description | The information as normally returned by |
Zabbix agent (active) | system.uname Preprocessing
|
| Number of logged in users | The number of users who are currently logged in. |
Zabbix agent (active) | system.users.num |
| Maximum number of open file descriptors | May be increased by using the |
Zabbix agent (active) | kernel.maxfiles Preprocessing
|
| Maximum number of processes | May be increased by using the |
Zabbix agent (active) | kernel.maxproc Preprocessing
|
| Number of processes | Zabbix agent (active) | proc.num | |
| Number of running processes | Zabbix agent (active) | proc.num[,,run] | |
| Checksum of /etc/passwd | Zabbix agent (active) | vfs.file.cksum[/etc/passwd,sha256] Preprocessing
|
|
| Operating system | Zabbix agent (active) | system.sw.os Preprocessing
|
|
| Operating system architecture | The architecture of the operating system. |
Zabbix agent (active) | system.sw.arch Preprocessing
|
| Number of installed packages | Zabbix agent (active) | system.sw.packages.get Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Zabbix agent is not available | For active agents, |
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 has not sent a heartbeat for a 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 | 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: High memory utilization | The system is running out of free memory. |
min(/Linux by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | The system is running out of 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: {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 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 | 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: 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: Number of installed packages has been changed | change(/Linux by Zabbix agent active/system.sw.packages.get)<>0 |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | The discovery of mounted filesystems with different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSNAME}]: Option: 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
|
| FS [{#FSNAME}]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSNAME}]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | Free metadata space expressed in %. |
Dependent item | vfs.fs.dependent.inode[{#FSNAME},pfree] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: FS [{#FSNAME}]: Filesystem has become read-only | The filesystem has become read-only, possibly due to an I/O error. 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 |
| Linux: FS [{#FSNAME}]: Space is critically low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent active/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent active/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Zabbix agent (active) | vfs.dev.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Get stats | The contents of get |
Zabbix agent (active) | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing
|
| {#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
|
| {#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
|
| {#DEVNAME}: Disk read time (rate) | The rate of total read time counter; used in |
Dependent item | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | The rate of total write time counter; used in |
Dependent item | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing
|
| {#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
|
| {#DEVNAME}: Disk utilization | 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
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | The discovery of network interfaces. |
Zabbix agent (active) | net.if.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}: Bits received | Zabbix agent (active) | net.if.in["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Bits sent | Zabbix agent (active) | net.if.out["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets with errors | Zabbix agent (active) | net.if.out["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets with errors | Zabbix agent (active) | net.if.in["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets discarded | Zabbix agent (active) | net.if.out["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets discarded | Zabbix agent (active) | net.if.in["{#IFNAME}",dropped] Preprocessing
|
|
| 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
|
| Interface {#IFNAME}: Interface type | It indicates the interface protocol type as a decimal value. See Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent (active) | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing
|
| 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 Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent (active) | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: 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:
|
| Linux: Interface {#IFNAME}: High error rate | It recovers when it is below 80% of the |
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:
|
| Linux: Interface {#IFNAME}: Link down | This trigger expression works as follows: |
{$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 |
| Linux: 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:
|
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_active?at=release/7.2
This is an official Linux template. It requires Zabbix agent 7.2 or newer.
pused = 100 - 100 * (available / total - free + available)Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Linux OS following Zabbix documentation.
| 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} | Critical threshold of CPU utilization expressed in %. |
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} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used for filesystem discovery. Can be overridden on the host or 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 |
| {$MEMORY.UTIL.MAX} | Used as a thresholdin the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a thresholdin the memory available trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.READ.AWAIT.WARN} | The average response time (in ms) of disk read before the trigger fires. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | The average response time (in ms) of disk write before the trigger fires. |
20 |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.DEV.DEVNAME.MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$KERNEL.MAXPROC.MIN} | 1024 |
|
| {$KERNEL.MAXFILES.MIN} | 256 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version of Zabbix agent running | Zabbix agent (active) | agent.version Preprocessing
|
|
| Host name of Zabbix agent running | Zabbix agent (active) | agent.hostname Preprocessing
|
|
| Zabbix agent ping | The agent always returns "1" for this item. May be used in combination with |
Zabbix agent (active) | agent.ping |
| Active agent availability | Availability of active checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - unknown 1 - available 2 - not available |
Zabbix internal | zabbix[host,active_agent,available] |
| Number of CPUs | Zabbix agent (active) | system.cpu.num Preprocessing
|
|
| Load average (1m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent (active) | system.cpu.load[all,avg1] |
| Load average (5m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent (active) | system.cpu.load[all,avg5] |
| Load average (15m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent (active) | system.cpu.load[all,avg15] |
| CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util Preprocessing
|
| CPU idle time | Time the CPU has spent doing nothing. |
Zabbix agent (active) | system.cpu.util[,idle] |
| CPU system time | Time the CPU has spent running the kernel and its processes. |
Zabbix agent (active) | system.cpu.util[,system] |
| CPU user time | Time the CPU has spent running users' processes that are not niced. |
Zabbix agent (active) | system.cpu.util[,user] |
| CPU nice time | Time the CPU has spent running users' processes that have been niced. |
Zabbix agent (active) | system.cpu.util[,nice] |
| CPU iowait time | Time the CPU has been waiting for I/O to complete. |
Zabbix agent (active) | system.cpu.util[,iowait] |
| 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] |
| CPU interrupt time | Time the CPU has spent servicing hardware interrupts. |
Zabbix agent (active) | system.cpu.util[,interrupt] |
| CPU softirq time | Time the CPU has been servicing software interrupts. |
Zabbix agent (active) | system.cpu.util[,softirq] |
| CPU guest time | Time spent on running a virtual CPU for a guest operating system. |
Zabbix agent (active) | system.cpu.util[,guest] |
| CPU guest nice time | 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] |
| Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
Zabbix agent (active) | system.cpu.switches Preprocessing
|
| Interrupts per second | Number of interrupts processed. |
Zabbix agent (active) | system.cpu.intr Preprocessing
|
| Get filesystems | The |
Zabbix agent (active) | vfs.fs.get |
| Memory utilization | The percentage of used memory is calculated as |
Dependent item | vm.memory.utilization Preprocessing
|
| Available memory in % | The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent (active) | vm.memory.size[pavailable] |
| Total memory | Total memory expressed in bytes. |
Zabbix agent (active) | vm.memory.size[total] |
| Available memory | The available memory: - in Linux = free + buffers + cache; - on other platforms calculation may vary. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent (active) | vm.memory.size[available] |
| Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent (active) | system.swap.size[,total] |
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Zabbix agent (active) | system.swap.size[,free] |
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Zabbix agent (active) | system.swap.size[,pfree] |
| System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent (active) | system.uptime |
| System boot time | Zabbix agent (active) | system.boottime Preprocessing
|
|
| System local time | The local system time of the host. |
Zabbix agent (active) | system.localtime |
| System name | The host name of the system. |
Zabbix agent (active) | system.hostname Preprocessing
|
| System description | The information as normally returned by |
Zabbix agent (active) | system.uname Preprocessing
|
| Number of logged in users | The number of users who are currently logged in. |
Zabbix agent (active) | system.users.num |
| Maximum number of open file descriptors | May be increased by using the |
Zabbix agent (active) | kernel.maxfiles Preprocessing
|
| Maximum number of processes | May be increased by using the |
Zabbix agent (active) | kernel.maxproc Preprocessing
|
| Number of processes | Zabbix agent (active) | proc.num | |
| Number of running processes | Zabbix agent (active) | proc.num[,,run] | |
| Checksum of /etc/passwd | Zabbix agent (active) | vfs.file.cksum[/etc/passwd,sha256] Preprocessing
|
|
| Operating system | Zabbix agent (active) | system.sw.os Preprocessing
|
|
| Operating system architecture | The architecture of the operating system. |
Zabbix agent (active) | system.sw.arch Preprocessing
|
| Number of installed packages | Zabbix agent (active) | system.sw.packages.get Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Zabbix agent is not available | For active agents, |
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 has not sent a heartbeat for a 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 | 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: 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 | The system is running out of 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: {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 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 | 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: 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: Number of installed packages has been changed | change(/Linux by Zabbix agent active/system.sw.packages.get)<>0 |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | The discovery of mounted filesystems with different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSNAME}]: Option: 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
|
| FS [{#FSNAME}]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSNAME}]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | Free metadata space expressed in %. |
Dependent item | vfs.fs.dependent.inode[{#FSNAME},pfree] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: FS [{#FSNAME}]: Filesystem has become read-only | The filesystem has become read-only, possibly due to an I/O error. 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 |
| Linux: FS [{#FSNAME}]: Space is critically low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent active/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent active/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Zabbix agent (active) | vfs.dev.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Get stats | The contents of get |
Zabbix agent (active) | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing
|
| {#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
|
| {#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
|
| {#DEVNAME}: Disk read time (rate) | The rate of total read time counter; used in |
Dependent item | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | The rate of total write time counter; used in |
Dependent item | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing
|
| {#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
|
| {#DEVNAME}: Disk utilization | 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
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | The discovery of network interfaces. |
Zabbix agent (active) | net.if.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}: Bits received | Zabbix agent (active) | net.if.in["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Bits sent | Zabbix agent (active) | net.if.out["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets with errors | Zabbix agent (active) | net.if.out["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets with errors | Zabbix agent (active) | net.if.in["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets discarded | Zabbix agent (active) | net.if.out["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets discarded | Zabbix agent (active) | net.if.in["{#IFNAME}",dropped] Preprocessing
|
|
| 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
|
| Interface {#IFNAME}: Interface type | It indicates the interface protocol type as a decimal value. See Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent (active) | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing
|
| 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 Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent (active) | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: 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:
|
| Linux: Interface {#IFNAME}: High error rate | It recovers when it is below 80% of the |
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:
|
| Linux: Interface {#IFNAME}: Link down | This trigger expression works as follows: |
{$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 |
| Linux: 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:
|
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_active?at=release/7.0
This is an official Linux template. It requires Zabbix agent 7.0 or newer.
pused = 100 - 100 * (available / total - free + available)Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Linux OS following Zabbix documentation.
| 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} | Critical threshold of CPU utilization expressed in %. |
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} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used for filesystem discovery. Can be overridden on the host or 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 |
| {$MEMORY.UTIL.MAX} | Used as a thresholdin the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a thresholdin the memory available trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.READ.AWAIT.WARN} | The average response time (in ms) of disk read before the trigger fires. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | The average response time (in ms) of disk write before the trigger fires. |
20 |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.DEV.DEVNAME.MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$KERNEL.MAXPROC.MIN} | 1024 |
|
| {$KERNEL.MAXFILES.MIN} | 256 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version of Zabbix agent running | Zabbix agent (active) | agent.version Preprocessing
|
|
| Host name of Zabbix agent running | Zabbix agent (active) | agent.hostname Preprocessing
|
|
| Zabbix agent ping | The agent always returns "1" for this item. May be used in combination with |
Zabbix agent (active) | agent.ping |
| Active agent availability | Availability of active checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - unknown 1 - available 2 - not available |
Zabbix internal | zabbix[host,active_agent,available] |
| Number of CPUs | Zabbix agent (active) | system.cpu.num Preprocessing
|
|
| Load average (1m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent (active) | system.cpu.load[all,avg1] |
| Load average (5m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent (active) | system.cpu.load[all,avg5] |
| Load average (15m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent (active) | system.cpu.load[all,avg15] |
| CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util Preprocessing
|
| CPU idle time | Time the CPU has spent doing nothing. |
Zabbix agent (active) | system.cpu.util[,idle] |
| CPU system time | Time the CPU has spent running the kernel and its processes. |
Zabbix agent (active) | system.cpu.util[,system] |
| CPU user time | Time the CPU has spent running users' processes that are not niced. |
Zabbix agent (active) | system.cpu.util[,user] |
| CPU nice time | Time the CPU has spent running users' processes that have been niced. |
Zabbix agent (active) | system.cpu.util[,nice] |
| CPU iowait time | Time the CPU has been waiting for I/O to complete. |
Zabbix agent (active) | system.cpu.util[,iowait] |
| 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] |
| CPU interrupt time | Time the CPU has spent servicing hardware interrupts. |
Zabbix agent (active) | system.cpu.util[,interrupt] |
| CPU softirq time | Time the CPU has been servicing software interrupts. |
Zabbix agent (active) | system.cpu.util[,softirq] |
| CPU guest time | Time spent on running a virtual CPU for a guest operating system. |
Zabbix agent (active) | system.cpu.util[,guest] |
| CPU guest nice time | 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] |
| Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
Zabbix agent (active) | system.cpu.switches Preprocessing
|
| Interrupts per second | Number of interrupts processed. |
Zabbix agent (active) | system.cpu.intr Preprocessing
|
| Get filesystems | The |
Zabbix agent (active) | vfs.fs.get |
| Memory utilization | The percentage of used memory is calculated as |
Dependent item | vm.memory.util Preprocessing
|
| Available memory in % | The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent (active) | vm.memory.size[pavailable] |
| Total memory | Total memory expressed in bytes. |
Zabbix agent (active) | vm.memory.size[total] |
| Available memory | The available memory: - in Linux = free + buffers + cache; - on other platforms calculation may vary. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent (active) | vm.memory.size[available] |
| Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent (active) | system.swap.size[,total] |
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Zabbix agent (active) | system.swap.size[,free] |
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Zabbix agent (active) | system.swap.size[,pfree] |
| System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent (active) | system.uptime |
| System boot time | Zabbix agent (active) | system.boottime Preprocessing
|
|
| System local time | The local system time of the host. |
Zabbix agent (active) | system.localtime |
| System name | The host name of the system. |
Zabbix agent (active) | system.hostname Preprocessing
|
| System description | The information as normally returned by |
Zabbix agent (active) | system.uname Preprocessing
|
| Number of logged in users | The number of users who are currently logged in. |
Zabbix agent (active) | system.users.num |
| Maximum number of open file descriptors | May be increased by using the |
Zabbix agent (active) | kernel.maxfiles Preprocessing
|
| Maximum number of processes | May be increased by using the |
Zabbix agent (active) | kernel.maxproc Preprocessing
|
| Number of processes | Zabbix agent (active) | proc.num | |
| Number of running processes | Zabbix agent (active) | proc.num[,,run] | |
| Checksum of /etc/passwd | Zabbix agent (active) | vfs.file.cksum[/etc/passwd,sha256] Preprocessing
|
|
| Operating system | Zabbix agent (active) | system.sw.os Preprocessing
|
|
| Operating system architecture | The architecture of the operating system. |
Zabbix agent (active) | system.sw.arch Preprocessing
|
| Number of installed packages | Zabbix agent (active) | system.sw.packages.get Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Zabbix agent is not available | For active agents, |
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 has not sent a heartbeat for a 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 | 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: High memory utilization | The system is running out of free memory. |
min(/Linux by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | The system is running out of 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: {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 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 | 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: 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: Number of installed packages has been changed | change(/Linux by Zabbix agent active/system.sw.packages.get)<>0 |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | The discovery of mounted filesystems with different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSNAME}]: Option: 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
|
| FS [{#FSNAME}]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSNAME}]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | Free metadata space expressed in %. |
Dependent item | vfs.fs.dependent.inode[{#FSNAME},pfree] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: FS [{#FSNAME}]: Filesystem has become read-only | The filesystem has become read-only, possibly due to an I/O error. 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 |
| Linux: FS [{#FSNAME}]: Space is critically low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent active/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent active/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Zabbix agent (active) | vfs.dev.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Get stats | The contents of get |
Zabbix agent (active) | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing
|
| {#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
|
| {#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
|
| {#DEVNAME}: Disk read time (rate) | The rate of total read time counter; used in |
Dependent item | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | The rate of total write time counter; used in |
Dependent item | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing
|
| {#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
|
| {#DEVNAME}: Disk utilization | 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
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | The discovery of network interfaces. |
Zabbix agent (active) | net.if.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}: Bits received | Zabbix agent (active) | net.if.in["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Bits sent | Zabbix agent (active) | net.if.out["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets with errors | Zabbix agent (active) | net.if.out["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets with errors | Zabbix agent (active) | net.if.in["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets discarded | Zabbix agent (active) | net.if.out["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets discarded | Zabbix agent (active) | net.if.in["{#IFNAME}",dropped] Preprocessing
|
|
| 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
|
| Interface {#IFNAME}: Interface type | It indicates the interface protocol type as a decimal value. See Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent (active) | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing
|
| 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 Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent (active) | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: 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:
|
| Linux: Interface {#IFNAME}: High error rate | It recovers when it is below 80% of the |
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:
|
| Linux: Interface {#IFNAME}: Link down | This trigger expression works as follows: |
{$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 |
| Linux: 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:
|
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_active?at=release/6.4
This is an official Linux template. It requires Zabbix agent 6.4 or newer.
pused = 100 - 100 * (available / total - free + available)Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Linux OS following Zabbix documentation.
| 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} | Critical threshold of CPU utilization expressed in %. |
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} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.MATCHES} | Used for filesystem discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used for filesystem discovery. Can be overridden on the host or 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 |
| {$MEMORY.UTIL.MAX} | Used as a thresholdin the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a thresholdin the memory available trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.READ.AWAIT.WARN} | The average response time (in ms) of disk read before the trigger fires. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | The average response time (in ms) of disk write before the trigger fires. |
20 |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.DEV.DEVNAME.MATCHES} | Used for block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$KERNEL.MAXPROC.MIN} | 1024 |
|
| {$KERNEL.MAXFILES.MIN} | 256 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Linux: Version of Zabbix agent running | Zabbix agent (active) | agent.version Preprocessing
|
|
| Linux: Host name of Zabbix agent running | Zabbix agent (active) | agent.hostname Preprocessing
|
|
| 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
|
|
| Linux: Load average (1m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent (active) | system.cpu.load[all,avg1] |
| Linux: Load average (5m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent (active) | system.cpu.load[all,avg5] |
| Linux: Load average (15m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Zabbix agent (active) | system.cpu.load[all,avg15] |
| Linux: CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util Preprocessing
|
| Linux: CPU idle time | Time the CPU has spent doing nothing. |
Zabbix agent (active) | system.cpu.util[,idle] |
| Linux: CPU system time | Time the CPU has spent running the kernel and its processes. |
Zabbix agent (active) | system.cpu.util[,system] |
| Linux: CPU user time | Time the CPU has spent running users' processes that are not niced. |
Zabbix agent (active) | system.cpu.util[,user] |
| Linux: CPU nice time | Time the CPU has spent running users' processes that have been niced. |
Zabbix agent (active) | system.cpu.util[,nice] |
| Linux: CPU iowait time | 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 | Time the CPU has spent servicing hardware interrupts. |
Zabbix agent (active) | system.cpu.util[,interrupt] |
| Linux: CPU softirq time | Time the CPU has been servicing software interrupts. |
Zabbix agent (active) | system.cpu.util[,softirq] |
| Linux: CPU guest time | Time spent on running a virtual CPU for a guest operating system. |
Zabbix agent (active) | system.cpu.util[,guest] |
| Linux: CPU guest nice time | 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 | The combined rate at which all processors on the computer are switched from one thread to another. |
Zabbix agent (active) | system.cpu.switches Preprocessing
|
| Linux: Interrupts per second | Number of interrupts processed. |
Zabbix agent (active) | system.cpu.intr Preprocessing
|
| Linux: Get filesystems | The |
Zabbix agent (active) | vfs.fs.get |
| Linux: Memory utilization | The percentage of used memory is calculated as |
Dependent item | vm.memory.utilization Preprocessing
|
| Linux: Available memory in % | The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the |
Zabbix agent (active) | vm.memory.size[pavailable] |
| Linux: Total memory | Total memory expressed in bytes. |
Zabbix agent (active) | vm.memory.size[total] |
| Linux: Available memory | The available memory: - in Linux = free + buffers + cache; - on other platforms calculation may vary. See also Appendixes in Zabbix Documentation about parameters of the |
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
|
|
| 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
|
| Linux: System description | The information as normally returned by |
Zabbix agent (active) | system.uname Preprocessing
|
| 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 | May be increased by using the |
Zabbix agent (active) | kernel.maxfiles Preprocessing
|
| Linux: Maximum number of processes | May be increased by using the |
Zabbix agent (active) | kernel.maxproc Preprocessing
|
| 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
|
|
| Linux: Operating system | Zabbix agent (active) | system.sw.os Preprocessing
|
|
| Linux: Operating system architecture | The architecture of the operating system. |
Zabbix agent (active) | system.sw.arch Preprocessing
|
| Linux: Number of installed packages | Zabbix agent (active) | system.sw.packages.get Preprocessing
|
| 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 | 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: 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 | The system is running out of 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: {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 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 | 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: 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: Number of installed packages has been changed | change(/Linux by Zabbix agent active/system.sw.packages.get)<>0 |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | The discovery of mounted filesystems with different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSNAME}]: Option: 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
|
| FS [{#FSNAME}]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSNAME}]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | Free metadata space expressed in %. |
Dependent item | vfs.fs.dependent.inode[{#FSNAME},pfree] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| FS [{#FSNAME}]: Filesystem has become read-only | The filesystem has become read-only, possibly due to an I/O error. 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 |
| FS [{#FSNAME}]: Space is critically low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| FS [{#FSNAME}]: Space is low | The volume's space usage exceeds the |
min(/Linux by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent active/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Zabbix agent active/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Zabbix agent (active) | vfs.dev.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Get stats | The contents of get |
Zabbix agent (active) | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing
|
| {#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
|
| {#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
|
| {#DEVNAME}: Disk read time (rate) | The rate of total read time counter; used in |
Dependent item | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | The rate of total write time counter; used in |
Dependent item | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing
|
| {#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
|
| {#DEVNAME}: Disk utilization | 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
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | The discovery of network interfaces. |
Zabbix agent (active) | net.if.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}: Bits received | Zabbix agent (active) | net.if.in["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Bits sent | Zabbix agent (active) | net.if.out["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets with errors | Zabbix agent (active) | net.if.out["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets with errors | Zabbix agent (active) | net.if.in["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets discarded | Zabbix agent (active) | net.if.out["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets discarded | Zabbix agent (active) | net.if.in["{#IFNAME}",dropped] Preprocessing
|
|
| 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
|
| Interface {#IFNAME}: Interface type | It indicates the interface protocol type as a decimal value. See Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent (active) | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing
|
| 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 Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent (active) | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing
|
| 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}: High error rate | It recovers when it is below 80% of the |
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 | This trigger expression works as follows: |
{$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:
|
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_active?at=release/6.2
For Zabbix version: 6.2 and higher. New official Linux template. Requires agent of Zabbix 3.0.14, 3.4.5 and 4.0.0 or newer.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
| 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 |
| {$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} | 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 |
| {$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]* |
| {$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 critical 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 |
| {$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 |
| {$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} | - |
10 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | - |
20 |
| {$VFS.FS.PUSED.MAX.CRIT} | - |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | - |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | - |
ZABBIX_ACTIVE | vfs.dev.discovery Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#DEVTYPE} MATCHES_REGEX - {#DEVNAME} MATCHES_REGEX - {#DEVNAME} NOT_MATCHES_REGEX |
| Mounted filesystem discovery | Discovery of file systems of different types. |
ZABBIX_ACTIVE | vfs.fs.discovery Filter: AND- {#FSTYPE} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX Overrides: Skip metadata collection for dynamic FS |
| Network interface discovery | The discovery of network interfaces. |
ZABBIX_ACTIVE | net.if.discovery Filter: AND- {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Number of CPUs | - |
ZABBIX_ACTIVE | system.cpu.num Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| CPU | Load average (1m avg) | - |
ZABBIX_ACTIVE | system.cpu.load[all,avg1] |
| CPU | Load average (5m avg) | - |
ZABBIX_ACTIVE | system.cpu.load[all,avg5] |
| CPU | Load average (15m avg) | - |
ZABBIX_ACTIVE | system.cpu.load[all,avg15] |
| CPU | CPU utilization | The CPU utilization expressed in %. |
DEPENDENT | system.cpu.util Preprocessing: - JAVASCRIPT: |
| CPU | CPU idle time | The time the CPU has spent doing nothing. |
ZABBIX_ACTIVE | system.cpu.util[,idle] |
| CPU | CPU system time | The time the CPU has spent running the kernel and its processes. |
ZABBIX_ACTIVE | system.cpu.util[,system] |
| CPU | CPU user time | The time the CPU has spent running users' processes that are not niced. |
ZABBIX_ACTIVE | system.cpu.util[,user] |
| CPU | CPU nice time | The time the CPU has spent running users' processes that have been niced. |
ZABBIX_ACTIVE | system.cpu.util[,nice] |
| CPU | CPU iowait time | The amount of time the CPU has been waiting for I/O to complete. |
ZABBIX_ACTIVE | 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_ACTIVE | system.cpu.util[,steal] |
| CPU | CPU interrupt time | The amount of time the CPU has been servicing hardware interrupts. |
ZABBIX_ACTIVE | system.cpu.util[,interrupt] |
| CPU | CPU softirq time | The amount of time the CPU has been servicing software interrupts. |
ZABBIX_ACTIVE | system.cpu.util[,softirq] |
| CPU | CPU guest time | Guest time - the time spent on running a virtual CPU for a guest operating system. |
ZABBIX_ACTIVE | 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_ACTIVE | system.cpu.util[,guest_nice] |
| CPU | Context switches per second | - |
ZABBIX_ACTIVE | system.cpu.switches Preprocessing: - CHANGE_PER_SECOND |
| CPU | Interrupts per second | - |
ZABBIX_ACTIVE | system.cpu.intr Preprocessing: - CHANGE_PER_SECOND |
| Filesystems | {#FSNAME}: Used space | Used storage expressed in Bytes |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},used] |
| Filesystems | {#FSNAME}: Total space | The total space expressed in Bytes. |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},total] |
| Filesystems | {#FSNAME}: Space utilization | The space utilization expressed in % for {#FSNAME}. |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},pused] |
| Filesystems | {#FSNAME}: Free inodes in % | - |
ZABBIX_ACTIVE | vfs.fs.inode[{#FSNAME},pfree] |
| General | System boot time | - |
ZABBIX_ACTIVE | system.boottime Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System local time | The local system time of the host. |
ZABBIX_ACTIVE | system.localtime |
| General | System name | The host name of the system. |
ZABBIX_ACTIVE | system.hostname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | The information as normally returned by 'uname -a'. |
ZABBIX_ACTIVE | system.uname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Number of logged in users | The number of users who are currently logged in. |
ZABBIX_ACTIVE | 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_ACTIVE | kernel.maxfiles Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Maximum number of processes | It could be increased by using sysctl utility or modifying the file /etc/sysctl.conf. |
ZABBIX_ACTIVE | kernel.maxproc Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Number of processes | - |
ZABBIX_ACTIVE | proc.num |
| General | Number of running processes | - |
ZABBIX_ACTIVE | proc.num[,,run] |
| Inventory | Operating system | - |
ZABBIX_ACTIVE | system.sw.os Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Inventory | Operating system architecture | The architecture of the host's operating system. |
ZABBIX_ACTIVE | system.sw.arch Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Inventory | Software installed | - |
ZABBIX_ACTIVE | system.sw.packages Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Memory | Memory utilization | The percentage of used memory is calculated as 100-pavailable. |
DEPENDENT | vm.memory.utilization Preprocessing: - JAVASCRIPT: |
| 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_ACTIVE | vm.memory.size[pavailable] |
| Memory | Total memory | The total memory expressed in Bytes. |
ZABBIX_ACTIVE | 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_ACTIVE | vm.memory.size[available] |
| Memory | Total swap space | The total space of the swap volume/file expressed in bytes. |
ZABBIX_ACTIVE | system.swap.size[,total] |
| Memory | Free swap space | The free space of the swap volume/file expressed in bytes. |
ZABBIX_ACTIVE | system.swap.size[,free] |
| Memory | Free swap space in % | The free space of the swap volume/file expressed in %. |
ZABBIX_ACTIVE | system.swap.size[,pfree] |
| Monitoring agent | Version of Zabbix agent running | - |
ZABBIX_ACTIVE | agent.version Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Monitoring agent | Host name of Zabbix agent running | - |
ZABBIX_ACTIVE | agent.hostname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Monitoring agent | 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 |
INTERNAL | zabbix[host,active_agent,available] |
| Network interfaces | Interface {#IFNAME}: Bits received | - |
ZABBIX_ACTIVE | net.if.in["{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network interfaces | Interface {#IFNAME}: Bits sent | - |
ZABBIX_ACTIVE | net.if.out["{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network interfaces | Interface {#IFNAME}: Outbound packets with errors | - |
ZABBIX_ACTIVE | net.if.out["{#IFNAME}",errors] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}: Inbound packets with errors | - |
ZABBIX_ACTIVE | net.if.in["{#IFNAME}",errors] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}: Outbound packets discarded | - |
ZABBIX_ACTIVE | net.if.out["{#IFNAME}",dropped] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}: Inbound packets discarded | - |
ZABBIX_ACTIVE | 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_ACTIVE | vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"] Preprocessing: - JAVASCRIPT: |
| 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_ACTIVE | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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_ACTIVE | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
| Security | Checksum of /etc/passwd | - |
ZABBIX_ACTIVE | vfs.file.cksum[/etc/passwd,sha256] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Status | System uptime | The system uptime expressed in the following format:'N days, hh:mm:ss'. |
ZABBIX_ACTIVE | system.uptime |
| Status | Zabbix agent ping | The agent always returns 1 for this item. It could be used in combination with nodata() for availability check. |
ZABBIX_ACTIVE | agent.ping |
| 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: - 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: - 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: - CHANGE_PER_SECOND - MULTIPLIER: |
| 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: - CHANGE_PER_SECOND - MULTIPLIER: |
| Zabbix raw items | {#DEVNAME}: Get stats | The contents of get /sys/block/{#DEVNAME}/stat to get the disk statistics. |
ZABBIX_ACTIVE | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing: - JAVASCRIPT: |
| 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: - CHANGE_PER_SECOND - MULTIPLIER: |
| 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: - CHANGE_PER_SECOND - MULTIPLIER: |
| 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 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 | |
| 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: - Load average is too high |
| {#FSNAME}: Disk space is critically low | Two conditions should match: 1. The first condition - utilization of 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.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Linux by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Linux by Zabbix agent active/vfs.fs.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 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 active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Linux by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Linux by Zabbix agent active/vfs.fs.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. 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.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. 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.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 active/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. |
last(/Linux by Zabbix agent active/system.hostname,#1)<>last(/Linux by Zabbix agent active/system.hostname,#2) and length(last(/Linux by Zabbix agent active/system.hostname))>0 |
INFO | Manual close: YES |
| Configured max number of open filedescriptors is too low | - |
last(/Linux by Zabbix agent active/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} |
INFO | |
| Configured max number of processes is too low | - |
last(/Linux by Zabbix agent active/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} |
INFO | Depends on: - Getting closer to process limit |
| Getting closer to process limit | - |
last(/Linux by Zabbix agent active/proc.num)/last(/Linux by Zabbix agent active/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. |
last(/Linux by Zabbix agent active/system.sw.os,#1)<>last(/Linux by Zabbix agent active/system.sw.os,#2) and length(last(/Linux by Zabbix agent active/system.sw.os))>0 |
INFO | Manual close: YES Depends on: - System name has changed |
| 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: - Lack of available memory |
| 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 | |
| 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: - High memory utilization - Lack of available memory |
| Zabbix agent: 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 | |
| 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"])>0Recovery expression: avg(/Linux by Zabbix agent active/net.if.in["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) and avg(/Linux by Zabbix agent active/net.if.out["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Zabbix agent active/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 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}"}Recovery expression: max(/Linux by Zabbix agent active/net.if.in["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Linux by Zabbix agent active/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 'ethernal 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))Recovery expression: last(/Linux by Zabbix agent active/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 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) Recovery expression: (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"],#2)>0) or (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 |
| /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: - 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 active/system.uptime)<10m |
WARNING | Manual close: YES |
| 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 |
| {#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 |
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.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_active?at=release/6.0
New official Linux template. Requires agent of Zabbix 6.0 or newer.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Linux OS following Zabbix documentation.
| Name | Description | Default |
|---|---|---|
| {$AGENT.NODATA_TIMEOUT} | No data timeout for active agents. Consider to keep it relatively high. |
30m |
| {$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.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 |
Macro too long. Please see the template. |
| {$IF.UTIL.MAX} | This macro is used as a threshold in the interface utilization trigger. |
90 |
| {$KERNEL.MAXPROC.MIN} | 1024 |
|
| {$KERNEL.MAXFILES.MIN} | 256 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Linux: Version of Zabbix agent running | Zabbix agent (active) | agent.version Preprocessing
|
|
| Linux: Host name of Zabbix agent running | Zabbix agent (active) | agent.hostname Preprocessing
|
|
| 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: Number of CPUs | Zabbix agent (active) | system.cpu.num Preprocessing
|
|
| 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
|
| 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
|
|
| Linux: Interrupts per second | Zabbix agent (active) | system.cpu.intr Preprocessing
|
|
| Linux: Memory utilization | The percentage of used memory is calculated as |
Dependent item | vm.memory.utilization Preprocessing
|
| Linux: Available memory in % | The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the |
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 |
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
|
|
| 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
|
| Linux: System description | The information as normally returned by |
Zabbix agent (active) | system.uname Preprocessing
|
| 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 |
Zabbix agent (active) | kernel.maxfiles Preprocessing
|
| Linux: Maximum number of processes | It could be increased by using |
Zabbix agent (active) | kernel.maxproc Preprocessing
|
| 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
|
|
| Linux: Operating system | Zabbix agent (active) | system.sw.os Preprocessing
|
|
| Linux: Operating system architecture | The architecture of the operating system. |
Zabbix agent (active) | system.sw.arch Preprocessing
|
| Linux: Software installed | Zabbix agent (active) | system.sw.packages Preprocessing
|
| 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: 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: 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 | 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: {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 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 | 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: 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:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | The discovery of mounted filesystems with different types. |
Zabbix agent (active) | vfs.fs.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FSNAME}: Used space | Used storage in bytes |
Zabbix agent (active) | vfs.fs.size[{#FSNAME},used] |
| {#FSNAME}: Total space | Total space in bytes |
Zabbix agent (active) | vfs.fs.size[{#FSNAME},total] |
| {#FSNAME}: Space utilization | The space utilization expressed in % for {#FSNAME}. |
Zabbix agent (active) | vfs.fs.size[{#FSNAME},pused] |
| {#FSNAME}: Free inodes in % | Zabbix agent (active) | vfs.fs.inode[{#FSNAME},pfree] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low | The volume's space usage exceeds the |
last(/Linux by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| {#FSNAME}: Disk space is low | The volume's space usage exceeds the |
last(/Linux by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| {#FSNAME}: Running out of free inodes | It may become impossible to write to a disk if there are no index nodes left. |
min(/Linux by Zabbix agent active/vfs.fs.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. |
min(/Linux by Zabbix agent active/vfs.fs.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Zabbix agent (active) | vfs.dev.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Get stats | The contents of get |
Zabbix agent (active) | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing
|
| {#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
|
| {#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
|
| {#DEVNAME}: Disk read time (rate) | The rate of total read time counter; used in |
Dependent item | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | The rate of total write time counter; used in |
Dependent item | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing
|
| {#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
|
| {#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
|
| 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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | The discovery of network interfaces. |
Zabbix agent (active) | net.if.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}: Bits received | Zabbix agent (active) | net.if.in["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Bits sent | Zabbix agent (active) | net.if.out["{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets with errors | Zabbix agent (active) | net.if.out["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets with errors | Zabbix agent (active) | net.if.in["{#IFNAME}",errors] Preprocessing
|
|
| Interface {#IFNAME}: Outbound packets discarded | Zabbix agent (active) | net.if.out["{#IFNAME}",dropped] Preprocessing
|
|
| Interface {#IFNAME}: Inbound packets discarded | Zabbix agent (active) | net.if.in["{#IFNAME}",dropped] Preprocessing
|
|
| 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
|
| Interface {#IFNAME}: Interface type | It indicates the interface protocol type as a decimal value. See Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent (active) | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing
|
| 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 Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
Zabbix agent (active) | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing
|
| 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}: High error rate | It recovers when it is below 80% of the |
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 | This trigger expression works as follows: |
{$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:
|
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_active?at=release/5.4
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | - |
90 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Number of CPUs | - |
ZABBIX_ACTIVE | system.cpu.num Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| CPU | Load average (1m avg) | - |
ZABBIX_ACTIVE | system.cpu.load[all,avg1] |
| CPU | Load average (5m avg) | - |
ZABBIX_ACTIVE | system.cpu.load[all,avg5] |
| CPU | Load average (15m avg) | - |
ZABBIX_ACTIVE | system.cpu.load[all,avg15] |
| CPU | CPU utilization | CPU utilization in % |
DEPENDENT | system.cpu.util Preprocessing: - JAVASCRIPT: |
| CPU | CPU idle time | The time the CPU has spent doing nothing. |
ZABBIX_ACTIVE | system.cpu.util[,idle] |
| CPU | CPU system time | The time the CPU has spent running the kernel and its processes. |
ZABBIX_ACTIVE | system.cpu.util[,system] |
| CPU | CPU user time | The time the CPU has spent running users' processes that are not niced. |
ZABBIX_ACTIVE | system.cpu.util[,user] |
| CPU | CPU nice time | The time the CPU has spent running users' processes that have been niced. |
ZABBIX_ACTIVE | system.cpu.util[,nice] |
| CPU | CPU iowait time | Amount of time the CPU has been waiting for I/O to complete. |
ZABBIX_ACTIVE | system.cpu.util[,iowait] |
| CPU | CPU steal time | The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine). |
ZABBIX_ACTIVE | system.cpu.util[,steal] |
| CPU | CPU interrupt time | The amount of time the CPU has been servicing hardware interrupts. |
ZABBIX_ACTIVE | system.cpu.util[,interrupt] |
| CPU | CPU softirq time | The amount of time the CPU has been servicing software interrupts. |
ZABBIX_ACTIVE | system.cpu.util[,softirq] |
| CPU | CPU guest time | Guest time (time spent running a virtual CPU for a guest operating system) |
ZABBIX_ACTIVE | system.cpu.util[,guest] |
| CPU | CPU guest nice time | Time spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel) |
ZABBIX_ACTIVE | system.cpu.util[,guest_nice] |
| CPU | Context switches per second | - |
ZABBIX_ACTIVE | system.cpu.switches Preprocessing: - CHANGE_PER_SECOND |
| CPU | Interrupts per second | - |
ZABBIX_ACTIVE | system.cpu.intr Preprocessing: - CHANGE_PER_SECOND |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) | Per CPU load average is too high. Your system may be slow to respond. |
min(/Linux CPU by Zabbix agent active/system.cpu.load[all,avg1],5m)/last(/Linux CPU by Zabbix agent active/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux CPU by Zabbix agent active/system.cpu.load[all,avg5])>0 and last(/Linux CPU by Zabbix agent active/system.cpu.load[all,avg15])>0 |
AVERAGE | |
| High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | CPU utilization is too high. The system might be slow to respond. |
min(/Linux CPU by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
WARNING | Depends on: - Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(/dev |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(btrfs |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
^\s$ |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | - |
10 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | - |
20 |
| {$VFS.FS.PUSED.MAX.CRIT} | - |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | - |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of file systems of different types. |
ZABBIX_ACTIVE | vfs.fs.discovery Filter: AND- {#FSTYPE} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Filesystems | {#FSNAME}: Used space | Used storage in Bytes |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},used] |
| Filesystems | {#FSNAME}: Total space | Total space in Bytes |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},total] |
| Filesystems | {#FSNAME}: Space utilization | Space utilization in % for {#FSNAME} |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},pused] |
| Filesystems | {#FSNAME}: Free inodes in % | - |
ZABBIX_ACTIVE | vfs.fs.inode[{#FSNAME},pfree] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than 5G. - The disk will be full in less than 24 hours. |
last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<5G or timeleft(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than 10G. - The disk will be full in less than 24 hours. |
last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<10G or timeleft(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
min(/Linux filesystems by Zabbix agent active/vfs.fs.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
AVERAGE | |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
min(/Linux filesystems by Zabbix agent active/vfs.fs.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
WARNING | Depends on: - {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MEMORY.AVAILABLE.MIN} | This macro is used as a threshold in memory available trigger. |
20M |
| {$MEMORY.UTIL.MAX} | This macro is used as a threshold in memory utilization trigger. |
90 |
| {$SWAP.PFREE.MIN.WARN} | - |
50 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Memory | Memory utilization | Memory used percentage is calculated as (100-pavailable) |
DEPENDENT | vm.memory.utilization Preprocessing: - JAVASCRIPT: |
| Memory | Available memory in % | Available memory as percentage of total. See also Appendixes in Zabbix Documentation about parameters of the vm.memory.size item. |
ZABBIX_ACTIVE | vm.memory.size[pavailable] |
| Memory | Total memory | Total memory in Bytes |
ZABBIX_ACTIVE | vm.memory.size[total] |
| Memory | Available memory | 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_ACTIVE | vm.memory.size[available] |
| Memory | Total swap space | The total space of swap volume/file in bytes. |
ZABBIX_ACTIVE | system.swap.size[,total] |
| Memory | Free swap space | The free space of swap volume/file in bytes. |
ZABBIX_ACTIVE | system.swap.size[,free] |
| Memory | Free swap space in % | The free space of swap volume/file in percent. |
ZABBIX_ACTIVE | system.swap.size[,pfree] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) | The system is running out of free memory. |
min(/Linux memory by Zabbix agent active/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | Depends on: - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
| Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) | - |
min(/Linux memory by Zabbix agent active/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory by Zabbix agent active/vm.memory.size[total])>0 |
AVERAGE | |
| High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free) | This trigger is ignored, if there is no swap configured |
min(/Linux memory by Zabbix agent active/system.swap.size[,pfree],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux memory by Zabbix agent active/system.swap.size[,total])>0 |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
`^(loop[0-9]* |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in ms) before the trigger would fire |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in ms) before the trigger would fire |
20 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | - |
ZABBIX_ACTIVE | vfs.dev.discovery Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#DEVTYPE} MATCHES_REGEX - {#DEVNAME} MATCHES_REGEX - {#DEVNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Storage | {#DEVNAME}: Disk read rate | r/s. The number (after merges) of read requests completed per second for the device. |
DEPENDENT | vfs.dev.read.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk write rate | w/s. The number (after merges) of write requests completed per second for the device. |
DEPENDENT | vfs.dev.write.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk read request avg waiting time (r_await) | This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
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 evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
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) | Current average disk queue, the number of requests outstanding on the disk at the time the performance data is collected. |
DEPENDENT | vfs.dev.queue_size[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Storage | {#DEVNAME}: Disk utilization | This item is the percentage of elapsed time that the selected disk drive was busy servicing read or writes requests. |
DEPENDENT | vfs.dev.util[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Zabbix_raw_items | {#DEVNAME}: Get stats | Get contents of /sys/block/{#DEVNAME}/stat for disk stats. |
ZABBIX_ACTIVE | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing: - JAVASCRIPT: |
| Zabbix_raw_items | {#DEVNAME}: Disk read time (rate) | Rate of total read time counter. Used in r_await calculation |
DEPENDENT | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Zabbix_raw_items | {#DEVNAME}: Disk write time (rate) | Rate of total write time counter. Used in w_await calculation |
DEPENDENT | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m) | This trigger might indicate disk {#DEVNAME} saturation. |
min(/Linux block devices by Zabbix agent active/vfs.dev.read.await[{#DEVNAME}],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux block devices by Zabbix agent active/vfs.dev.write.await[{#DEVNAME}],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | This macro is used as a threshold in interface utilization trigger. |
90 |
| {$IFCONTROL} | - |
1 |
| {$NET.IF.IFNAME.MATCHES} | - |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
`(^Software Loopback Interface |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of network interfaces. |
ZABBIX_ACTIVE | net.if.discovery Filter: AND- {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Network_interfaces | Interface {#IFNAME}: Bits received | - |
ZABBIX_ACTIVE | net.if.in["{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network_interfaces | Interface {#IFNAME}: Bits sent | - |
ZABBIX_ACTIVE | net.if.out["{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network_interfaces | Interface {#IFNAME}: Outbound packets with errors | - |
ZABBIX_ACTIVE | net.if.out["{#IFNAME}",errors] Preprocessing: - CHANGE_PER_SECOND |
| Network_interfaces | Interface {#IFNAME}: Inbound packets with errors | - |
ZABBIX_ACTIVE | net.if.in["{#IFNAME}",errors] Preprocessing: - CHANGE_PER_SECOND |
| Network_interfaces | Interface {#IFNAME}: Outbound packets discarded | - |
ZABBIX_ACTIVE | net.if.out["{#IFNAME}",dropped] Preprocessing: - CHANGE_PER_SECOND |
| Network_interfaces | Interface {#IFNAME}: Inbound packets discarded | - |
ZABBIX_ACTIVE | 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_ACTIVE | vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"] Preprocessing: - JAVASCRIPT: |
| Network_interfaces | Interface {#IFNAME}: Interface type | 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_ACTIVE | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network interfaces | Interface {#IFNAME}: Speed | Indicates the interface latest or current speed value. Value is an integer representing the link speed in bits/sec. This attribute is only valid for interfaces that implement the ethtool get_link_ksettings method (mostly Ethernet). Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
ZABBIX_ACTIVE | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}: High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%) | The network interface utilization is close to its estimated maximum bandwidth. |
(avg(/Linux network interfaces by Zabbix agent active/net.if.in["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) or avg(/Linux network interfaces by Zabbix agent active/net.if.out["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])) and last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0Recovery expression: avg(/Linux network interfaces by Zabbix agent active/net.if.in["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) and avg(/Linux network interfaces by Zabbix agent active/net.if.out["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}: Link down |
| Interface {#IFNAME}: High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
min(/Linux network interfaces by Zabbix agent active/net.if.in["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux network interfaces by Zabbix agent active/net.if.out["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}Recovery expression: max(/Linux network interfaces by Zabbix agent active/net.if.in["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Linux network interfaces by Zabbix agent active/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. Can be triggered if operations status is down. 2. {$IFCONTROL:"{#IFNAME}"}=1 - 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) - 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. |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))Recovery expression: last(/Linux network interfaces by Zabbix agent active/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. Ack to close. |
change(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])<0 and last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 and (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=6 or last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=1) and (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2) Recovery expression: (change(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 and last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"],#2)>0) or (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}: Link down |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$KERNEL.MAXFILES.MIN} | - |
256 |
| {$KERNEL.MAXPROC.MIN} | - |
1024 |
| {$SYSTEM.FUZZYTIME.MAX} | - |
60 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| General | System boot time | - |
ZABBIX_ACTIVE | system.boottime Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System local time | System local time of the host. |
ZABBIX_ACTIVE | system.localtime |
| General | System name | System host name. |
ZABBIX_ACTIVE | system.hostname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | The information as normally returned by 'uname -a'. |
ZABBIX_ACTIVE | system.uname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Number of logged in users | Number of users who are currently logged in. |
ZABBIX_ACTIVE | system.users.num |
| General | Maximum number of open file descriptors | It could be increased by using sysctrl utility or modifying file /etc/sysctl.conf. |
ZABBIX_ACTIVE | kernel.maxfiles Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Maximum number of processes | It could be increased by using sysctrl utility or modifying file /etc/sysctl.conf. |
ZABBIX_ACTIVE | kernel.maxproc Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Number of processes | - |
ZABBIX_ACTIVE | proc.num |
| General | Number of running processes | - |
ZABBIX_ACTIVE | proc.num[,,run] |
| Inventory | Operating system | - |
ZABBIX_ACTIVE | system.sw.os Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Inventory | Operating system architecture | Operating system architecture of the host. |
ZABBIX_ACTIVE | system.sw.arch Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Inventory | Software installed | - |
ZABBIX_ACTIVE | system.sw.packages Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Security | Checksum of /etc/passwd | - |
ZABBIX_ACTIVE | vfs.file.cksum[/etc/passwd] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Status | System uptime | System uptime in 'N days, hh:mm:ss' format. |
ZABBIX_ACTIVE | system.uptime |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s) | The host system time is different from the Zabbix server time. |
fuzzytime(/Linux generic by Zabbix agent active/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0 |
WARNING | Manual close: YES |
| System name has changed (new name: {ITEM.VALUE}) | System name has changed. Ack to close. |
last(/Linux generic by Zabbix agent active/system.hostname,#1)<>last(/Linux generic by Zabbix agent active/system.hostname,#2) and length(last(/Linux generic by Zabbix agent active/system.hostname))>0 |
INFO | Manual close: YES |
| Configured max number of open filedescriptors is too low (< {$KERNEL.MAXFILES.MIN}) | - |
last(/Linux generic by Zabbix agent active/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} |
INFO | |
| Configured max number of processes is too low (< {$KERNEL.MAXPROC.MIN}) | - |
last(/Linux generic by Zabbix agent active/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} |
INFO | Depends on: - Getting closer to process limit (over 80% used) |
| Getting closer to process limit (over 80% used) | - |
last(/Linux generic by Zabbix agent active/proc.num)/last(/Linux generic by Zabbix agent active/kernel.maxproc)*100>80 |
WARNING | |
| Operating system description has changed | Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close. |
last(/Linux generic by Zabbix agent active/system.sw.os,#1)<>last(/Linux generic by Zabbix agent active/system.sw.os,#2) and length(last(/Linux generic by Zabbix agent active/system.sw.os))>0 |
INFO | Manual close: YES Depends on: - System name has changed (new name: {ITEM.VALUE}) |
| /etc/passwd has been changed | - |
last(/Linux generic by Zabbix agent active/vfs.file.cksum[/etc/passwd],#1)<>last(/Linux generic by Zabbix agent active/vfs.file.cksum[/etc/passwd],#2) |
INFO | Manual close: YES Depends on: - Operating system description has changed - System name has changed (new name: {ITEM.VALUE}) |
| {HOST.NAME} has been restarted (uptime < 10m) | The host uptime is less than 10 minutes |
last(/Linux generic by Zabbix agent active/system.uptime)<10m |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
New official Linux template. Requires agent of Zabbix 3.0.14, 3.4.5 and 4.0.0 or newer.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
| Name |
|---|
| Linux CPU by Zabbix agent active |
| Linux block devices by Zabbix agent active |
| Linux filesystems by Zabbix agent active |
| Linux generic by Zabbix agent active |
| Linux memory by Zabbix agent active |
| Linux network interfaces by Zabbix agent active |
| Zabbix agent active |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_active?at=release/5.0
For Zabbix version: 5.0 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | - |
90 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Number of CPUs | - |
ZABBIX_ACTIVE | system.cpu.num Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| CPU | Load average (1m avg) | - |
ZABBIX_ACTIVE | system.cpu.load[all,avg1] |
| CPU | Load average (5m avg) | - |
ZABBIX_ACTIVE | system.cpu.load[all,avg5] |
| CPU | Load average (15m avg) | - |
ZABBIX_ACTIVE | system.cpu.load[all,avg15] |
| CPU | CPU utilization | CPU utilization in %. |
DEPENDENT | system.cpu.util Preprocessing: - JAVASCRIPT: |
| CPU | CPU idle time | The time the CPU has spent doing nothing. |
ZABBIX_ACTIVE | system.cpu.util[,idle] |
| CPU | CPU system time | The time the CPU has spent running the kernel and its processes. |
ZABBIX_ACTIVE | system.cpu.util[,system] |
| CPU | CPU user time | The time the CPU has spent running users' processes that are not niced. |
ZABBIX_ACTIVE | system.cpu.util[,user] |
| CPU | CPU nice time | The time the CPU has spent running users' processes that have been niced. |
ZABBIX_ACTIVE | system.cpu.util[,nice] |
| CPU | CPU iowait time | Amount of time the CPU has been waiting for I/O to complete. |
ZABBIX_ACTIVE | system.cpu.util[,iowait] |
| CPU | CPU steal time | The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine). |
ZABBIX_ACTIVE | system.cpu.util[,steal] |
| CPU | CPU interrupt time | The amount of time the CPU has been servicing hardware interrupts. |
ZABBIX_ACTIVE | system.cpu.util[,interrupt] |
| CPU | CPU softirq time | The amount of time the CPU has been servicing software interrupts. |
ZABBIX_ACTIVE | system.cpu.util[,softirq] |
| CPU | CPU guest time | Guest time (time spent running a virtual CPU for a guest operating system). |
ZABBIX_ACTIVE | system.cpu.util[,guest] |
| CPU | CPU guest nice time | Time spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel). |
ZABBIX_ACTIVE | system.cpu.util[,guest_nice] |
| CPU | Context switches per second | - |
ZABBIX_ACTIVE | system.cpu.switches Preprocessing: - CHANGE_PER_SECOND |
| CPU | Interrupts per second | - |
ZABBIX_ACTIVE | system.cpu.intr Preprocessing: - CHANGE_PER_SECOND |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) | Per CPU load average is too high. Your system may be slow to respond. |
{TEMPLATE_NAME:system.cpu.load[all,avg1].min(5m)}/{TEMPLATE_NAME:system.cpu.num.last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} and {TEMPLATE_NAME:system.cpu.load[all,avg5].last()}>0 and {TEMPLATE_NAME:system.cpu.load[all,avg15].last()}>0 |
AVERAGE | |
| High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | CPU utilization is too high. The system might be slow to respond. |
{TEMPLATE_NAME:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT} |
WARNING | Depends on: - Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 5.0 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.FS.FREE.MIN.CRIT} | The critical threshold of the filesystem utilization. |
5G |
| {$VFS.FS.FREE.MIN.WARN} | The warning threshold of the filesystem utilization. |
10G |
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(/dev |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(btrfs |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
^\s$ |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | - |
10 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | - |
20 |
| {$VFS.FS.PUSED.MAX.CRIT} | - |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | - |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of file systems of different types. |
ZABBIX_ACTIVE | vfs.fs.discovery Filter: AND- A: {#FSTYPE} MATCHES_REGEX - B: {#FSTYPE} NOT_MATCHES_REGEX - C: {#FSNAME} MATCHES_REGEX - D: {#FSNAME} NOT_MATCHES_REGEX Overrides: Skip metadata collection for dynamic FS |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Filesystems | {#FSNAME}: Used space | Used storage in Bytes |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},used] |
| Filesystems | {#FSNAME}: Total space | Total space in Bytes |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},total] |
| Filesystems | {#FSNAME}: Space utilization | Space utilization in % for {#FSNAME} |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},pused] |
| Filesystems | {#FSNAME}: Free inodes in % | - |
ZABBIX_ACTIVE | vfs.fs.inode[{#FSNAME},pfree] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}. 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. |
{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and (({TEMPLATE_NAME:vfs.fs.size[{#FSNAME},total].last()}-{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},used].last()})<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or {TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}. 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. |
{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and (({TEMPLATE_NAME:vfs.fs.size[{#FSNAME},total].last()}-{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},used].last()})<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or {TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
{TEMPLATE_NAME:vfs.fs.inode[{#FSNAME},pfree].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
AVERAGE | |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
{TEMPLATE_NAME:vfs.fs.inode[{#FSNAME},pfree].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
WARNING | Depends on: - {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 5.0 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MEMORY.AVAILABLE.MIN} | This macro is used as a threshold in memory available trigger. |
20M |
| {$MEMORY.UTIL.MAX} | This macro is used as a threshold in memory utilization trigger. |
90 |
| {$SWAP.PFREE.MIN.WARN} | - |
50 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Memory | Memory utilization | Memory used percentage is calculated as (100-pavailable) |
DEPENDENT | vm.memory.utilization Preprocessing: - JAVASCRIPT: |
| Memory | Available memory in % | Available memory as percentage of total. See also Appendixes in Zabbix Documentation about parameters of the vm.memory.size item. |
ZABBIX_ACTIVE | vm.memory.size[pavailable] |
| Memory | Total memory | Total memory in Bytes. |
ZABBIX_ACTIVE | vm.memory.size[total] |
| Memory | Available memory | 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_ACTIVE | vm.memory.size[available] |
| Memory | Total swap space | The total space of swap volume/file in bytes. |
ZABBIX_ACTIVE | system.swap.size[,total] |
| Memory | Free swap space | The free space of swap volume/file in bytes. |
ZABBIX_ACTIVE | system.swap.size[,free] |
| Memory | Free swap space in % | The free space of swap volume/file in percent. |
ZABBIX_ACTIVE | system.swap.size[,pfree] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) | The system is running out of free memory. |
{TEMPLATE_NAME:vm.memory.utilization.min(5m)}>{$MEMORY.UTIL.MAX} |
AVERAGE | Depends on: - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
| Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) | - |
{TEMPLATE_NAME:vm.memory.size[available].max(5m)}<{$MEMORY.AVAILABLE.MIN} and {TEMPLATE_NAME:vm.memory.size[total].last()}>0 |
AVERAGE | |
| High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free) | This trigger is ignored, if there is no swap configured. |
{TEMPLATE_NAME:system.swap.size[,pfree].max(5m)}<{$SWAP.PFREE.MIN.WARN} and {TEMPLATE_NAME:system.swap.size[,total].last()}>0 |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 5.0 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
`^(loop[0-9]* |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in ms) before the trigger would fire |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in ms) before the trigger would fire |
20 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | - |
ZABBIX_ACTIVE | vfs.dev.discovery Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- A: {#DEVTYPE} MATCHES_REGEX - B: {#DEVNAME} MATCHES_REGEX - C: {#DEVNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Storage | {#DEVNAME}: Disk read rate | r/s. The number (after merges) of read requests completed per second for the device. |
DEPENDENT | vfs.dev.read.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk write rate | w/s. The number (after merges) of write requests completed per second for the device. |
DEPENDENT | vfs.dev.write.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk read request avg waiting time (r_await) | This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
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 evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
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) | Current average disk queue, the number of requests outstanding on the disk at the time the performance data is collected. |
DEPENDENT | vfs.dev.queue_size[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Storage | {#DEVNAME}: Disk utilization | This item is the percentage of elapsed time that the selected disk drive was busy servicing read or writes requests. |
DEPENDENT | vfs.dev.util[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Zabbix_raw_items | {#DEVNAME}: Get stats | Get contents of /sys/block/{#DEVNAME}/stat for disk stats. |
ZABBIX_ACTIVE | vfs.file.contents[/sys/block/{#DEVNAME}/stat] Preprocessing: - JAVASCRIPT: |
| Zabbix_raw_items | {#DEVNAME}: Disk read time (rate) | Rate of total read time counter. Used in r_await calculation |
DEPENDENT | vfs.dev.read.time.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Zabbix_raw_items | {#DEVNAME}: Disk write time (rate) | Rate of total write time counter. Used in w_await calculation |
DEPENDENT | vfs.dev.write.time.rate[{#DEVNAME}] Preprocessing: - JSONPATH: - CHANGE_PER_SECOND - MULTIPLIER: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m) | This trigger might indicate disk {#DEVNAME} saturation. |
{TEMPLATE_NAME:vfs.dev.read.await[{#DEVNAME}].min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or {TEMPLATE_NAME:vfs.dev.write.await[{#DEVNAME}].min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 5.0 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | This macro is used as a threshold in interface utilization trigger. |
90 |
| {$IFCONTROL} | - |
1 |
| {$NET.IF.IFNAME.MATCHES} | - |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
`(^Software Loopback Interface |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of network interfaces. |
ZABBIX_ACTIVE | net.if.discovery Filter: AND- A: {#IFNAME} MATCHES_REGEX - B: {#IFNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Network_interfaces | Interface {#IFNAME}: Bits received | ZABBIX_ACTIVE | net.if.in["{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
|
| Network_interfaces | Interface {#IFNAME}: Bits sent | ZABBIX_ACTIVE | net.if.out["{#IFNAME}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
|
| Network_interfaces | Interface {#IFNAME}: Outbound packets with errors | ZABBIX_ACTIVE | net.if.out["{#IFNAME}",errors] Preprocessing: - CHANGE_PER_SECOND |
|
| Network_interfaces | Interface {#IFNAME}: Inbound packets with errors | ZABBIX_ACTIVE | net.if.in["{#IFNAME}",errors] Preprocessing: - CHANGE_PER_SECOND |
|
| Network_interfaces | Interface {#IFNAME}: Outbound packets discarded | ZABBIX_ACTIVE | net.if.out["{#IFNAME}",dropped] Preprocessing: - CHANGE_PER_SECOND |
|
| Network_interfaces | Interface {#IFNAME}: Inbound packets discarded | ZABBIX_ACTIVE | 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_ACTIVE | vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"] Preprocessing: - JAVASCRIPT: |
| Network_interfaces | Interface {#IFNAME}: Interface type | 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_ACTIVE | vfs.file.contents["/sys/class/net/{#IFNAME}/type"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Interface {#IFNAME}: Speed | Indicates the interface latest or current speed value. Value is an integer representing the link speed in bits/sec. This attribute is only valid for interfaces that implement the ethtool get_link_ksettings method (mostly Ethernet). Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net |
ZABBIX_ACTIVE | vfs.file.contents["/sys/class/net/{#IFNAME}/speed"] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}: High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%) | The network interface utilization is close to its estimated maximum bandwidth. |
({TEMPLATE_NAME:net.if.in["{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()} or {TEMPLATE_NAME:net.if.out["{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()}) and {TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()}>0Recovery expression: {TEMPLATE_NAME:net.if.in["{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()} and {TEMPLATE_NAME:net.if.out["{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()} |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}: Link down |
| Interface {#IFNAME}: High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
{TEMPLATE_NAME:net.if.in["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {TEMPLATE_NAME:net.if.out["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}Recovery expression: {TEMPLATE_NAME:net.if.in["{#IFNAME}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {TEMPLATE_NAME:net.if.out["{#IFNAME}",errors].max(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. Can be triggered if operations status is down. 2. {$IFCONTROL:"{#IFNAME}"}=1 - 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) - 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. |
{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2 and {TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].diff()}=1)Recovery expression: {TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>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. Ack to close. |
{TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].change()}<0 and {TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].last()}>0 and ({TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].last()}=6 or {TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].last()}=1) and ({TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>2)Recovery expression: ({TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].change()}>0 and {TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/speed"].prev()}>0) or ({TEMPLATE_NAME:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}: Link down |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 5.0 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$KERNEL.MAXFILES.MIN} | - |
256 |
| {$KERNEL.MAXPROC.MIN} | - |
1024 |
| {$SYSTEM.FUZZYTIME.MAX} | - |
60 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| General | System boot time | - |
ZABBIX_ACTIVE | system.boottime Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System local time | System local time of the host. |
ZABBIX_ACTIVE | system.localtime |
| General | System name | System host name. |
ZABBIX_ACTIVE | system.hostname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | The information as normally returned by 'uname -a'. |
ZABBIX_ACTIVE | system.uname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Number of logged in users | Number of users who are currently logged in. |
ZABBIX_ACTIVE | system.users.num |
| General | Maximum number of open file descriptors | It could be increased by using sysctl utility or modifying file /etc/sysctl.conf. |
ZABBIX_ACTIVE | kernel.maxfiles Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Maximum number of processes | It could be increased by using sysctl utility or modifying file /etc/sysctl.conf. |
ZABBIX_ACTIVE | kernel.maxproc Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Number of processes | - |
ZABBIX_ACTIVE | proc.num |
| General | Number of running processes | - |
ZABBIX_ACTIVE | proc.num[,,run] |
| Inventory | Operating system | - |
ZABBIX_ACTIVE | system.sw.os Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Inventory | Operating system architecture | Operating system architecture of the host. |
ZABBIX_ACTIVE | system.sw.arch Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Inventory | Software installed | - |
ZABBIX_ACTIVE | system.sw.packages Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Security | Checksum of /etc/passwd | - |
ZABBIX_ACTIVE | vfs.file.cksum[/etc/passwd] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Status | System uptime | System uptime in 'N days, hh:mm:ss' format. |
ZABBIX_ACTIVE | system.uptime |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s) | The host system time is different from the Zabbix server time. |
{TEMPLATE_NAME:system.localtime.fuzzytime({$SYSTEM.FUZZYTIME.MAX})}=0 |
WARNING | Manual close: YES |
| System name has changed (new name: {ITEM.VALUE}) | System name has changed. Ack to close. |
{TEMPLATE_NAME:system.hostname.diff()}=1 and {TEMPLATE_NAME:system.hostname.strlen()}>0 |
INFO | Manual close: YES |
| Configured max number of open filedescriptors is too low (< {$KERNEL.MAXFILES.MIN}) | - |
{TEMPLATE_NAME:kernel.maxfiles.last()}<{$KERNEL.MAXFILES.MIN} |
INFO | |
| Configured max number of processes is too low (< {$KERNEL.MAXPROC.MIN}) | - |
{TEMPLATE_NAME:kernel.maxproc.last()}<{$KERNEL.MAXPROC.MIN} |
INFO | Depends on: - Getting closer to process limit (over 80% used) |
| Getting closer to process limit (over 80% used) | - |
{TEMPLATE_NAME:proc.num.last()}/{TEMPLATE_NAME:kernel.maxproc.last()}*100>80 |
WARNING | |
| Operating system description has changed | Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close. |
{TEMPLATE_NAME:system.sw.os.diff()}=1 and {TEMPLATE_NAME:system.sw.os.strlen()}>0 |
INFO | Manual close: YES Depends on: - System name has changed (new name: {ITEM.VALUE}) |
| /etc/passwd has been changed | - |
{TEMPLATE_NAME:vfs.file.cksum[/etc/passwd].diff()}>0 |
INFO | Manual close: YES Depends on: - Operating system description has changed - System name has changed (new name: {ITEM.VALUE}) |
| {HOST.NAME} has been restarted (uptime < 10m) | The host uptime is less than 10 minutes |
{TEMPLATE_NAME:system.uptime.last()}<10m |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 5.0 and higher.
New official Linux template. Requires agent of Zabbix 3.0.14, 3.4.5 and 4.0.0 or newer.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
| Name |
|---|
| Linux CPU by Zabbix agent active |
| Linux block devices by Zabbix agent active |
| Linux filesystems by Zabbix agent active |
| Linux generic by Zabbix agent active |
| Linux memory by Zabbix agent active |
| Linux network interfaces by Zabbix agent active |
| Zabbix agent active |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
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.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_snmp_snmp?at=release/7.4
This is an official Linux template. It requires an SNMP client.
pused = 100 * (used / used + available)Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install snmpd agent on Linux OS, enable SNMPv2.
Make sure access to UCD-SNMP-MIB is allowed from Zabbix server/proxy host, since, by default, snmpd (for example, in Ubuntu) limits access to basic system information only:
rocommunity public default -V systemonly
Ensure snmpd is monitoring disks, using includeALLDisks or disk options. Example:
includeALLDisks 0% # monitors all disks starting with 0% fill rate
# disk / 0% # monitor only / root volume starting with 0% fill rate
Make sure you change that in order to read metrics of UCD-SNMP-MIB and UCD-DISKIO-MIB. Please refer to the documentation: http://www.net-snmp.org/wiki/index.php/Vacm.
You can also try to use snmpconf: http://www.net-snmp.org/wiki/index.php/TUT:snmpd_configuration.
| Name | Description | Default |
|---|---|---|
| {$MEMORY.UTIL.MAX} | Used as a threshold in the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a threshold in the available memory trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$CPU.UTIL.CRIT} | Critical threshold of CPU utilization expressed in %. |
90 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | The warning threshold of the filesystem metadata utilization. |
20 |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | The critical threshold of the filesystem metadata utilization. |
10 |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSDEVICE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSDEVICE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.*(tmpfs|shm)$ |
| {$SNMP.TIMEOUT} | Time interval for the SNMP availability trigger. |
5m |
| {$ICMP_LOSS_WARN} | Warning threshold of ICMP packet loss in %. |
20 |
| {$ICMP_RESPONSE_TIME_WARN} | Warning threshold of the average ICMP response time in seconds. |
0.15 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore |
^6$ |
| {$NET.IF.IFADMINSTATUS.MATCHES} | Used in network interface discovery rule filters. |
^.* |
| {$NET.IF.IFADMINSTATUS.NOT_MATCHES} | Ignore |
^2$ |
| {$NET.IF.IFDESCR.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$NET.IF.IFALIAS.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$NET.IF.IFTYPE.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFTYPE.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Memory utilization | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
Calculated | vm.memory.util[snmp] |
| Free memory | MIB: UCD-SNMP-MIB |
SNMP agent | vm.memory.free[memAvailReal.0] Preprocessing
|
| Memory (buffers) | MIB: UCD-SNMP-MIB Memory used by kernel buffers (Buffers in /proc/meminfo). |
SNMP agent | vm.memory.buffers[memBuffer.0] Preprocessing
|
| Memory (cached) | MIB: UCD-SNMP-MIB Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo). |
SNMP agent | vm.memory.cached[memCached.0] Preprocessing
|
| Total memory | MIB: UCD-SNMP-MIB Total memory expressed in bytes. |
SNMP agent | vm.memory.total[memTotalReal.0] Preprocessing
|
| Available memory | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
Calculated | vm.memory.available[snmp] |
| Total swap space | MIB: UCD-SNMP-MIB The total amount of swap space configured for this host. |
SNMP agent | system.swap.total[memTotalSwap.0] Preprocessing
|
| Free swap space | MIB: UCD-SNMP-MIB The amount of swap space currently unused or available. |
SNMP agent | system.swap.free[memAvailSwap.0] Preprocessing
|
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Calculated | system.swap.pfree[snmp] |
| SNMP walk block devices | Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable). |
SNMP agent | vfs.dev.walk |
| Load average (1m avg) | MIB: UCD-SNMP-MIB |
Dependent item | system.cpu.load.avg1[laLoad.1] Preprocessing
|
| Load average (5m avg) | MIB: UCD-SNMP-MIB |
Dependent item | system.cpu.load.avg5[laLoad.2] Preprocessing
|
| Load average (15m avg) | MIB: UCD-SNMP-MIB |
Dependent item | system.cpu.load.avg15[laLoad.3] Preprocessing
|
| SNMP walk system CPUs | MIB: HOST-RESOURCES-MIB Discovering system CPUs. |
SNMP agent | system.cpu.walk |
| SNMP walk CPU load averages | MIB: UCD-SNMP-MIB SNMP walk through laTable. The collected data used in dependent CPU load average items. |
SNMP agent | system.cpu.load.walk Preprocessing
|
| Number of CPUs | Count the number of CPU cores by counting number of cores discovered in hrProcessorTable using LLD. |
Dependent item | system.cpu.num[snmp] Preprocessing
|
| Interrupts per second | Number of interrupts processed. |
SNMP agent | system.cpu.intr[ssRawInterrupts.0] Preprocessing
|
| Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
SNMP agent | system.cpu.switches[ssRawContexts.0] Preprocessing
|
| SNMP walk mounted filesystems | MIB: UCD-SNMP-MIB Snmp walk through dskEntry table. Collected data used in filesystem lld and dependent item prototypes. |
SNMP agent | vfs.fs.walk Preprocessing
|
| Uptime (network) | MIB: SNMPv2-MIB Time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| 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 | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| System location | MIB: SNMPv2-MIB Physical location of the node (e.g., |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| System contact details | MIB: SNMPv2-MIB The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| System object ID | MIB: SNMPv2-MIB The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| System name | MIB: SNMPv2-MIB An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string. |
SNMP agent | system.name Preprocessing
|
| System description | MIB: SNMPv2-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. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| ICMP ping | The host accessibility by ICMP ping. 0 - ICMP ping fails; 1 - ICMP ping successful. |
Simple check | icmpping |
| ICMP loss | The percentage of lost packets. |
Simple check | icmppingloss |
| ICMP response time | The ICMP ping response time (in seconds). |
Simple check | icmppingsec |
| Linux: SNMP walk network interfaces | Discovering interfaces from IF-MIB. |
SNMP agent | net.if.walk |
| Linux: SNMP walk EtherLike-MIB interfaces | Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with |
SNMP agent | net.if.duplex.walk |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: High memory utilization | The system is running out of free memory. |
min(/Linux by SNMP/vm.memory.util[snmp],5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | The system is running out of memory. |
max(/Linux by SNMP/vm.memory.available[snmp],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by SNMP/vm.memory.total[memTotalReal.0])>0 |
Average | |
| Linux: High swap space usage | If there is no swap configured, this trigger is ignored. |
max(/Linux by SNMP/system.swap.pfree[snmp],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by SNMP/system.swap.total[memTotalSwap.0])>0 |
Warning | Depends on:
|
| Linux: Load average is too high | The load average per CPU is too high. The system may be slow to respond. |
min(/Linux by SNMP/system.cpu.load.avg1[laLoad.1],5m)/last(/Linux by SNMP/system.cpu.num[snmp])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by SNMP/system.cpu.load.avg5[laLoad.2])>0 and last(/Linux by SNMP/system.cpu.load.avg15[laLoad.3])>0 |
Average | |
| Linux: Host has been restarted | Uptime is less than 10 minutes. |
(last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Linux by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| Linux: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/Linux by SNMP/system.name,#1)<>last(/Linux by SNMP/system.name,#2) and length(last(/Linux by SNMP/system.name))>0 |
Info | Manual close: Yes |
| Linux: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/Linux by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| Linux: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/Linux by SNMP/icmpping,#3)=0 |
High | |
| Linux: High ICMP ping loss | ICMP packets loss detected. |
min(/Linux by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Linux by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
| Linux: High ICMP ping response time | Average ICMP response time is too high. |
avg(/Linux by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable) |
Dependent item | vfs.dev.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | MIB: UCD-DISKIO-MIB The number of read accesses from this device since boot. |
Dependent item | vfs.dev.read.rate[diskIOReads.{#SNMPINDEX}] Preprocessing
|
| {#DEVNAME}: Disk write rate | MIB: UCD-DISKIO-MIB The number of write accesses from this device since boot. |
Dependent item | vfs.dev.write.rate[diskIOWrites.{#SNMPINDEX}] Preprocessing
|
| {#DEVNAME}: Disk utilization | MIB: UCD-DISKIO-MIB The 1 minute average load of disk (%) |
Dependent item | vfs.dev.util[diskIOLA1.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | This discovery will create set of per core CPU metrics from UCD-SNMP-MIB, using {#CPU.COUNT} in preprocessing. That's the only reason why LLD is used. |
Dependent item | cpu.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU idle time | MIB: UCD-SNMP-MIB Time the CPU has spent doing nothing. |
Dependent item | system.cpu.idle[ssCpuRawIdle.{#SNMPINDEX}] Preprocessing
|
| CPU system time | MIB: UCD-SNMP-MIB Time the CPU has spent running the kernel and its processes. |
Dependent item | system.cpu.system[ssCpuRawSystem.{#SNMPINDEX}] Preprocessing
|
| CPU user time | MIB: UCD-SNMP-MIB Time the CPU has spent running users' processes that are not niced. |
Dependent item | system.cpu.user[ssCpuRawUser.{#SNMPINDEX}] Preprocessing
|
| CPU steal time | MIB: UCD-SNMP-MIB The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine. |
Dependent item | system.cpu.steal[ssCpuRawSteal.{#SNMPINDEX}] Preprocessing
|
| CPU softirq time | MIB: UCD-SNMP-MIB Time the CPU has been servicing software interrupts. |
Dependent item | system.cpu.softirq[ssCpuRawSoftIRQ.{#SNMPINDEX}] Preprocessing
|
| CPU nice time | MIB: UCD-SNMP-MIB Time the CPU has spent running users' processes that have been niced. |
Dependent item | system.cpu.nice[ssCpuRawNice.{#SNMPINDEX}] Preprocessing
|
| CPU iowait time | MIB: UCD-SNMP-MIB Time the CPU has been waiting for I/O to complete. |
Dependent item | system.cpu.iowait[ssCpuRawWait.{#SNMPINDEX}] Preprocessing
|
| CPU interrupt time | MIB: UCD-SNMP-MIB Time the CPU has spent servicing hardware interrupts. |
Dependent item | system.cpu.interrupt[ssCpuRawInterrupt.{#SNMPINDEX}] Preprocessing
|
| CPU guest time | MIB: UCD-SNMP-MIB Time spent on running a virtual CPU for a guest operating system. |
Dependent item | system.cpu.guest[ssCpuRawGuest.{#SNMPINDEX}] Preprocessing
|
| CPU guest nice time | MIB: UCD-SNMP-MIB Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel). |
Dependent item | system.cpu.guest_nice[ssCpuRawGuestNice.{#SNMPINDEX}] Preprocessing
|
| CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util[snmp,{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Linux by SNMP/system.cpu.util[snmp,{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | UCD-SNMP-MIB::dskEntry table discovery with storage filter |
Dependent item | vfs.fs.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | MIB: UCD-SNMP-MIB Intermediate data for subsequent processing. |
Dependent item | vfs.fs.walk.data[dskEntry.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used | MIB: UCD-SNMP-MIB Used storage is calculated from two portions: dskUsedHigh dskUsedLow Together they compose 64-bit number. Reserved space is not counted in. |
Dependent item | vfs.fs.used[dskUsed.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | MIB: UCD-SNMP-MIB Total storage is calculated from two portions: dskTotalHigh dskTotalLow Together they compose 64-bit number. |
Dependent item | vfs.fs.total[dskTotal.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Available | UCD-SNMP-MIB::dskEntry Available storage space is calculated from two portions: dskAvailHigh dskAvailLow Together they compose 64-bit number. |
Dependent item | vfs.fs.free[dskAvail.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | UCD-SNMP-MIB::dskEntry Space utilization is calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.pused[{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | MIB: UCD-SNMP-MIB Free metadata space expressed as percentage. |
Dependent item | vfs.fs.inode.pfree[{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: FS [{#FSNAME}]: Space is critically low | The volume's space usage exceeds the '{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%' limit; |
min(/Linux by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is low | The volume's space usage exceeds the '{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%' limit; |
min(/Linux by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by SNMP/vfs.fs.inode.pfree[{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by SNMP/vfs.fs.inode.pfree[{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovering interfaces from IF-MIB. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Operational status | MIB: IF-MIB The current operational state of the interface. - The testing(3) state indicates that no operational packet scan be passed - If ifAdminStatus is down(2) then ifOperStatus should be down(2) - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. |
Dependent item | net.if.status[ifOperStatus.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits received | MIB: IF-MIB The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in[ifHCInOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | 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.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out[ifHCOutOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.errors[ifInErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.errors[ifOutErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.discards[ifInDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | MIB: IF-MIB The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention. |
Dependent item | net.if.type[ifType.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero. |
Dependent item | net.if.speed[ifHighSpeed.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) |
Average | Manual close: Yes |
| Linux: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Linux by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Linux by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): 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 SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| EtherLike-MIB Discovery | Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with |
Dependent item | net.if.duplex.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Duplex status | MIB: EtherLike-MIB The current mode of operation of the MAC entity. Management control of the duplex mode is accomplished through the MAU MIB. When an interface does not support autonegotiation or when autonegotiation is not enabled, the duplex mode is controlled using Note that this object provides redundant information with Reference: [IEEE 802.3 Std.], 30.3.1.1.32,aDuplexStatus. |
Dependent item | net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Interface {#IFNAME}({#IFALIAS}): In half-duplex mode | Please check autonegotiation settings and cabling. |
last(/Linux by SNMP/net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2 |
Warning | Manual close: Yes |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_snmp_snmp?at=release/7.2
This is an official Linux template. It requires an SNMP client.
pused = 100 * (used / used + available)Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install snmpd agent on Linux OS, enable SNMPv2.
Make sure access to UCD-SNMP-MIB is allowed from Zabbix server/proxy host, since, by default, snmpd (for example, in Ubuntu) limits access to basic system information only:
rocommunity public default -V systemonly
Ensure snmpd is monitoring disks, using includeALLDisks or disk options. Example:
includeALLDisks 0% # monitors all disks starting with 0% fill rate
# disk / 0% # monitor only / root volume starting with 0% fill rate
Make sure you change that in order to read metrics of UCD-SNMP-MIB and UCD-DISKIO-MIB. Please refer to the documentation: http://www.net-snmp.org/wiki/index.php/Vacm
You can also try to use snmpconf:
http://www.net-snmp.org/wiki/index.php/TUT:snmpd_configuration
Change {$SNMP_COMMUNITY} on the host level in Zabbix.
| Name | Description | Default |
|---|---|---|
| {$MEMORY.UTIL.MAX} | Used as a threshold in the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a threshold in the available memory trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$CPU.UTIL.CRIT} | Critical threshold of CPU utilization expressed in %. |
90 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSDEVICE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.*(tmpfs|shm)$ |
| {$VFS.FS.FSDEVICE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$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 |
| {$SNMP.TIMEOUT} | Time interval for the SNMP availability trigger. |
5m |
| {$ICMP_LOSS_WARN} | Warning threshold of ICMP packet loss in %. |
20 |
| {$ICMP_RESPONSE_TIME_WARN} | Warning threshold of the average ICMP response time in seconds. |
0.15 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore |
^6$ |
| {$NET.IF.IFADMINSTATUS.MATCHES} | Used in network interface discovery rule filters. |
^.* |
| {$NET.IF.IFADMINSTATUS.NOT_MATCHES} | Ignore |
^2$ |
| {$NET.IF.IFDESCR.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$NET.IF.IFALIAS.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$NET.IF.IFTYPE.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFTYPE.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Memory utilization | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
Calculated | vm.memory.util[snmp] |
| Free memory | MIB: UCD-SNMP-MIB |
SNMP agent | vm.memory.free[memAvailReal.0] Preprocessing
|
| Memory (buffers) | MIB: UCD-SNMP-MIB Memory used by kernel buffers (Buffers in /proc/meminfo). |
SNMP agent | vm.memory.buffers[memBuffer.0] Preprocessing
|
| Memory (cached) | MIB: UCD-SNMP-MIB Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo). |
SNMP agent | vm.memory.cached[memCached.0] Preprocessing
|
| Total memory | MIB: UCD-SNMP-MIB Total memory expressed in bytes. |
SNMP agent | vm.memory.total[memTotalReal.0] Preprocessing
|
| Available memory | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
Calculated | vm.memory.available[snmp] |
| Total swap space | MIB: UCD-SNMP-MIB The total amount of swap space configured for this host. |
SNMP agent | system.swap.total[memTotalSwap.0] Preprocessing
|
| Free swap space | MIB: UCD-SNMP-MIB The amount of swap space currently unused or available. |
SNMP agent | system.swap.free[memAvailSwap.0] Preprocessing
|
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Calculated | system.swap.pfree[snmp] |
| SNMP walk block devices | Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable). |
SNMP agent | vfs.dev.walk |
| Load average (1m avg) | MIB: UCD-SNMP-MIB |
SNMP agent | system.cpu.load.avg1[laLoad.1] |
| Load average (5m avg) | MIB: UCD-SNMP-MIB |
SNMP agent | system.cpu.load.avg5[laLoad.2] |
| Load average (15m avg) | MIB: UCD-SNMP-MIB |
SNMP agent | system.cpu.load.avg15[laLoad.3] |
| SNMP walk system CPUs | MIB: HOST-RESOURCES-MIB Discovering system CPUs. |
SNMP agent | system.cpu.walk |
| Number of CPUs | Count the number of CPU cores by counting number of cores discovered in hrProcessorTable using LLD. |
Dependent item | system.cpu.num[snmp] Preprocessing
|
| Interrupts per second | Number of interrupts processed. |
SNMP agent | system.cpu.intr[ssRawInterrupts.0] Preprocessing
|
| Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
SNMP agent | system.cpu.switches[ssRawContexts.0] Preprocessing
|
| SNMP walk mounted filesystems | MIB: UCD-SNMP-MIB Snmp walk through dskEntry table. Collected data used in filesystem lld and dependent item prototypes. |
SNMP agent | vfs.fs.walk Preprocessing
|
| Uptime (network) | MIB: SNMPv2-MIB Time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| 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 | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| System location | MIB: SNMPv2-MIB Physical location of the node (e.g., |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| System contact details | MIB: SNMPv2-MIB The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| System object ID | MIB: SNMPv2-MIB The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| System name | MIB: SNMPv2-MIB An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string. |
SNMP agent | system.name Preprocessing
|
| System description | MIB: SNMPv2-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. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| ICMP ping | Simple check | icmpping | |
| ICMP loss | Simple check | icmppingloss | |
| ICMP response time | Simple check | icmppingsec | |
| Linux: SNMP walk network interfaces | Discovering interfaces from IF-MIB. |
SNMP agent | net.if.walk |
| Linux: SNMP walk EtherLike-MIB interfaces | Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with |
SNMP agent | net.if.duplex.walk |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: High memory utilization | The system is running out of free memory. |
min(/Linux by SNMP/vm.memory.util[snmp],5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | The system is running out of memory. |
max(/Linux by SNMP/vm.memory.available[snmp],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by SNMP/vm.memory.total[memTotalReal.0])>0 |
Average | |
| Linux: High swap space usage | If there is no swap configured, this trigger is ignored. |
max(/Linux by SNMP/system.swap.pfree[snmp],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by SNMP/system.swap.total[memTotalSwap.0])>0 |
Warning | Depends on:
|
| Linux: Load average is too high | The load average per CPU is too high. The system may be slow to respond. |
min(/Linux by SNMP/system.cpu.load.avg1[laLoad.1],5m)/last(/Linux by SNMP/system.cpu.num[snmp])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by SNMP/system.cpu.load.avg5[laLoad.2])>0 and last(/Linux by SNMP/system.cpu.load.avg15[laLoad.3])>0 |
Average | |
| Linux: Host has been restarted | Uptime is less than 10 minutes. |
(last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Linux by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| Linux: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/Linux by SNMP/system.name,#1)<>last(/Linux by SNMP/system.name,#2) and length(last(/Linux by SNMP/system.name))>0 |
Info | Manual close: Yes |
| Linux: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/Linux by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| Linux: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/Linux by SNMP/icmpping,#3)=0 |
High | |
| Linux: High ICMP ping loss | min(/Linux by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Linux by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
|
| Linux: High ICMP ping response time | Average ICMP response time is too high. |
avg(/Linux by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable) |
Dependent item | vfs.dev.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | MIB: UCD-DISKIO-MIB The number of read accesses from this device since boot. |
Dependent item | vfs.dev.read.rate[diskIOReads.{#SNMPINDEX}] Preprocessing
|
| {#DEVNAME}: Disk write rate | MIB: UCD-DISKIO-MIB The number of write accesses from this device since boot. |
Dependent item | vfs.dev.write.rate[diskIOWrites.{#SNMPINDEX}] Preprocessing
|
| {#DEVNAME}: Disk utilization | MIB: UCD-DISKIO-MIB The 1 minute average load of disk (%) |
Dependent item | vfs.dev.util[diskIOLA1.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | This discovery will create set of per core CPU metrics from UCD-SNMP-MIB, using {#CPU.COUNT} in preprocessing. That's the only reason why LLD is used. |
Dependent item | cpu.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU idle time | MIB: UCD-SNMP-MIB Time the CPU has spent doing nothing. |
Dependent item | system.cpu.idle[ssCpuRawIdle.{#SNMPINDEX}] Preprocessing
|
| CPU system time | MIB: UCD-SNMP-MIB Time the CPU has spent running the kernel and its processes. |
Dependent item | system.cpu.system[ssCpuRawSystem.{#SNMPINDEX}] Preprocessing
|
| CPU user time | MIB: UCD-SNMP-MIB Time the CPU has spent running users' processes that are not niced. |
Dependent item | system.cpu.user[ssCpuRawUser.{#SNMPINDEX}] Preprocessing
|
| CPU steal time | MIB: UCD-SNMP-MIB The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine. |
Dependent item | system.cpu.steal[ssCpuRawSteal.{#SNMPINDEX}] Preprocessing
|
| CPU softirq time | MIB: UCD-SNMP-MIB Time the CPU has been servicing software interrupts. |
Dependent item | system.cpu.softirq[ssCpuRawSoftIRQ.{#SNMPINDEX}] Preprocessing
|
| CPU nice time | MIB: UCD-SNMP-MIB Time the CPU has spent running users' processes that have been niced. |
Dependent item | system.cpu.nice[ssCpuRawNice.{#SNMPINDEX}] Preprocessing
|
| CPU iowait time | MIB: UCD-SNMP-MIB Time the CPU has been waiting for I/O to complete. |
Dependent item | system.cpu.iowait[ssCpuRawWait.{#SNMPINDEX}] Preprocessing
|
| CPU interrupt time | MIB: UCD-SNMP-MIB Time the CPU has spent servicing hardware interrupts. |
Dependent item | system.cpu.interrupt[ssCpuRawInterrupt.{#SNMPINDEX}] Preprocessing
|
| CPU guest time | MIB: UCD-SNMP-MIB Time spent on running a virtual CPU for a guest operating system. |
Dependent item | system.cpu.guest[ssCpuRawGuest.{#SNMPINDEX}] Preprocessing
|
| CPU guest nice time | MIB: UCD-SNMP-MIB Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel). |
Dependent item | system.cpu.guest_nice[ssCpuRawGuestNice.{#SNMPINDEX}] Preprocessing
|
| CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util[snmp,{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Linux by SNMP/system.cpu.util[snmp,{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | UCD-SNMP-MIB::dskEntry table discovery with storage filter |
Dependent item | vfs.fs.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | MIB: UCD-SNMP-MIB Intermediate data for subsequent processing. |
Dependent item | vfs.fs.walk.data[dskEntry.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used | MIB: UCD-SNMP-MIB Used storage is calculated from two portions: dskUsedHigh dskUsedLow Together they compose 64-bit number. Reserved space is not counted in. |
Dependent item | vfs.fs.used[dskUsed.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | MIB: UCD-SNMP-MIB Total storage is calculated from two portions: dskTotalHigh dskTotalLow Together they compose 64-bit number. |
Dependent item | vfs.fs.total[dskTotal.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Available | UCD-SNMP-MIB::dskEntry Available storage space is calculated from two portions: dskAvailHigh dskAvailLow Together they compose 64-bit number. |
Dependent item | vfs.fs.free[dskAvail.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | UCD-SNMP-MIB::dskEntry Space utilization is calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.pused[{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | MIB: UCD-SNMP-MIB Free metadata space expressed as percentage. |
Dependent item | vfs.fs.inode.pfree[{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: FS [{#FSNAME}]: Space is critically low | The volume's space usage exceeds the '{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%' limit; |
min(/Linux by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is low | The volume's space usage exceeds the '{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%' limit; |
min(/Linux by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by SNMP/vfs.fs.inode.pfree[{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by SNMP/vfs.fs.inode.pfree[{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovering interfaces from IF-MIB. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Operational status | MIB: IF-MIB The current operational state of the interface. - The testing(3) state indicates that no operational packet scan be passed - If ifAdminStatus is down(2) then ifOperStatus should be down(2) - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. |
Dependent item | net.if.status[ifOperStatus.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits received | MIB: IF-MIB The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in[ifHCInOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | 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.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out[ifHCOutOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.errors[ifInErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.errors[ifOutErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.discards[ifInDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | MIB: IF-MIB The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention. |
Dependent item | net.if.type[ifType.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero. |
Dependent item | net.if.speed[ifHighSpeed.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) |
Average | Manual close: Yes |
| Linux: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Linux by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Linux by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): 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 SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| EtherLike-MIB Discovery | Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with |
Dependent item | net.if.duplex.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Duplex status | MIB: EtherLike-MIB The current mode of operation of the MAC entity. Management control of the duplex mode is accomplished through the MAU MIB. When an interface does not support autonegotiation or when autonegotiation is not enabled, the duplex mode is controlled using Note that this object provides redundant information with Reference: [IEEE 802.3 Std.], 30.3.1.1.32,aDuplexStatus. |
Dependent item | net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Interface {#IFNAME}({#IFALIAS}): In half-duplex mode | Please check autonegotiation settings and cabling. |
last(/Linux by SNMP/net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2 |
Warning | Manual close: Yes |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_snmp_snmp?at=release/7.0
This is an official Linux template. It requires an SNMP client.
pused = 100 * (used / used + available)Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install snmpd agent on Linux OS, enable SNMPv2.
Make sure access to UCD-SNMP-MIB is allowed from Zabbix server/proxy host, since, by default, snmpd (for example, in Ubuntu) limits access to basic system information only:
rocommunity public default -V systemonly
Ensure snmpd is monitoring disks, using includeALLDisks or disk options. Example:
includeALLDisks 0% # monitors all disks starting with 0% fill rate
# disk / 0% # monitor only / root volume starting with 0% fill rate
Make sure you change that in order to read metrics of UCD-SNMP-MIB and UCD-DISKIO-MIB. Please refer to the documentation: http://www.net-snmp.org/wiki/index.php/Vacm.
You can also try to use snmpconf: http://www.net-snmp.org/wiki/index.php/TUT:snmpd_configuration.
Change {$SNMP_COMMUNITY} on the host level in Zabbix.
| Name | Description | Default |
|---|---|---|
| {$MEMORY.UTIL.MAX} | Used as a threshold in the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a threshold in the available memory trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$CPU.UTIL.CRIT} | Critical threshold of CPU utilization expressed in %. |
90 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSDEVICE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.*(tmpfs|shm)$ |
| {$VFS.FS.FSDEVICE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$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 |
| {$SNMP.TIMEOUT} | Time interval for the SNMP availability trigger. |
5m |
| {$ICMP_LOSS_WARN} | Warning threshold of ICMP packet loss in %. |
20 |
| {$ICMP_RESPONSE_TIME_WARN} | Warning threshold of the average ICMP response time in seconds. |
0.15 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore |
^6$ |
| {$NET.IF.IFADMINSTATUS.MATCHES} | Used in network interface discovery rule filters. |
^.* |
| {$NET.IF.IFADMINSTATUS.NOT_MATCHES} | Ignore |
^2$ |
| {$NET.IF.IFDESCR.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$NET.IF.IFALIAS.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$NET.IF.IFTYPE.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFTYPE.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Memory utilization | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
Calculated | vm.memory.util[snmp] |
| Free memory | MIB: UCD-SNMP-MIB |
SNMP agent | vm.memory.free[memAvailReal.0] Preprocessing
|
| Memory (buffers) | MIB: UCD-SNMP-MIB Memory used by kernel buffers (Buffers in /proc/meminfo). |
SNMP agent | vm.memory.buffers[memBuffer.0] Preprocessing
|
| Memory (cached) | MIB: UCD-SNMP-MIB Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo). |
SNMP agent | vm.memory.cached[memCached.0] Preprocessing
|
| Total memory | MIB: UCD-SNMP-MIB Total memory expressed in bytes. |
SNMP agent | vm.memory.total[memTotalReal.0] Preprocessing
|
| Available memory | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
Calculated | vm.memory.available[snmp] |
| Total swap space | MIB: UCD-SNMP-MIB The total amount of swap space configured for this host. |
SNMP agent | system.swap.total[memTotalSwap.0] Preprocessing
|
| Free swap space | MIB: UCD-SNMP-MIB The amount of swap space currently unused or available. |
SNMP agent | system.swap.free[memAvailSwap.0] Preprocessing
|
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Calculated | system.swap.pfree[snmp] |
| SNMP walk block devices | Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable). |
SNMP agent | vfs.dev.walk |
| Load average (1m avg) | MIB: UCD-SNMP-MIB |
Dependent item | system.cpu.load.avg1[laLoad.1] Preprocessing
|
| Load average (5m avg) | MIB: UCD-SNMP-MIB |
Dependent item | system.cpu.load.avg5[laLoad.2] Preprocessing
|
| Load average (15m avg) | MIB: UCD-SNMP-MIB |
Dependent item | system.cpu.load.avg15[laLoad.3] Preprocessing
|
| SNMP walk system CPUs | MIB: HOST-RESOURCES-MIB Discovering system CPUs. |
SNMP agent | system.cpu.walk |
| SNMP walk CPU load averages | MIB: UCD-SNMP-MIB SNMP walk through laTable. The collected data used in dependent CPU load average items. |
SNMP agent | system.cpu.load.walk Preprocessing
|
| Number of CPUs | Count the number of CPU cores by counting number of cores discovered in hrProcessorTable using LLD. |
Dependent item | system.cpu.num[snmp] Preprocessing
|
| Interrupts per second | Number of interrupts processed. |
SNMP agent | system.cpu.intr[ssRawInterrupts.0] Preprocessing
|
| Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
SNMP agent | system.cpu.switches[ssRawContexts.0] Preprocessing
|
| SNMP walk mounted filesystems | MIB: UCD-SNMP-MIB Snmp walk through dskEntry table. Collected data used in filesystem lld and dependent item prototypes. |
SNMP agent | vfs.fs.walk Preprocessing
|
| Uptime (network) | MIB: SNMPv2-MIB Time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| 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 | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| System location | MIB: SNMPv2-MIB Physical location of the node (e.g., |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| System contact details | MIB: SNMPv2-MIB The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| System object ID | MIB: SNMPv2-MIB The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| System name | MIB: SNMPv2-MIB An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string. |
SNMP agent | system.name Preprocessing
|
| System description | MIB: SNMPv2-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. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| ICMP ping | The host accessibility by ICMP ping. 0 - ICMP ping fails; 1 - ICMP ping successful. |
Simple check | icmpping |
| ICMP loss | The percentage of lost packets. |
Simple check | icmppingloss |
| ICMP response time | The ICMP ping response time (in seconds). |
Simple check | icmppingsec |
| Linux: SNMP walk network interfaces | Discovering interfaces from IF-MIB. |
SNMP agent | net.if.walk |
| Linux: SNMP walk EtherLike-MIB interfaces | Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with |
SNMP agent | net.if.duplex.walk |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: High memory utilization | The system is running out of free memory. |
min(/Linux by SNMP/vm.memory.util[snmp],5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | The system is running out of memory. |
max(/Linux by SNMP/vm.memory.available[snmp],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by SNMP/vm.memory.total[memTotalReal.0])>0 |
Average | |
| Linux: High swap space usage | If there is no swap configured, this trigger is ignored. |
max(/Linux by SNMP/system.swap.pfree[snmp],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by SNMP/system.swap.total[memTotalSwap.0])>0 |
Warning | Depends on:
|
| Linux: Load average is too high | The load average per CPU is too high. The system may be slow to respond. |
min(/Linux by SNMP/system.cpu.load.avg1[laLoad.1],5m)/last(/Linux by SNMP/system.cpu.num[snmp])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by SNMP/system.cpu.load.avg5[laLoad.2])>0 and last(/Linux by SNMP/system.cpu.load.avg15[laLoad.3])>0 |
Average | |
| Linux: Host has been restarted | Uptime is less than 10 minutes. |
(last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Linux by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| Linux: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/Linux by SNMP/system.name,#1)<>last(/Linux by SNMP/system.name,#2) and length(last(/Linux by SNMP/system.name))>0 |
Info | Manual close: Yes |
| Linux: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/Linux by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| Linux: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/Linux by SNMP/icmpping,#3)=0 |
High | |
| Linux: High ICMP ping loss | ICMP packets loss detected. |
min(/Linux by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Linux by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
| Linux: High ICMP ping response time | Average ICMP response time is too high. |
avg(/Linux by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable) |
Dependent item | vfs.dev.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | MIB: UCD-DISKIO-MIB The number of read accesses from this device since boot. |
Dependent item | vfs.dev.read.rate[diskIOReads.{#SNMPINDEX}] Preprocessing
|
| {#DEVNAME}: Disk write rate | MIB: UCD-DISKIO-MIB The number of write accesses from this device since boot. |
Dependent item | vfs.dev.write.rate[diskIOWrites.{#SNMPINDEX}] Preprocessing
|
| {#DEVNAME}: Disk utilization | MIB: UCD-DISKIO-MIB The 1 minute average load of disk (%) |
Dependent item | vfs.dev.util[diskIOLA1.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | This discovery will create set of per core CPU metrics from UCD-SNMP-MIB, using {#CPU.COUNT} in preprocessing. That's the only reason why LLD is used. |
Dependent item | cpu.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU idle time | MIB: UCD-SNMP-MIB Time the CPU has spent doing nothing. |
Dependent item | system.cpu.idle[ssCpuRawIdle.{#SNMPINDEX}] Preprocessing
|
| CPU system time | MIB: UCD-SNMP-MIB Time the CPU has spent running the kernel and its processes. |
Dependent item | system.cpu.system[ssCpuRawSystem.{#SNMPINDEX}] Preprocessing
|
| CPU user time | MIB: UCD-SNMP-MIB Time the CPU has spent running users' processes that are not niced. |
Dependent item | system.cpu.user[ssCpuRawUser.{#SNMPINDEX}] Preprocessing
|
| CPU steal time | MIB: UCD-SNMP-MIB The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine. |
Dependent item | system.cpu.steal[ssCpuRawSteal.{#SNMPINDEX}] Preprocessing
|
| CPU softirq time | MIB: UCD-SNMP-MIB Time the CPU has been servicing software interrupts. |
Dependent item | system.cpu.softirq[ssCpuRawSoftIRQ.{#SNMPINDEX}] Preprocessing
|
| CPU nice time | MIB: UCD-SNMP-MIB Time the CPU has spent running users' processes that have been niced. |
Dependent item | system.cpu.nice[ssCpuRawNice.{#SNMPINDEX}] Preprocessing
|
| CPU iowait time | MIB: UCD-SNMP-MIB Time the CPU has been waiting for I/O to complete. |
Dependent item | system.cpu.iowait[ssCpuRawWait.{#SNMPINDEX}] Preprocessing
|
| CPU interrupt time | MIB: UCD-SNMP-MIB Time the CPU has spent servicing hardware interrupts. |
Dependent item | system.cpu.interrupt[ssCpuRawInterrupt.{#SNMPINDEX}] Preprocessing
|
| CPU guest time | MIB: UCD-SNMP-MIB Time spent on running a virtual CPU for a guest operating system. |
Dependent item | system.cpu.guest[ssCpuRawGuest.{#SNMPINDEX}] Preprocessing
|
| CPU guest nice time | MIB: UCD-SNMP-MIB Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel). |
Dependent item | system.cpu.guest_nice[ssCpuRawGuestNice.{#SNMPINDEX}] Preprocessing
|
| CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util[snmp,{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Linux by SNMP/system.cpu.util[snmp,{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | UCD-SNMP-MIB::dskEntry table discovery with storage filter |
Dependent item | vfs.fs.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | MIB: UCD-SNMP-MIB Intermediate data for subsequent processing. |
Dependent item | vfs.fs.walk.data[dskEntry.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used | MIB: UCD-SNMP-MIB Used storage is calculated from two portions: dskUsedHigh dskUsedLow Together they compose 64-bit number. Reserved space is not counted in. |
Dependent item | vfs.fs.used[dskUsed.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | MIB: UCD-SNMP-MIB Total storage is calculated from two portions: dskTotalHigh dskTotalLow Together they compose 64-bit number. |
Dependent item | vfs.fs.total[dskTotal.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Available | UCD-SNMP-MIB::dskEntry Available storage space is calculated from two portions: dskAvailHigh dskAvailLow Together they compose 64-bit number. |
Dependent item | vfs.fs.free[dskAvail.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | UCD-SNMP-MIB::dskEntry Space utilization is calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.pused[{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | MIB: UCD-SNMP-MIB Free metadata space expressed as percentage. |
Dependent item | vfs.fs.inode.pfree[{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: FS [{#FSNAME}]: Space is critically low | The volume's space usage exceeds the '{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%' limit; |
min(/Linux by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is low | The volume's space usage exceeds the '{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%' limit; |
min(/Linux by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by SNMP/vfs.fs.inode.pfree[{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by SNMP/vfs.fs.inode.pfree[{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovering interfaces from IF-MIB. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Operational status | MIB: IF-MIB The current operational state of the interface. - The testing(3) state indicates that no operational packet scan be passed - If ifAdminStatus is down(2) then ifOperStatus should be down(2) - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. |
Dependent item | net.if.status[ifOperStatus.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits received | MIB: IF-MIB The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in[ifHCInOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | 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.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out[ifHCOutOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.errors[ifInErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.errors[ifOutErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.discards[ifInDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | MIB: IF-MIB The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention. |
Dependent item | net.if.type[ifType.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero. |
Dependent item | net.if.speed[ifHighSpeed.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) |
Average | Manual close: Yes |
| Linux: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Linux by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Linux by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): 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 SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| EtherLike-MIB Discovery | Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with |
Dependent item | net.if.duplex.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Duplex status | MIB: EtherLike-MIB The current mode of operation of the MAC entity. Management control of the duplex mode is accomplished through the MAU MIB. When an interface does not support autonegotiation or when autonegotiation is not enabled, the duplex mode is controlled using Note that this object provides redundant information with Reference: [IEEE 802.3 Std.], 30.3.1.1.32,aDuplexStatus. |
Dependent item | net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Interface {#IFNAME}({#IFALIAS}): In half-duplex mode | Please check autonegotiation settings and cabling. |
last(/Linux by SNMP/net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2 |
Warning | Manual close: Yes |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_snmp_snmp?at=release/6.4
This is an official Linux template. It requires an SNMP client.
pused = 100 * (used / used + available)Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install snmpd agent on Linux OS, enable SNMPv2.
Make sure access to UCD-SNMP-MIB is allowed from Zabbix server/proxy host, since, by default, snmpd (for example, in Ubuntu) limits access to basic system information only:
rocommunity public default -V systemonly
Ensure snmpd is monitoring disks, using includeALLDisks or disk options. Example:
includeALLDisks 0% # monitors all disks starting with 0% fill rate
# disk / 0% # monitor only / root volume starting with 0% fill rate
Make sure you change that in order to read metrics of UCD-SNMP-MIB and UCD-DISKIO-MIB. Please refer to the documentation: http://www.net-snmp.org/wiki/index.php/Vacm
You can also try to use snmpconf:
http://www.net-snmp.org/wiki/index.php/TUT:snmpd_configuration
Change {$SNMP_COMMUNITY} on the host level in Zabbix.
| Name | Description | Default |
|---|---|---|
| {$MEMORY.UTIL.MAX} | Used as a threshold in the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a threshold in the available memory trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$CPU.UTIL.CRIT} | Critical threshold of CPU utilization expressed in %. |
90 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSDEVICE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.*(tmpfs|shm)$ |
| {$VFS.FS.FSDEVICE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$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 |
| {$SNMP.TIMEOUT} | 5m |
|
| {$ICMP_LOSS_WARN} | 20 |
|
| {$ICMP_RESPONSE_TIME_WARN} | 0.15 |
|
| {$IF.ERRORS.WARN} | 2 |
|
| {$IF.UTIL.MAX} | 90 |
|
| {$IFCONTROL} | 1 |
|
| {$NET.IF.IFNAME.MATCHES} | ^.*$ |
|
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | ^.*$ |
|
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore notPresent(6) |
^6$ |
| {$NET.IF.IFADMINSTATUS.MATCHES} | ^.* |
|
| {$NET.IF.IFADMINSTATUS.NOT_MATCHES} | Ignore down(2) administrative status |
^2$ |
| {$NET.IF.IFDESCR.MATCHES} | .* |
|
| {$NET.IF.IFDESCR.NOT_MATCHES} | CHANGE_IF_NEEDED |
|
| {$NET.IF.IFALIAS.MATCHES} | .* |
|
| {$NET.IF.IFALIAS.NOT_MATCHES} | CHANGE_IF_NEEDED |
|
| {$NET.IF.IFTYPE.MATCHES} | .* |
|
| {$NET.IF.IFTYPE.NOT_MATCHES} | CHANGE_IF_NEEDED |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Linux: Memory utilization | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
Calculated | vm.memory.util[snmp] |
| Linux: Free memory | MIB: UCD-SNMP-MIB |
SNMP agent | vm.memory.free[memAvailReal.0] Preprocessing
|
| Linux: Memory (buffers) | MIB: UCD-SNMP-MIB Memory used by kernel buffers (Buffers in /proc/meminfo). |
SNMP agent | vm.memory.buffers[memBuffer.0] Preprocessing
|
| Linux: Memory (cached) | MIB: UCD-SNMP-MIB Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo). |
SNMP agent | vm.memory.cached[memCached.0] Preprocessing
|
| Linux: Total memory | MIB: UCD-SNMP-MIB Total memory expressed in bytes. |
SNMP agent | vm.memory.total[memTotalReal.0] Preprocessing
|
| Linux: Available memory | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
Calculated | vm.memory.available[snmp] |
| Linux: Total swap space | MIB: UCD-SNMP-MIB The total amount of swap space configured for this host. |
SNMP agent | system.swap.total[memTotalSwap.0] Preprocessing
|
| Linux: Free swap space | MIB: UCD-SNMP-MIB The amount of swap space currently unused or available. |
SNMP agent | system.swap.free[memAvailSwap.0] Preprocessing
|
| Linux: Free swap space in % | The free space of the swap volume/file expressed in %. |
Calculated | system.swap.pfree[snmp] |
| Linux: SNMP walk block devices | Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable). |
SNMP agent | vfs.dev.walk |
| Linux: Load average (1m avg) | MIB: UCD-SNMP-MIB |
SNMP agent | system.cpu.load.avg1[laLoad.1] |
| Linux: Load average (5m avg) | MIB: UCD-SNMP-MIB |
SNMP agent | system.cpu.load.avg5[laLoad.2] |
| Linux: Load average (15m avg) | MIB: UCD-SNMP-MIB |
SNMP agent | system.cpu.load.avg15[laLoad.3] |
| Linux: SNMP walk system CPUs | MIB: HOST-RESOURCES-MIB Discovering system CPUs. |
SNMP agent | system.cpu.walk |
| Linux: Number of CPUs | Count the number of CPU cores by counting number of cores discovered in hrProcessorTable using LLD. |
Dependent item | system.cpu.num[snmp] Preprocessing
|
| Linux: Interrupts per second | Number of interrupts processed. |
SNMP agent | system.cpu.intr[ssRawInterrupts.0] Preprocessing
|
| Linux: Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
SNMP agent | system.cpu.switches[ssRawContexts.0] Preprocessing
|
| Linux: SNMP walk mounted filesystems | MIB: UCD-SNMP-MIB Snmp walk through dskEntry table. Collected data used in filesystem lld and dependent item prototypes. |
SNMP agent | vfs.fs.walk Preprocessing
|
| Linux: Uptime (network) | MIB: SNMPv2-MIB The time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| Linux: 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 | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| Linux: SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| Linux: System location | MIB: SNMPv2-MIB The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string. |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| Linux: System contact details | MIB: SNMPv2-MIB The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| Linux: System object ID | MIB: SNMPv2-MIB The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| Linux: System name | MIB: SNMPv2-MIB An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string. |
SNMP agent | system.name Preprocessing
|
| Linux: System description | MIB: SNMPv2-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. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| Linux: SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible value: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| Linux: ICMP ping | Simple check | icmpping | |
| Linux: ICMP loss | Simple check | icmppingloss | |
| Linux: ICMP response time | Simple check | icmppingsec | |
| Linux: SNMP walk network interfaces | Discovering interfaces from IF-MIB. |
SNMP agent | net.if.walk |
| Linux: SNMP walk EtherLike-MIB interfaces | Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with up(1) Operational Status are discovered. |
SNMP agent | net.if.duplex.walk |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: High memory utilization | The system is running out of free memory. |
min(/Linux by SNMP/vm.memory.util[snmp],5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | The system is running out of memory. |
max(/Linux by SNMP/vm.memory.available[snmp],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by SNMP/vm.memory.total[memTotalReal.0])>0 |
Average | |
| Linux: High swap space usage | If there is no swap configured, this trigger is ignored. |
max(/Linux by SNMP/system.swap.pfree[snmp],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by SNMP/system.swap.total[memTotalSwap.0])>0 |
Warning | Depends on:
|
| Linux: Load average is too high | The load average per CPU is too high. The system may be slow to respond. |
min(/Linux by SNMP/system.cpu.load.avg1[laLoad.1],5m)/last(/Linux by SNMP/system.cpu.num[snmp])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by SNMP/system.cpu.load.avg5[laLoad.2])>0 and last(/Linux by SNMP/system.cpu.load.avg15[laLoad.3])>0 |
Average | |
| Linux: Host has been restarted | Uptime is less than 10 minutes. |
(last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Linux by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| Linux: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/Linux by SNMP/system.name,#1)<>last(/Linux by SNMP/system.name,#2) and length(last(/Linux by SNMP/system.name))>0 |
Info | Manual close: Yes |
| Linux: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/Linux by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| Linux: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/Linux by SNMP/icmpping,#3)=0 |
High | |
| Linux: High ICMP ping loss | min(/Linux by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Linux by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
|
| Linux: High ICMP ping response time | avg(/Linux by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable) |
Dependent item | vfs.dev.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | MIB: UCD-DISKIO-MIB The number of read accesses from this device since boot. |
Dependent item | vfs.dev.read.rate[diskIOReads.{#SNMPINDEX}] Preprocessing
|
| {#DEVNAME}: Disk write rate | MIB: UCD-DISKIO-MIB The number of write accesses from this device since boot. |
Dependent item | vfs.dev.write.rate[diskIOWrites.{#SNMPINDEX}] Preprocessing
|
| {#DEVNAME}: Disk utilization | MIB: UCD-DISKIO-MIB The 1 minute average load of disk (%) |
Dependent item | vfs.dev.util[diskIOLA1.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | This discovery will create set of per core CPU metrics from UCD-SNMP-MIB, using {#CPU.COUNT} in preprocessing. That's the only reason why LLD is used. |
Dependent item | cpu.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Linux: CPU idle time | MIB: UCD-SNMP-MIB Time the CPU has spent doing nothing. |
Dependent item | system.cpu.idle[ssCpuRawIdle.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU system time | MIB: UCD-SNMP-MIB Time the CPU has spent running the kernel and its processes. |
Dependent item | system.cpu.system[ssCpuRawSystem.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU user time | MIB: UCD-SNMP-MIB Time the CPU has spent running users' processes that are not niced. |
Dependent item | system.cpu.user[ssCpuRawUser.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU steal time | MIB: UCD-SNMP-MIB The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine. |
Dependent item | system.cpu.steal[ssCpuRawSteal.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU softirq time | MIB: UCD-SNMP-MIB Time the CPU has been servicing software interrupts. |
Dependent item | system.cpu.softirq[ssCpuRawSoftIRQ.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU nice time | MIB: UCD-SNMP-MIB Time the CPU has spent running users' processes that have been niced. |
Dependent item | system.cpu.nice[ssCpuRawNice.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU iowait time | MIB: UCD-SNMP-MIB Time the CPU has been waiting for I/O to complete. |
Dependent item | system.cpu.iowait[ssCpuRawWait.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU interrupt time | MIB: UCD-SNMP-MIB Time the CPU has spent servicing hardware interrupts. |
Dependent item | system.cpu.interrupt[ssCpuRawInterrupt.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU guest time | MIB: UCD-SNMP-MIB Time spent on running a virtual CPU for a guest operating system. |
Dependent item | system.cpu.guest[ssCpuRawGuest.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU guest nice time | MIB: UCD-SNMP-MIB Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel). |
Dependent item | system.cpu.guest_nice[ssCpuRawGuestNice.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util[snmp,{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Linux by SNMP/system.cpu.util[snmp,{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | UCD-SNMP-MIB::dskEntry table discovery with storage filter |
Dependent item | vfs.fs.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | MIB: UCD-SNMP-MIB Intermediate data for subsequent processing. |
Dependent item | vfs.fs.walk.data[dskEntry.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used | MIB: UCD-SNMP-MIB Used storage is calculated from two portions: dskUsedHigh dskUsedLow Together they compose 64-bit number. Reserverd space is not counted in. |
Dependent item | vfs.fs.used[dskUsed.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | MIB: UCD-SNMP-MIB Total storage is calculated from two portions: dskTotalHigh dskTotalLow Together they compose 64-bit number. |
Dependent item | vfs.fs.total[dskTotal.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Available | UCD-SNMP-MIB::dskEntry Available storage space is calculated from two portions: dskAvailHigh dskAvailLow Together they compose 64-bit number. |
Dependent item | vfs.fs.free[dskAvail.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | UCD-SNMP-MIB::dskEntry Space utilization is calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.pused[{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | MIB: UCD-SNMP-MIB Free metadata space expressed as percentage. |
Dependent item | vfs.fs.inode.pfree[{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| FS [{#FSNAME}]: Space is critically low | The volume's space usage exceeds the '{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%' limit; |
min(/Linux by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| FS [{#FSNAME}]: Space is low | The volume's space usage exceeds the '{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%' limit; |
min(/Linux by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by SNMP/vfs.fs.inode.pfree[{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by SNMP/vfs.fs.inode.pfree[{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovering interfaces from IF-MIB. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Operational status | MIB: IF-MIB The current operational state of the interface. - The testing(3) state indicates that no operational packet scan be passed - If ifAdminStatus is down(2) then ifOperStatus should be down(2) - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. |
Dependent item | net.if.status[ifOperStatus.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits received | MIB: IF-MIB The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in[ifHCInOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | 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.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out[ifHCOutOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.errors[ifInErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.errors[ifOutErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.discards[ifInDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | MIB: IF-MIB The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention. |
Dependent item | net.if.type[ifType.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of |
Dependent item | net.if.speed[ifHighSpeed.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) |
Average | Manual close: Yes |
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Linux by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Linux by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): 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 SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| EtherLike-MIB Discovery | Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with up(1) Operational Status are discovered. |
Dependent item | net.if.duplex.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Duplex status | MIB: EtherLike-MIB The current mode of operation of the MAC entity. 'unknown' indicates that the current duplex mode could not be determined. Management control of the duplex mode is accomplished through the MAU MIB. When an interface does not support autonegotiation, or when autonegotiation is not enabled, the duplex mode is controlled using ifMauDefaultType. When autonegotiation is supported and enabled, duplex mode is controlled using ifMauAutoNegAdvertisedBits. In either case, the currently operating duplex mode is reflected both in this object and in ifMauType. Note that this object provides redundant information with ifMauType. Normally, redundant objects are discouraged. However, in this instance, it allows a management application to determine the duplex status of an interface without having to know every possible value of ifMauType. This was felt to be sufficiently valuable to justify the redundancy. Reference: [IEEE 802.3 Std.], 30.3.1.1.32,aDuplexStatus. |
Dependent item | net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): In half-duplex mode | Please check autonegotiation settings and cabling |
last(/Linux by SNMP/net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2 |
Warning | Manual close: Yes |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_snmp_snmp?at=release/6.2
For Zabbix version: 6.2 and higher.
Install snmpd agent on Linux OS, enable SNMPv2.
Make sure access to UCD-SNMP-MIB is allowed from Zabbix server/proxy host, since,
by default, snmpd (for example, in Ubuntu) limits access to basic system information only:
rocommunity public default -V systemonly
Make sure you change that in order to read metrics of UCD-SNMP-MIB and UCD-DISKIO-MIB. Please refer to the documentation:
http://www.net-snmp.org/wiki/index.php/Vacm
You can also try to use snmpconf:
http://www.net-snmp.org/wiki/index.php/TUT:snmpd_configuration
Change {$SNMP_COMMUNITY} on the host level in Zabbix.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | - |
90 |
| {$ICMP_LOSS_WARN} | - |
20 |
| {$ICMP_RESPONSE_TIME_WARN} | - |
0.15 |
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | - |
90 |
| {$IFCONTROL} | - |
1 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$MEMORY.AVAILABLE.MIN} | - |
20M |
| {$MEMORY.UTIL.MAX} | - |
90 |
| {$NET.IF.IFADMINSTATUS.MATCHES} | Ignore notPresent(6) |
^.* |
| {$NET.IF.IFADMINSTATUS.NOT_MATCHES} | Ignore down(2) administrative status |
^2$ |
| {$NET.IF.IFALIAS.MATCHES} | - |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | - |
CHANGE_IF_NEEDED |
| {$NET.IF.IFDESCR.MATCHES} | - |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | - |
CHANGE_IF_NEEDED |
| {$NET.IF.IFNAME.MATCHES} | - |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
`(^Software Loopback Interface |
| {$NET.IF.IFOPERSTATUS.MATCHES} | - |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore notPresent(6) |
^6$ |
| {$NET.IF.IFTYPE.MATCHES} | - |
.* |
| {$NET.IF.IFTYPE.NOT_MATCHES} | - |
CHANGE_IF_NEEDED |
| {$SNMP.TIMEOUT} | - |
5m |
| {$SWAP.PFREE.MIN.WARN} | - |
50 |
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
`^(loop[0-9]* |
| {$VFS.FS.FREE.MIN.CRIT} | The critical threshold of the filesystem utilization. |
5G |
| {$VFS.FS.FREE.MIN.WARN} | The warning threshold of the filesystem utilization. |
10G |
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(/dev |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`.*(.4 |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
^\s$ |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | - |
10 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | - |
20 |
| {$VFS.FS.PUSED.MAX.CRIT} | - |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | - |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable) |
SNMP | vfs.dev.discovery[snmp] Filter: AND- {#DEVNAME} MATCHES_REGEX - {#DEVNAME} NOT_MATCHES_REGEX |
| CPU discovery | This discovery will create set of per core CPU metrics from UCD-SNMP-MIB, using {#CPU.COUNT} in preprocessing. That's the only reason why LLD is used. |
DEPENDENT | cpu.discovery[snmp] Preprocessing: - JAVASCRIPT: |
| EtherLike-MIB Discovery | Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with up(1) Operational Status are discovered. |
SNMP | net.if.duplex.discovery Preprocessing: - JAVASCRIPT: Filter: AND- {#IFOPERSTATUS} MATCHES_REGEX - {#SNMPVALUE} MATCHES_REGEX `(2 |
| Mounted filesystem discovery | HOST-RESOURCES-MIB::hrStorage discovery with storage filter |
SNMP | vfs.fs.discovery[snmp] Filter: AND- {#FSTYPE} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX |
| Network interfaces discovery | Discovering interfaces from IF-MIB. |
SNMP | net.if.discovery Filter: AND- {#IFADMINSTATUS} MATCHES_REGEX - {#IFADMINSTATUS} NOT_MATCHES_REGEX - {#IFOPERSTATUS} MATCHES_REGEX - {#IFOPERSTATUS} NOT_MATCHES_REGEX - {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX - {#IFDESCR} MATCHES_REGEX - {#IFDESCR} NOT_MATCHES_REGEX - {#IFALIAS} MATCHES_REGEX - {#IFALIAS} NOT_MATCHES_REGEX - {#IFTYPE} MATCHES_REGEX - {#IFTYPE} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Load average (1m avg) | MIB: UCD-SNMP-MIB |
SNMP | system.cpu.load.avg1[laLoad.1] |
| CPU | Load average (5m avg) | MIB: UCD-SNMP-MIB |
SNMP | system.cpu.load.avg5[laLoad.2] |
| CPU | Load average (15m avg) | MIB: UCD-SNMP-MIB |
SNMP | system.cpu.load.avg15[laLoad.3] |
| CPU | Number of CPUs | MIB: HOST-RESOURCES-MIB Count the number of CPU cores by counting number of cores discovered in hrProcessorTable using LLD |
SNMP | system.cpu.num[snmp] Preprocessing: - JAVASCRIPT: |
| CPU | Interrupts per second | - |
SNMP | system.cpu.intr[ssRawInterrupts.0] Preprocessing: - CHANGE_PER_SECOND |
| CPU | Context switches per second | - |
SNMP | system.cpu.switches[ssRawContexts.0] Preprocessing: - CHANGE_PER_SECOND |
| CPU | CPU idle time | MIB: UCD-SNMP-MIB The time the CPU has spent doing nothing. |
SNMP | system.cpu.idle[ssCpuRawIdle.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU system time | MIB: UCD-SNMP-MIB The time the CPU has spent running the kernel and its processes. |
SNMP | system.cpu.system[ssCpuRawSystem.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU user time | MIB: UCD-SNMP-MIB The time the CPU has spent running users' processes that are not niced. |
SNMP | system.cpu.user[ssCpuRawUser.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU steal time | MIB: UCD-SNMP-MIB The amount of 'stolen' CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine. |
SNMP | system.cpu.steal[ssCpuRawSteal.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU softirq time | MIB: UCD-SNMP-MIB The amount of time the CPU has been servicing software interrupts. |
SNMP | system.cpu.softirq[ssCpuRawSoftIRQ.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU nice time | MIB: UCD-SNMP-MIB The time the CPU has spent running users' processes that have been niced. |
SNMP | system.cpu.nice[ssCpuRawNice.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU iowait time | MIB: UCD-SNMP-MIB The amount of time the CPU has been waiting for I/O to complete. |
SNMP | system.cpu.iowait[ssCpuRawWait.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU interrupt time | MIB: UCD-SNMP-MIB The amount of time the CPU has been servicing hardware interrupts. |
SNMP | system.cpu.interrupt[ssCpuRawInterrupt.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU guest time | MIB: UCD-SNMP-MIB Guest time - the time spent on running a virtual CPU for a guest operating system. |
SNMP | system.cpu.guest[ssCpuRawGuest.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU guest nice time | MIB: UCD-SNMP-MIB The time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel). |
SNMP | system.cpu.guest_nice[ssCpuRawGuestNice.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU utilization | The CPU utilization expressed in %. |
DEPENDENT | system.cpu.util[snmp,{#SNMPINDEX}] Preprocessing: - JAVASCRIPT: |
| General | SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP_TRAP | snmptrap.fallback |
| General | System location | MIB: SNMPv2-MIB The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string. |
SNMP | system.location[sysLocation.0] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System contact details | MIB: SNMPv2-MIB The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string. |
SNMP | system.contact[sysContact.0] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System object ID | MIB: SNMPv2-MIB The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining |
SNMP | system.objectid[sysObjectID.0] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System name | MIB: SNMPv2-MIB An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string. |
SNMP | system.name Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | MIB: SNMPv2-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. |
SNMP | system.descr[sysDescr.0] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Memory | Memory utilization | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
CALCULATED | vm.memory.util[snmp] Expression: (last(//vm.memory.total[memTotalReal.0])-(last(//vm.memory.free[memAvailReal.0])+last(//vm.memory.buffers[memBuffer.0])+last(//vm.memory.cached[memCached.0])))/last(//vm.memory.total[memTotalReal.0])*100 |
| Memory | Free memory | MIB: UCD-SNMP-MIB |
SNMP | vm.memory.free[memAvailReal.0] Preprocessing: - MULTIPLIER: |
| Memory | Memory (buffers) | MIB: UCD-SNMP-MIB Memory used by kernel buffers (Buffers in /proc/meminfo). |
SNMP | vm.memory.buffers[memBuffer.0] Preprocessing: - MULTIPLIER: |
| Memory | Memory (cached) | MIB: UCD-SNMP-MIB Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo). |
SNMP | vm.memory.cached[memCached.0] Preprocessing: - MULTIPLIER: |
| Memory | Total memory | MIB: UCD-SNMP-MIB The total memory expressed in Bytes. |
SNMP | vm.memory.total[memTotalReal.0] Preprocessing: - MULTIPLIER: |
| Memory | Available memory | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
CALCULATED | vm.memory.available[snmp] Expression: last(//vm.memory.free[memAvailReal.0])+last(//vm.memory.buffers[memBuffer.0])+last(//vm.memory.cached[memCached.0]) |
| Memory | Total swap space | MIB: UCD-SNMP-MIB The total amount of swap space configured for this host. |
SNMP | system.swap.total[memTotalSwap.0] Preprocessing: - MULTIPLIER: |
| Memory | Free swap space | MIB: UCD-SNMP-MIB The amount of swap space currently unused or available. |
SNMP | system.swap.free[memAvailSwap.0] Preprocessing: - MULTIPLIER: |
| Memory | Free swap space in % | The free space of the swap volume/file expressed in %. |
CALCULATED | system.swap.pfree[snmp] Expression: last(//system.swap.free[memAvailSwap.0])/last(//system.swap.total[memTotalSwap.0])*100 |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Duplex status | MIB: EtherLike-MIB The current mode of operation of the MAC entity. 'unknown' indicates that the current duplex mode could not be determined. Management control of the duplex mode is accomplished through the MAU MIB. When an interface does not support autonegotiation, or when autonegotiation is not enabled, the duplex mode is controlled using ifMauDefaultType. When autonegotiation is supported and enabled, duplex mode is controlled using ifMauAutoNegAdvertisedBits. In either case, the currently operating duplex mode is reflected both in this object and in ifMauType. Note that this object provides redundant information with ifMauType. Normally, redundant objects are discouraged. However, in this instance, it allows a management application to determine the duplex status of an interface without having to know every possible value of ifMauType. This was felt to be sufficiently valuable to justify the redundancy. Reference: [IEEE 802.3 Std.], 30.3.1.1.32,aDuplexStatus. |
SNMP | net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}] |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Operational status | MIB: IF-MIB The current operational state of the interface. - The testing(3) state indicates that no operational packet scan be passed - If ifAdminStatus is down(2) then ifOperStatus should be down(2) - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. |
SNMP | net.if.status[ifOperStatus.{#SNMPINDEX}] |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits received | MIB: IF-MIB The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP | net.if.in[ifHCInOctets.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | 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.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP | net.if.out[ifHCOutOctets.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP | net.if.in.errors[ifInErrors.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP | net.if.out.errors[ifOutErrors.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP | net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP | net.if.in.discards[ifInDiscards.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | MIB: IF-MIB The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention. |
SNMP | net.if.type[ifType.{#SNMPINDEX}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of |
SNMP | net.if.speed[ifHighSpeed.{#SNMPINDEX}] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
| Status | Uptime (network) | MIB: SNMPv2-MIB The time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP | system.net.uptime[sysUpTime.0] Preprocessing: - MULTIPLIER: |
| Status | 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 | system.hw.uptime[hrSystemUptime.0] Preprocessing: - CHECK_NOT_SUPPORTED ⛔️ON_FAIL: - MULTIPLIER: |
| Status | SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible value: 0 - not available 1 - available 2 - unknown |
INTERNAL | zabbix[host,snmp,available] |
| Status | ICMP ping | - |
SIMPLE | icmpping |
| Status | ICMP loss | - |
SIMPLE | icmppingloss |
| Status | ICMP response time | - |
SIMPLE | icmppingsec |
| Storage | {#DEVNAME}: Disk read rate | MIB: UCD-DISKIO-MIB The number of read accesses from this device since boot. |
SNMP | vfs.dev.read.rate[diskIOReads.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk write rate | MIB: UCD-DISKIO-MIB The number of write accesses from this device since boot. |
SNMP | vfs.dev.write.rate[diskIOWrites.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk utilization | MIB: UCD-DISKIO-MIB The 1 minute average load of disk (%) |
SNMP | vfs.dev.util[diskIOLA1.{#SNMPINDEX}] |
| Storage | {#FSNAME}: Used space | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
SNMP | vfs.fs.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing: - MULTIPLIER: |
| Storage | {#FSNAME}: Total space | MIB: HOST-RESOURCES-MIB The size of the storage represented by this entry, in units of hrStorageAllocationUnits. This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system. For example, the amount of main storage allocated to a buffer pool might be modified or the amount of disk space allocated to virtual storage might be modified. |
SNMP | vfs.fs.total[hrStorageSize.{#SNMPINDEX}] Preprocessing: - MULTIPLIER: |
| Storage | {#FSNAME}: Space utilization | The space utilization expressed in % for {#FSNAME}. |
CALCULATED | vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}] Expression: (last(//vfs.fs.used[hrStorageUsed.{#SNMPINDEX}])/last(//vfs.fs.total[hrStorageSize.{#SNMPINDEX}]))*100 |
| Storage | {#FSNAME}: Free inodes in % | MIB: UCD-SNMP-MIB If having problems collecting this item make sure access to UCD-SNMP-MIB is allowed. |
SNMP | vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}] Preprocessing: - JAVASCRIPT: |
| 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 SNMP/system.cpu.load.avg1[laLoad.1],5m)/last(/Linux by SNMP/system.cpu.num[snmp])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by SNMP/system.cpu.load.avg5[laLoad.2])>0 and last(/Linux by SNMP/system.cpu.load.avg15[laLoad.3])>0 |
AVERAGE | |
| High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/Linux by SNMP/system.cpu.util[snmp,{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT} |
WARNING | |
| System name has changed | The name of the system has changed. Ack to close the problem manually. |
last(/Linux by SNMP/system.name,#1)<>last(/Linux by SNMP/system.name,#2) and length(last(/Linux by SNMP/system.name))>0 |
INFO | Manual close: YES |
| High memory utilization | The system is running out of free memory. |
min(/Linux by SNMP/vm.memory.util[snmp],5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | Depends on: - Lack of available memory |
| Lack of available memory | - |
max(/Linux by SNMP/vm.memory.available[snmp],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by SNMP/vm.memory.total[memTotalReal.0])>0 |
AVERAGE | |
| High swap space usage | If there is no swap configured, this trigger is ignored. |
max(/Linux by SNMP/system.swap.pfree[snmp],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by SNMP/system.swap.total[memTotalSwap.0])>0 |
WARNING | Depends on: - High memory utilization - Lack of available memory |
| Interface {#IFNAME}({#IFALIAS}): In half-duplex mode | Please check autonegotiation settings and cabling |
last(/Linux by SNMP/net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2 |
WARNING | Manual close: YES |
| Interface {#IFNAME}({#IFALIAS}): 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 'ethernal 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 SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))Recovery expression: last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Linux by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0Recovery expression: avg(/Linux by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and avg(/Linux by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
min(/Linux by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}Recovery expression: max(/Linux by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Linux by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): 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 SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2)Recovery expression: (change(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Host has been restarted | Uptime is less than 10 minutes. |
(last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Linux by SNMP/system.net.uptime[sysUpTime.0])<10m) |
WARNING | Manual close: YES Depends on: - No SNMP data collection |
| No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/Linux by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
WARNING | Depends on: - Unavailable by ICMP ping |
| Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/Linux by SNMP/icmpping,#3)=0 |
HIGH | |
| High ICMP ping loss | - |
min(/Linux by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Linux by SNMP/icmppingloss,5m)<100 |
WARNING | Depends on: - Unavailable by ICMP ping |
| High ICMP ping response time | - |
avg(/Linux by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
WARNING | Depends on: - High ICMP ping loss - Unavailable by ICMP ping |
| {#FSNAME}: Disk space is critically low | Two conditions should match: 1. The first condition - utilization of 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 SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Linux by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Linux by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low | Two conditions should match: 1. The first condition - utilization of 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 SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Linux by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Linux by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],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. 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 SNMP/vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}],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. 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 SNMP/vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
WARNING | Depends on: - {#FSNAME}: Running out of free inodes |
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.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_snmp_snmp?at=release/6.0
This template is designed for the effortless deployment of Linux monitoring by Zabbix via SNMP and doesn't require any external scripts.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install snmpd agent on Linux OS, enable SNMPv2.
Make sure access to UCD-SNMP-MIB is allowed from Zabbix server/proxy host, since,
by default, snmpd (for example, in Ubuntu) limits access to basic system information only:
rocommunity public default -V systemonly
Make sure you change that in order to read metrics of UCD-SNMP-MIB and UCD-DISKIO-MIB. Please refer to the documentation:
http://www.net-snmp.org/wiki/index.php/Vacm
You can also try to use snmpconf:
http://www.net-snmp.org/wiki/index.php/TUT:snmpd_configuration
Change {$SNMP_COMMUNITY} on the host level in Zabbix.
| Name | Description | Default |
|---|---|---|
| {$MEMORY.UTIL.MAX} | 90 |
|
| {$MEMORY.AVAILABLE.MIN} | 20M |
|
| {$SWAP.PFREE.MIN.WARN} | 50 |
|
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
Macro too long. Please see the template. |
| {$CPU.UTIL.CRIT} | 90 |
|
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
^\s$ |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
.*(\.4|\.9|hrStorageFixedDisk|hrStorageFlashMemory)$ |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | 10 |
|
| {$VFS.FS.INODE.PFREE.MIN.WARN} | 20 |
|
| {$VFS.FS.PUSED.MAX.CRIT} | 90 |
|
| {$VFS.FS.PUSED.MAX.WARN} | 80 |
|
| {$SNMP.TIMEOUT} | 5m |
|
| {$ICMP_LOSS_WARN} | 20 |
|
| {$ICMP_RESPONSE_TIME_WARN} | 0.15 |
|
| {$IF.ERRORS.WARN} | 2 |
|
| {$IF.UTIL.MAX} | 90 |
|
| {$IFCONTROL} | 1 |
|
| {$NET.IF.IFNAME.MATCHES} | ^.*$ |
|
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | ^.*$ |
|
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore notPresent(6) |
^6$ |
| {$NET.IF.IFADMINSTATUS.MATCHES} | ^.* |
|
| {$NET.IF.IFADMINSTATUS.NOT_MATCHES} | Ignore down(2) administrative status |
^2$ |
| {$NET.IF.IFDESCR.MATCHES} | .* |
|
| {$NET.IF.IFDESCR.NOT_MATCHES} | CHANGE_IF_NEEDED |
|
| {$NET.IF.IFALIAS.MATCHES} | .* |
|
| {$NET.IF.IFALIAS.NOT_MATCHES} | CHANGE_IF_NEEDED |
|
| {$NET.IF.IFTYPE.MATCHES} | .* |
|
| {$NET.IF.IFTYPE.NOT_MATCHES} | CHANGE_IF_NEEDED |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Linux: Memory utilization | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
Calculated | vm.memory.util[snmp] |
| Linux: Free memory | MIB: UCD-SNMP-MIB |
SNMP agent | vm.memory.free[memAvailReal.0] Preprocessing
|
| Linux: Memory (buffers) | MIB: UCD-SNMP-MIB Memory used by kernel buffers (Buffers in /proc/meminfo). |
SNMP agent | vm.memory.buffers[memBuffer.0] Preprocessing
|
| Linux: Memory (cached) | MIB: UCD-SNMP-MIB Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo). |
SNMP agent | vm.memory.cached[memCached.0] Preprocessing
|
| Linux: Total memory | MIB: UCD-SNMP-MIB The total memory expressed in bytes. |
SNMP agent | vm.memory.total[memTotalReal.0] Preprocessing
|
| Linux: Available memory | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
Calculated | vm.memory.available[snmp] |
| Linux: Total swap space | MIB: UCD-SNMP-MIB The total amount of swap space configured for this host. |
SNMP agent | system.swap.total[memTotalSwap.0] Preprocessing
|
| Linux: Free swap space | MIB: UCD-SNMP-MIB The amount of swap space currently unused or available. |
SNMP agent | system.swap.free[memAvailSwap.0] Preprocessing
|
| Linux: Free swap space in % | The free space of the swap volume/file expressed in %. |
Calculated | system.swap.pfree[snmp] |
| Linux: Load average (1m avg) | MIB: UCD-SNMP-MIB |
SNMP agent | system.cpu.load.avg1[laLoad.1] |
| Linux: Load average (5m avg) | MIB: UCD-SNMP-MIB |
SNMP agent | system.cpu.load.avg5[laLoad.2] |
| Linux: Load average (15m avg) | MIB: UCD-SNMP-MIB |
SNMP agent | system.cpu.load.avg15[laLoad.3] |
| Linux: Number of CPUs | MIB: HOST-RESOURCES-MIB Count the number of CPU cores by counting number of cores discovered in hrProcessorTable using LLD |
SNMP agent | system.cpu.num[snmp] Preprocessing
|
| Linux: Interrupts per second | SNMP agent | system.cpu.intr[ssRawInterrupts.0] Preprocessing
|
|
| Linux: Context switches per second | SNMP agent | system.cpu.switches[ssRawContexts.0] Preprocessing
|
|
| Linux: Uptime (network) | MIB: SNMPv2-MIB The time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| Linux: 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 | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| Linux: SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| Linux: System location | MIB: SNMPv2-MIB The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string. |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| Linux: System contact details | MIB: SNMPv2-MIB The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| Linux: System object ID | MIB: SNMPv2-MIB The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| Linux: System name | MIB: SNMPv2-MIB An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string. |
SNMP agent | system.name Preprocessing
|
| Linux: System description | MIB: SNMPv2-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. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| Linux: SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible value: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| Linux: ICMP ping | Simple check | icmpping | |
| Linux: ICMP loss | Simple check | icmppingloss | |
| Linux: ICMP response time | Simple check | icmppingsec |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: High memory utilization | The system is running out of free memory. |
min(/Linux by SNMP/vm.memory.util[snmp],5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | max(/Linux by SNMP/vm.memory.available[snmp],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by SNMP/vm.memory.total[memTotalReal.0])>0 |
Average | ||
| Linux: High swap space usage | If there is no swap configured, this trigger is ignored. |
max(/Linux by SNMP/system.swap.pfree[snmp],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by SNMP/system.swap.total[memTotalSwap.0])>0 |
Warning | Depends on:
|
| Linux: Load average is too high | The load average per CPU is too high. The system may be slow to respond. |
min(/Linux by SNMP/system.cpu.load.avg1[laLoad.1],5m)/last(/Linux by SNMP/system.cpu.num[snmp])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by SNMP/system.cpu.load.avg5[laLoad.2])>0 and last(/Linux by SNMP/system.cpu.load.avg15[laLoad.3])>0 |
Average | |
| Linux: Host has been restarted | Uptime is less than 10 minutes. |
(last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Linux by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Linux by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| Linux: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/Linux by SNMP/system.name,#1)<>last(/Linux by SNMP/system.name,#2) and length(last(/Linux by SNMP/system.name))>0 |
Info | Manual close: Yes |
| Linux: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/Linux by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| Linux: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/Linux by SNMP/icmpping,#3)=0 |
High | |
| Linux: High ICMP ping loss | min(/Linux by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Linux by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
|
| Linux: High ICMP ping response time | avg(/Linux by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable) |
SNMP agent | vfs.dev.discovery[snmp] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | MIB: UCD-DISKIO-MIB The number of read accesses from this device since boot. |
SNMP agent | vfs.dev.read.rate[diskIOReads.{#SNMPINDEX}] Preprocessing
|
| {#DEVNAME}: Disk write rate | MIB: UCD-DISKIO-MIB The number of write accesses from this device since boot. |
SNMP agent | vfs.dev.write.rate[diskIOWrites.{#SNMPINDEX}] Preprocessing
|
| {#DEVNAME}: Disk utilization | MIB: UCD-DISKIO-MIB The 1 minute average load of disk (%) |
SNMP agent | vfs.dev.util[diskIOLA1.{#SNMPINDEX}] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | This discovery will create set of per core CPU metrics from UCD-SNMP-MIB, using {#CPU.COUNT} in preprocessing. That's the only reason why LLD is used. |
Dependent item | cpu.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Linux: CPU idle time | MIB: UCD-SNMP-MIB The time the CPU has spent doing nothing. |
SNMP agent | system.cpu.idle[ssCpuRawIdle.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU system time | MIB: UCD-SNMP-MIB The time the CPU has spent running the kernel and its processes. |
SNMP agent | system.cpu.system[ssCpuRawSystem.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU user time | MIB: UCD-SNMP-MIB The time the CPU has spent running users' processes that are not niced. |
SNMP agent | system.cpu.user[ssCpuRawUser.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU steal time | MIB: UCD-SNMP-MIB The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine. |
SNMP agent | system.cpu.steal[ssCpuRawSteal.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU softirq time | MIB: UCD-SNMP-MIB The amount of time the CPU has been servicing software interrupts. |
SNMP agent | system.cpu.softirq[ssCpuRawSoftIRQ.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU nice time | MIB: UCD-SNMP-MIB The time the CPU has spent running users' processes that have been niced. |
SNMP agent | system.cpu.nice[ssCpuRawNice.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU iowait time | MIB: UCD-SNMP-MIB The amount of time the CPU has been waiting for I/O to complete. |
SNMP agent | system.cpu.iowait[ssCpuRawWait.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU interrupt time | MIB: UCD-SNMP-MIB The amount of time the CPU has been servicing hardware interrupts. |
SNMP agent | system.cpu.interrupt[ssCpuRawInterrupt.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU guest time | MIB: UCD-SNMP-MIB Guest time - the time spent on running a virtual CPU for a guest operating system. |
SNMP agent | system.cpu.guest[ssCpuRawGuest.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU guest nice time | MIB: UCD-SNMP-MIB The time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel). |
SNMP agent | system.cpu.guest_nice[ssCpuRawGuestNice.{#SNMPINDEX}] Preprocessing
|
| Linux: CPU utilization | The CPU utilization expressed in %. |
Dependent item | system.cpu.util[snmp,{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/Linux by SNMP/system.cpu.util[snmp,{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | HOST-RESOURCES-MIB::hrStorage discovery with storage filter |
SNMP agent | vfs.fs.discovery[snmp] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FSNAME}: Used space | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
SNMP agent | vfs.fs.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing
|
| {#FSNAME}: Total space | MIB: HOST-RESOURCES-MIB The size of the storage represented by this entry, in units of hrStorageAllocationUnits. This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system. For example, the amount of main storage allocated to a buffer pool might be modified or the amount of disk space allocated to virtual storage might be modified. |
SNMP agent | vfs.fs.total[hrStorageSize.{#SNMPINDEX}] Preprocessing
|
| {#FSNAME}: Space utilization | The space utilization expressed in % for {#FSNAME}. |
Calculated | vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}] |
| {#FSNAME}: Free inodes in % | MIB: UCD-SNMP-MIB If having problems collecting this item make sure access to UCD-SNMP-MIB is allowed. |
SNMP agent | vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low | The volume's space usage exceeds the |
last(/Linux by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| {#FSNAME}: Disk space is low | The volume's space usage exceeds the |
last(/Linux by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| {#FSNAME}: Running out of free inodes | It may become impossible to write to a disk if there are no index nodes left. |
min(/Linux by SNMP/vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}],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. |
min(/Linux by SNMP/vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovering interfaces from IF-MIB. |
SNMP agent | net.if.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Operational status | MIB: IF-MIB The current operational state of the interface. - The testing(3) state indicates that no operational packet scan be passed - If ifAdminStatus is down(2) then ifOperStatus should be down(2) - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. |
SNMP agent | net.if.status[ifOperStatus.{#SNMPINDEX}] |
| Interface {#IFNAME}({#IFALIAS}): Bits received | MIB: IF-MIB The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP agent | net.if.in[ifHCInOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | 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.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP agent | net.if.out[ifHCOutOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP agent | net.if.in.errors[ifInErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP agent | net.if.out.errors[ifOutErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP agent | net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP agent | net.if.in.discards[ifInDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | MIB: IF-MIB The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention. |
SNMP agent | net.if.type[ifType.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of |
SNMP agent | net.if.speed[ifHighSpeed.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) |
Average | Manual close: Yes |
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Linux by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Linux by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): 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 SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Linux by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Linux by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Linux by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| EtherLike-MIB Discovery | Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with up(1) Operational Status are discovered. |
SNMP agent | net.if.duplex.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Duplex status | MIB: EtherLike-MIB The current mode of operation of the MAC entity. 'unknown' indicates that the current duplex mode could not be determined. Management control of the duplex mode is accomplished through the MAU MIB. When an interface does not support autonegotiation, or when autonegotiation is not enabled, the duplex mode is controlled using ifMauDefaultType. When autonegotiation is supported and enabled, duplex mode is controlled using ifMauAutoNegAdvertisedBits. In either case, the currently operating duplex mode is reflected both in this object and in ifMauType. Note that this object provides redundant information with ifMauType. Normally, redundant objects are discouraged. However, in this instance, it allows a management application to determine the duplex status of an interface without having to know every possible value of ifMauType. This was felt to be sufficiently valuable to justify the redundancy. Reference: [IEEE 802.3 Std.], 30.3.1.1.32,aDuplexStatus. |
SNMP agent | net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): In half-duplex mode | Please check autonegotiation settings and cabling |
last(/Linux by SNMP/net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2 |
Warning | Manual close: Yes |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_snmp_snmp?at=release/5.4
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MEMORY.AVAILABLE.MIN} | - |
20M |
| {$MEMORY.UTIL.MAX} | - |
90 |
| {$SWAP.PFREE.MIN.WARN} | - |
50 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Memory | Memory utilization | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
CALCULATED | vm.memory.util[snmp] Expression: (last(//vm.memory.total[memTotalReal.0])-(last(//vm.memory.free[memAvailReal.0])+last(//vm.memory.buffers[memBuffer.0])+last(//vm.memory.cached[memCached.0])))/last(//vm.memory.total[memTotalReal.0])*100 |
| Memory | Free memory | MIB: UCD-SNMP-MIB |
SNMP | vm.memory.free[memAvailReal.0] Preprocessing: - MULTIPLIER: |
| Memory | Memory (buffers) | MIB: UCD-SNMP-MIB Memory used by kernel buffers (Buffers in /proc/meminfo) |
SNMP | vm.memory.buffers[memBuffer.0] Preprocessing: - MULTIPLIER: |
| Memory | Memory (cached) | MIB: UCD-SNMP-MIB Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo) |
SNMP | vm.memory.cached[memCached.0] Preprocessing: - MULTIPLIER: |
| Memory | Total memory | MIB: UCD-SNMP-MIB Total memory in Bytes |
SNMP | vm.memory.total[memTotalReal.0] Preprocessing: - MULTIPLIER: |
| Memory | Available memory | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
CALCULATED | vm.memory.available[snmp] Expression: last(//vm.memory.free[memAvailReal.0])+last(//vm.memory.buffers[memBuffer.0])+last(//vm.memory.cached[memCached.0]) |
| Memory | Total swap space | MIB: UCD-SNMP-MIB The total amount of swap space configured for this host. |
SNMP | system.swap.total[memTotalSwap.0] Preprocessing: - MULTIPLIER: |
| Memory | Free swap space | MIB: UCD-SNMP-MIB The amount of swap space currently unused or available. |
SNMP | system.swap.free[memAvailSwap.0] Preprocessing: - MULTIPLIER: |
| Memory | Free swap space in % | The free space of swap volume/file in percent. |
CALCULATED | system.swap.pfree[snmp] Expression: last(//system.swap.free[memAvailSwap.0])/last(//system.swap.total[memTotalSwap.0])*100 |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) | The system is running out of free memory. |
min(/Linux memory SNMP/vm.memory.util[snmp],5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | Depends on: - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
| Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) | - |
min(/Linux memory SNMP/vm.memory.available[snmp],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory SNMP/vm.memory.total[memTotalReal.0])>0 |
AVERAGE | |
| High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free) | This trigger is ignored, if there is no swap configured |
min(/Linux memory SNMP/system.swap.pfree[snmp],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux memory SNMP/system.swap.total[memTotalSwap.0])>0 |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
`^(loop[0-9]* |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable) |
SNMP | vfs.dev.discovery[snmp] Filter: AND- {#DEVNAME} MATCHES_REGEX - {#DEVNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Storage | {#DEVNAME}: Disk read rate | MIB: UCD-DISKIO-MIB The number of read accesses from this device since boot. |
SNMP | vfs.dev.read.rate[diskIOReads.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk write rate | MIB: UCD-DISKIO-MIB The number of write accesses from this device since boot. |
SNMP | vfs.dev.write.rate[diskIOWrites.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk utilization | MIB: UCD-DISKIO-MIB The 1 minute average load of disk (%) |
SNMP | vfs.dev.util[diskIOLA1.{#SNMPINDEX}] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | - |
90 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | This discovery will create set of per core CPU metrics from UCD-SNMP-MIB, using {#CPU.COUNT} in preprocessing. That's the only reason why LLD is used. |
DEPENDENT | cpu.discovery[snmp] Preprocessing: - JAVASCRIPT: |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Load average (1m avg) | MIB: UCD-SNMP-MIB |
SNMP | system.cpu.load.avg1[laLoad.1] |
| CPU | Load average (5m avg) | MIB: UCD-SNMP-MIB |
SNMP | system.cpu.load.avg5[laLoad.2] |
| CPU | Load average (15m avg) | MIB: UCD-SNMP-MIB |
SNMP | system.cpu.load.avg15[laLoad.3] |
| CPU | Number of CPUs | MIB: HOST-RESOURCES-MIB Count the number of CPU cores by counting number of cores discovered in hrProcessorTable using LLD |
SNMP | system.cpu.num[snmp] Preprocessing: - JAVASCRIPT: |
| CPU | Interrupts per second | - |
SNMP | system.cpu.intr[ssRawInterrupts.0] Preprocessing: - CHANGE_PER_SECOND |
| CPU | Context switches per second | - |
SNMP | system.cpu.switches[ssRawContexts.0] Preprocessing: - CHANGE_PER_SECOND |
| CPU | CPU idle time | MIB: UCD-SNMP-MIB The time the CPU has spent doing nothing. |
SNMP | system.cpu.idle[ssCpuRawIdle.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU system time | MIB: UCD-SNMP-MIB The time the CPU has spent running the kernel and its processes. |
SNMP | system.cpu.system[ssCpuRawSystem.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU user time | MIB: UCD-SNMP-MIB The time the CPU has spent running users' processes that are not niced. |
SNMP | system.cpu.user[ssCpuRawUser.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU steal time | MIB: UCD-SNMP-MIB The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine). |
SNMP | system.cpu.steal[ssCpuRawSteal.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU softirq time | MIB: UCD-SNMP-MIB The amount of time the CPU has been servicing software interrupts. |
SNMP | system.cpu.softirq[ssCpuRawSoftIRQ.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU nice time | MIB: UCD-SNMP-MIB The time the CPU has spent running users' processes that have been niced. |
SNMP | system.cpu.nice[ssCpuRawNice.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU iowait time | MIB: UCD-SNMP-MIB Amount of time the CPU has been waiting for I/O to complete. |
SNMP | system.cpu.iowait[ssCpuRawWait.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU interrupt time | MIB: UCD-SNMP-MIB The amount of time the CPU has been servicing hardware interrupts. |
SNMP | system.cpu.interrupt[ssCpuRawInterrupt.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU guest time | MIB: UCD-SNMP-MIB Guest time (time spent running a virtual CPU for a guest operating system) |
SNMP | system.cpu.guest[ssCpuRawGuest.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU guest nice time | MIB: UCD-SNMP-MIB Time spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel) |
SNMP | system.cpu.guest_nice[ssCpuRawGuestNice.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU utilization | CPU utilization in % |
DEPENDENT | system.cpu.util[snmp,{#SNMPINDEX}] Preprocessing: - JAVASCRIPT: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) | Per CPU load average is too high. Your system may be slow to respond. |
min(/Linux CPU SNMP/system.cpu.load.avg1[laLoad.1],5m)/last(/Linux CPU SNMP/system.cpu.num[snmp])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux CPU SNMP/system.cpu.load.avg5[laLoad.2])>0 and last(/Linux CPU SNMP/system.cpu.load.avg15[laLoad.3])>0 |
AVERAGE | |
| High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | CPU utilization is too high. The system might be slow to respond. |
min(/Linux CPU SNMP/system.cpu.util[snmp,{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT} |
WARNING |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(/dev |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`.*(.4 |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
^\s$ |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | - |
10 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | - |
20 |
| {$VFS.FS.PUSED.MAX.CRIT} | - |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | - |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | HOST-RESOURCES-MIB::hrStorage discovery with storage filter |
SNMP | vfs.fs.discovery[snmp] Filter: AND- {#FSTYPE} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Storage | {#FSNAME}: Used space | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
SNMP | vfs.fs.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing: - MULTIPLIER: |
| Storage | {#FSNAME}: Total space | MIB: HOST-RESOURCES-MIB The size of the storage represented by this entry, in units of hrStorageAllocationUnits. This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system. For example, the amount of main storage allocated to a buffer pool might be modified or the amount of disk space allocated to virtual storage might be modified. |
SNMP | vfs.fs.total[hrStorageSize.{#SNMPINDEX}] Preprocessing: - MULTIPLIER: |
| Storage | {#FSNAME}: Space utilization | Space utilization in % for {#FSNAME} |
CALCULATED | vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}] Expression: (last(//vfs.fs.used[hrStorageUsed.{#SNMPINDEX}])/last(//vfs.fs.total[hrStorageSize.{#SNMPINDEX}]))*100 |
| Storage | {#FSNAME}: Free inodes in % | MIB: UCD-SNMP-MIB If having problems collecting this item make sure access to UCD-SNMP-MIB is allowed. |
SNMP | vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}] Preprocessing: - JAVASCRIPT: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than 5G. - The disk will be full in less than 24 hours. |
last(/Linux filesystems SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux filesystems SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Linux filesystems SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<5G or timeleft(/Linux filesystems SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than 10G. - The disk will be full in less than 24 hours. |
last(/Linux filesystems SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux filesystems SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Linux filesystems SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<10G or timeleft(/Linux filesystems SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
min(/Linux filesystems SNMP/vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
AVERAGE | |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
min(/Linux filesystems SNMP/vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
WARNING | Depends on: - {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Install snmpd agent on Linux OS, enable SNMPv2.
Make sure access to UCD-SNMP-MIB is allowed from Zabbix server/proxy host, since,
by default, snmpd (for example, in Ubuntu) limits access to basic system information only:
rocommunity public default -V systemonly
Make sure you change that in order to read metrics of UCD-SNMP-MIB and UCD-DISKIO-MIB. Please refer to the documentation:
http://www.net-snmp.org/wiki/index.php/Vacm
You can also try to use snmpconf:
http://www.net-snmp.org/wiki/index.php/TUT:snmpd_configuration
Change {$SNMP_COMMUNITY} on the host level in Zabbix.
No specific Zabbix configuration is required.
| Name |
|---|
| Linux CPU SNMP |
| Linux block devices SNMP |
| Linux filesystems SNMP |
| Linux memory SNMP |
| EtherLike-MIB SNMP |
| Generic SNMP |
| Interfaces SNMP |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_snmp_snmp?at=release/5.0
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MEMORY.AVAILABLE.MIN} | - |
20M |
| {$MEMORY.UTIL.MAX} | - |
90 |
| {$SWAP.PFREE.MIN.WARN} | - |
50 |
There are no template links in this template.
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Memory | Memory utilization | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
CALCULATED | vm.memory.util[snmp] Expression: (last("vm.memory.total[memTotalReal.0]")-(last("vm.memory.free[memAvailReal.0]")+last("vm.memory.buffers[memBuffer.0]")+last("vm.memory.cached[memCached.0]")))/last("vm.memory.total[memTotalReal.0]")*100 |
| Memory | Free memory | MIB: UCD-SNMP-MIB |
SNMP | vm.memory.free[memAvailReal.0] Preprocessing: - MULTIPLIER: |
| Memory | Memory (buffers) | MIB: UCD-SNMP-MIB Memory used by kernel buffers (Buffers in /proc/meminfo). |
SNMP | vm.memory.buffers[memBuffer.0] Preprocessing: - MULTIPLIER: |
| Memory | Memory (cached) | MIB: UCD-SNMP-MIB Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo). |
SNMP | vm.memory.cached[memCached.0] Preprocessing: - MULTIPLIER: |
| Memory | Total memory | MIB: UCD-SNMP-MIB Total memory in Bytes. |
SNMP | vm.memory.total[memTotalReal.0] Preprocessing: - MULTIPLIER: |
| Memory | Available memory | Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP. |
CALCULATED | vm.memory.available[snmp] Expression: last("vm.memory.free[memAvailReal.0]")+last("vm.memory.buffers[memBuffer.0]")+last("vm.memory.cached[memCached.0]") |
| Memory | Total swap space | MIB: UCD-SNMP-MIB The total amount of swap space configured for this host. |
SNMP | system.swap.total[memTotalSwap.0] Preprocessing: - MULTIPLIER: |
| Memory | Free swap space | MIB: UCD-SNMP-MIB The amount of swap space currently unused or available. |
SNMP | system.swap.free[memAvailSwap.0] Preprocessing: - MULTIPLIER: |
| Memory | Free swap space in % | The free space of swap volume/file in percent. |
CALCULATED | system.swap.pfree[snmp] Expression: last("system.swap.free[memAvailSwap.0]")/last("system.swap.total[memTotalSwap.0]")*100 |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) | The system is running out of free memory. |
{TEMPLATE_NAME:vm.memory.util[snmp].min(5m)}>{$MEMORY.UTIL.MAX} |
AVERAGE | Depends on: - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
| Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) | - |
{TEMPLATE_NAME:vm.memory.available[snmp].max(5m)}<{$MEMORY.AVAILABLE.MIN} and {TEMPLATE_NAME:vm.memory.total[memTotalReal.0].last()}>0 |
AVERAGE | |
| High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free) | This trigger is ignored, if there is no swap configured. |
{TEMPLATE_NAME:system.swap.pfree[snmp].max(5m)}<{$SWAP.PFREE.MIN.WARN} and {TEMPLATE_NAME:system.swap.total[memTotalSwap.0].last()}>0 |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
`^(loop[0-9]* |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable) |
SNMP | vfs.dev.discovery[snmp] Filter: AND- A: {#DEVNAME} MATCHES_REGEX - B: {#DEVNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Storage | {#DEVNAME}: Disk read rate | MIB: UCD-DISKIO-MIB The number of read accesses from this device since boot. |
SNMP | vfs.dev.read.rate[diskIOReads.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk write rate | MIB: UCD-DISKIO-MIB The number of write accesses from this device since boot. |
SNMP | vfs.dev.write.rate[diskIOWrites.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk utilization | MIB: UCD-DISKIO-MIB The 1 minute average load of disk (%) |
SNMP | vfs.dev.util[diskIOLA1.{#SNMPINDEX}] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | - |
90 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| CPU discovery | This discovery will create set of per core CPU metrics from UCD-SNMP-MIB, using {#CPU.COUNT} in preprocessing. That's the only reason why LLD is used. |
DEPENDENT | cpu.discovery[snmp] Preprocessing: - JAVASCRIPT: |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Load average (1m avg) | MIB: UCD-SNMP-MIB |
SNMP | system.cpu.load.avg1[laLoad.1] |
| CPU | Load average (5m avg) | MIB: UCD-SNMP-MIB |
SNMP | system.cpu.load.avg5[laLoad.2] |
| CPU | Load average (15m avg) | MIB: UCD-SNMP-MIB |
SNMP | system.cpu.load.avg15[laLoad.3] |
| CPU | Number of CPUs | MIB: HOST-RESOURCES-MIB Count the number of CPU cores by counting number of cores discovered in hrProcessorTable using LLD |
SNMP | system.cpu.num[snmp] Preprocessing: - JAVASCRIPT: |
| CPU | Interrupts per second | - |
SNMP | system.cpu.intr[ssRawInterrupts.0] Preprocessing: - CHANGE_PER_SECOND |
| CPU | Context switches per second | - |
SNMP | system.cpu.switches[ssRawContexts.0] Preprocessing: - CHANGE_PER_SECOND |
| CPU | CPU idle time | MIB: UCD-SNMP-MIB The time the CPU has spent doing nothing. |
SNMP | system.cpu.idle[ssCpuRawIdle.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU system time | MIB: UCD-SNMP-MIB The time the CPU has spent running the kernel and its processes. |
SNMP | system.cpu.system[ssCpuRawSystem.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU user time | MIB: UCD-SNMP-MIB The time the CPU has spent running users' processes that are not niced. |
SNMP | system.cpu.user[ssCpuRawUser.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU steal time | MIB: UCD-SNMP-MIB The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine). |
SNMP | system.cpu.steal[ssCpuRawSteal.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU softirq time | MIB: UCD-SNMP-MIB The amount of time the CPU has been servicing software interrupts. |
SNMP | system.cpu.softirq[ssCpuRawSoftIRQ.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU nice time | MIB: UCD-SNMP-MIB The time the CPU has spent running users' processes that have been niced. |
SNMP | system.cpu.nice[ssCpuRawNice.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU iowait time | MIB: UCD-SNMP-MIB Amount of time the CPU has been waiting for I/O to complete. |
SNMP | system.cpu.iowait[ssCpuRawWait.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU interrupt time | MIB: UCD-SNMP-MIB The amount of time the CPU has been servicing hardware interrupts. |
SNMP | system.cpu.interrupt[ssCpuRawInterrupt.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU guest time | MIB: UCD-SNMP-MIB Guest time (time spent running a virtual CPU for a guest operating system). |
SNMP | system.cpu.guest[ssCpuRawGuest.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU guest nice time | MIB: UCD-SNMP-MIB Time spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel). |
SNMP | system.cpu.guest_nice[ssCpuRawGuestNice.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND - JAVASCRIPT: |
| CPU | CPU utilization | CPU utilization in %. |
DEPENDENT | system.cpu.util[snmp,{#SNMPINDEX}] Preprocessing: - JAVASCRIPT: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) | Per CPU load average is too high. Your system may be slow to respond. |
{TEMPLATE_NAME:system.cpu.load.avg1[laLoad.1].min(5m)}/{TEMPLATE_NAME:system.cpu.num[snmp].last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} and {TEMPLATE_NAME:system.cpu.load.avg5[laLoad.2].last()}>0 and {TEMPLATE_NAME:system.cpu.load.avg15[laLoad.3].last()}>0 |
AVERAGE | |
| High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | CPU utilization is too high. The system might be slow to respond. |
{TEMPLATE_NAME:system.cpu.util[snmp,{#SNMPINDEX}].min(5m)}>{$CPU.UTIL.CRIT} |
WARNING |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.FS.FREE.MIN.CRIT} | The critical threshold of the filesystem utilization. |
5G |
| {$VFS.FS.FREE.MIN.WARN} | The warning threshold of the filesystem utilization. |
10G |
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(/dev |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`.*(.4 |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
^\s$ |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | - |
10 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | - |
20 |
| {$VFS.FS.PUSED.MAX.CRIT} | - |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | - |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | HOST-RESOURCES-MIB::hrStorage discovery with storage filter |
SNMP | vfs.fs.discovery[snmp] Filter: AND- A: {#FSTYPE} MATCHES_REGEX - B: {#FSTYPE} NOT_MATCHES_REGEX - C: {#FSNAME} MATCHES_REGEX - D: {#FSNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Storage | {#FSNAME}: Used space | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
SNMP | vfs.fs.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing: - MULTIPLIER: |
| Storage | {#FSNAME}: Total space | MIB: HOST-RESOURCES-MIB The size of the storage represented by this entry, in units of hrStorageAllocationUnits. This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system. For example, the amount of main storage allocated to a buffer pool might be modified or the amount of disk space allocated to virtual storage might be modified. |
SNMP | vfs.fs.total[hrStorageSize.{#SNMPINDEX}] Preprocessing: - MULTIPLIER: |
| Storage | {#FSNAME}: Space utilization | Space utilization in % for {#FSNAME} |
CALCULATED | vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}] Expression: (last("vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100 |
| Storage | {#FSNAME}: Free inodes in % | MIB: UCD-SNMP-MIB If having problems collecting this item make sure access to UCD-SNMP-MIB is allowed. |
SNMP | vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}] Preprocessing: - JAVASCRIPT: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}. 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. |
{TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and (({TEMPLATE_NAME:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{TEMPLATE_NAME:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or {TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}. 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. |
{TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and (({TEMPLATE_NAME:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{TEMPLATE_NAME:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or {TEMPLATE_NAME:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
{TEMPLATE_NAME:vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
AVERAGE | |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
{TEMPLATE_NAME:vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
WARNING | Depends on: - {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
Install snmpd agent on Linux OS, enable SNMPv2.
Make sure access to UCD-SNMP-MIB is allowed from Zabbix server/proxy host, since,
by default, snmpd (for example, in Ubuntu) limits access to basic system information only:
rocommunity public default -V systemonly
Make sure you change that in order to read metrics of UCD-SNMP-MIB and UCD-DISKIO-MIB. Please refer to the documentation:
http://www.net-snmp.org/wiki/index.php/Vacm
You can also try to use snmpconf:
http://www.net-snmp.org/wiki/index.php/TUT:snmpd_configuration
Change {$SNMP_COMMUNITY} on the host level in Zabbix.
No specific Zabbix configuration is required.
| Name |
|---|
| EtherLike-MIB SNMP |
| Generic SNMP |
| Interfaces SNMP |
| Linux CPU SNMP |
| Linux block devices SNMP |
| Linux filesystems SNMP |
| Linux memory SNMP |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_prom?at=release/7.4
This template collects Linux metrics from Node Exporter 0.18 and above. Support for older Node Exporter versions is provided as best effort.
pused = 100 - 100 * (available / total - free + available)Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Set up the node_exporter according to the official documentation. Use node_exporter v0.18.0 or above.
Set the hostname or IP address of the node_exporter host in the {$NODE_EXPORTER_HOST} macro. You can also change the Prometheus endpoint port in the {$NODE_EXPORTER_PORT} macro if necessary.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | Critical threshold of CPU utilization expressed in %. |
90 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$MEMORY.UTIL.MAX} | Used as a threshold in the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a threshold in the memory available trigger. |
20M |
| {$SWAP.PFREE.MIN.WARN} | Warning threshold of the minimum free swap. |
50 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$KERNEL.MAXFILES.MIN} | 256 |
|
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$NODE_EXPORTER_HOST} | The hostname or IP address of the node_exporter host. |
<SET NODE EXPORTER HOST> |
| {$NODE_EXPORTER_PORT} | TCP Port node_exporter is listening on. |
9100 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in ms) before the trigger fires. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in ms) before the trigger fires. |
20 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | The warning threshold of the filesystem metadata utilization. |
20 |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | The critical threshold of the filesystem metadata utilization. |
10 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | Used in network interface discovery rule filters. |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore |
^notpresent$ |
| {$NET.IF.IFALIAS.MATCHES} | Used in network interface discovery rule filters. |
^.*$ |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDEVICE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^.+$ |
| {$VFS.FS.FSDEVICE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get node_exporter metrics | HTTP agent | node_exporter.get | |
| Version of node_exporter running | Dependent item | agent.version[node_exporter] Preprocessing
|
|
| System boot time | Dependent item | system.boottime[node_exporter] Preprocessing
|
|
| System local time | The local system time of the host. |
Dependent item | system.localtime[node_exporter] Preprocessing
|
| System name | The host name of the system. |
Dependent item | system.name[node_exporter] Preprocessing
|
| System description | Labeled system information as provided by the uname system call. |
Dependent item | system.descr[node_exporter] Preprocessing
|
| Maximum number of open file descriptors | May be increased by using |
Dependent item | kernel.maxfiles[node_exporter] Preprocessing
|
| Number of open file descriptors | Dependent item | fd.open[node_exporter] Preprocessing
|
|
| Operating system | Dependent item | system.sw.os[node_exporter] Preprocessing
|
|
| Operating system architecture | Dependent item | system.sw.arch[node_exporter] Preprocessing
|
|
| System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Dependent item | system.uptime[node_exporter] Preprocessing
|
| Load average (1m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Dependent item | system.cpu.load.avg1[node_exporter] Preprocessing
|
| Load average (5m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Dependent item | system.cpu.load.avg5[node_exporter] Preprocessing
|
| Load average (15m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Dependent item | system.cpu.load.avg15[node_exporter] Preprocessing
|
| Number of CPUs | Dependent item | system.cpu.num[node_exporter] Preprocessing
|
|
| CPU idle time | Time the CPU has spent doing nothing. |
Dependent item | system.cpu.idle[node_exporter] Preprocessing
|
| CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util[node_exporter] Preprocessing
|
| CPU system time | Time the CPU has spent running the kernel and its processes. |
Dependent item | system.cpu.system[node_exporter] Preprocessing
|
| CPU user time | Time the CPU has spent running users' processes that are not niced. |
Dependent item | system.cpu.user[node_exporter] Preprocessing
|
| CPU steal time | The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine. |
Dependent item | system.cpu.steal[node_exporter] Preprocessing
|
| CPU softirq time | Time the CPU has spent servicing software interrupts. |
Dependent item | system.cpu.softirq[node_exporter] Preprocessing
|
| CPU nice time | Time the CPU has spent running users' processes that have been niced. |
Dependent item | system.cpu.nice[node_exporter] Preprocessing
|
| CPU iowait time | Time the CPU has been waiting for I/O to complete. |
Dependent item | system.cpu.iowait[node_exporter] Preprocessing
|
| CPU interrupt time | Time the CPU has spent servicing hardware interrupts. |
Dependent item | system.cpu.interrupt[node_exporter] Preprocessing
|
| CPU guest time | Time spent on running a virtual CPU for a guest operating system. |
Dependent item | system.cpu.guest[node_exporter] Preprocessing
|
| 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). |
Dependent item | system.cpu.guest_nice[node_exporter] Preprocessing
|
| Interrupts per second | Number of interrupts processed. |
Dependent item | system.cpu.intr[node_exporter] Preprocessing
|
| Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
Dependent item | system.cpu.switches[node_exporter] Preprocessing
|
| Memory utilization | Percentage calculated as (total-available)/total*100. |
Calculated | vm.memory.util[node_exporter] |
| Total memory | Total memory expressed in bytes. |
Dependent item | vm.memory.total[node_exporter] Preprocessing
|
| 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 |
Dependent item | vm.memory.available[node_exporter] Preprocessing
|
| Total swap space | Total space of the swap volume/file expressed in bytes. |
Dependent item | system.swap.total[node_exporter] Preprocessing
|
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Dependent item | system.swap.free[node_exporter] Preprocessing
|
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Calculated | system.swap.pfree[node_exporter] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: node_exporter is not available | Failed to fetch system metrics from node_exporter in time. |
nodata(/Linux by Prom/node_exporter.get,30m)=1 |
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 Prom/system.localtime[node_exporter],{$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. |
last(/Linux by Prom/system.name[node_exporter],#1)<>last(/Linux by Prom/system.name[node_exporter],#2) and length(last(/Linux by Prom/system.name[node_exporter]))>0 |
Info | Manual close: Yes |
| Linux: Configured max number of open filedescriptors is too low | last(/Linux by Prom/kernel.maxfiles[node_exporter])<{$KERNEL.MAXFILES.MIN} |
Info | Depends on:
|
|
| Linux: Running out of file descriptors | last(/Linux by Prom/fd.open[node_exporter])/last(/Linux by Prom/kernel.maxfiles[node_exporter])*100>80 |
Warning | ||
| 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. |
last(/Linux by Prom/system.sw.os[node_exporter],#1)<>last(/Linux by Prom/system.sw.os[node_exporter],#2) and length(last(/Linux by Prom/system.sw.os[node_exporter]))>0 |
Info | Manual close: Yes Depends on:
|
| Linux: {HOST.NAME} has been restarted | The device uptime is less than 10 minutes. |
last(/Linux by Prom/system.uptime[node_exporter])<10m |
Warning | Manual close: Yes |
| Linux: Load average is too high | The load average per CPU is too high. The system may be slow to respond. |
min(/Linux by Prom/system.cpu.load.avg1[node_exporter],5m)/last(/Linux by Prom/system.cpu.num[node_exporter])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by Prom/system.cpu.load.avg5[node_exporter])>0 and last(/Linux by Prom/system.cpu.load.avg15[node_exporter])>0 |
Average | |
| Linux: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/Linux by Prom/system.cpu.util[node_exporter],5m)>{$CPU.UTIL.CRIT} |
Warning | Depends on:
|
| Linux: High memory utilization | The system is running out of free memory. |
min(/Linux by Prom/vm.memory.util[node_exporter],5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | max(/Linux by Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>0 |
Average | ||
| Linux: High swap space usage | If there is no swap configured, this trigger is ignored. |
max(/Linux by Prom/system.swap.pfree[node_exporter],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Prom/system.swap.total[node_exporter])>0 |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of network interfaces. Requires node_exporter v0.18 and up. |
Dependent item | net.if.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Dependent item | net.if.in[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Dependent item | net.if.out[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | Dependent item | net.if.out.errors[node_exporter"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | Dependent item | net.if.in.errors[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | Dependent item | net.if.in.discards[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | Dependent item | net.if.out.discards[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Sets value to "0" if metric is missing in |
Dependent item | net.if.speed[node_exporter,"{#IFNAME}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | node_network_protocol_type protocol_type value of /sys/class/net/ |
Dependent item | net.if.type[node_exporter,"{#IFNAME}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
Dependent item | net.if.status[node_exporter,"{#IFNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) or avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])) and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): 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 Prom/net.if.speed[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and ( last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=7 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=11 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=62 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=69 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=117 ) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) |
Info | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): 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 Prom/net.if.type[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and (last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=1) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) |
Info | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of file systems of different types. |
Dependent item | vfs.fs.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.free[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.total[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Space: Used | Used storage expressed in bytes. Reserved space is not counted in. |
Dependent item | vfs.fs.used[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.pused[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | Free metadata space expressed as a percentage. |
Dependent item | vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#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.[node_exporter,"{#FSNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: FS [{#FSNAME}]: Space is critically low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%' limit. |
min(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%' limit. |
min(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Linux: FS [{#FSNAME}]: Filesystem has become read-only | The filesystem has become read-only, possibly due to an I/O error. It is available only for Zabbix agents 6.4 and higher. |
last(/Linux by Prom/vfs.fs.[node_exporter,"{#FSNAME}"],#2)=0 and last(/Linux by Prom/vfs.fs.[node_exporter,"{#FSNAME}"])=1 |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Dependent item | vfs.dev.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | r/s. The number (after merges) of read requests completed per second for the device. |
Dependent item | vfs.dev.read.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk write rate | w/s. The number (after merges) of write requests completed per second for the device. |
Dependent item | vfs.dev.write.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk read time (rate) | Rate of total read time counter. Used in |
Dependent item | vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | Rate of total write time counter. Used in |
Dependent item | vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk read request avg waiting time (r_await) | This formula contains two Boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
Calculated | vfs.dev.read.await[node_exporter,"{#DEVNAME}"] |
| {#DEVNAME}: Disk write request avg waiting time (w_await) | This formula contains two Boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
Calculated | vfs.dev.write.await[node_exporter,"{#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[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#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[node_exporter,"{#DEVNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
min(/Linux by Prom/vfs.dev.read.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux by Prom/vfs.dev.write.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_prom?at=release/7.2
This template collects Linux metrics from Node Exporter 0.18 and above. Support for older Node Exporter versions is provided as best effort.
pused = 100 - 100 * (available / total - free + available)Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Set up the node_exporter according to the official documentation. Use node_exporter v0.18.0 or above.
Set the hostname or IP address of the node_exporter host in the {$NODE_EXPORTER_HOST} macro. You can also change the Prometheus endpoint port in the {$NODE_EXPORTER_PORT} macro if necessary.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | Critical threshold of CPU utilization expressed in %. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$KERNEL.MAXFILES.MIN} | 256 |
|
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$NODE_EXPORTER_HOST} | The hostname or IP address of the node_exporter host. |
<SET NODE EXPORTER HOST> |
| {$NODE_EXPORTER_PORT} | TCP Port node_exporter is listening on. |
9100 |
| {$SWAP.PFREE.MIN.WARN} | Warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in ms) before the trigger fires. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in ms) before the trigger fires. |
20 |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$MEMORY.UTIL.MAX} | Used as a threshold in the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a threshold in the memory available trigger. |
20M |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | Used in network interface discovery rule filters. |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore |
^notpresent$ |
| {$NET.IF.IFALIAS.MATCHES} | Used in network interface discovery rule filters. |
^.*$ |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDEVICE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^.+$ |
| {$VFS.FS.FSDEVICE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or 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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get node_exporter metrics | HTTP agent | node_exporter.get | |
| Version of node_exporter running | Dependent item | agent.version[node_exporter] Preprocessing
|
|
| System boot time | Dependent item | system.boottime[node_exporter] Preprocessing
|
|
| System local time | The local system time of the host. |
Dependent item | system.localtime[node_exporter] Preprocessing
|
| System name | The host name of the system. |
Dependent item | system.name[node_exporter] Preprocessing
|
| System description | Labeled system information as provided by the uname system call. |
Dependent item | system.descr[node_exporter] Preprocessing
|
| Maximum number of open file descriptors | May be increased by using |
Dependent item | kernel.maxfiles[node_exporter] Preprocessing
|
| Number of open file descriptors | Dependent item | fd.open[node_exporter] Preprocessing
|
|
| Operating system | Dependent item | system.sw.os[node_exporter] Preprocessing
|
|
| Operating system architecture | Dependent item | system.sw.arch[node_exporter] Preprocessing
|
|
| System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Dependent item | system.uptime[node_exporter] Preprocessing
|
| Load average (1m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Dependent item | system.cpu.load.avg1[node_exporter] Preprocessing
|
| Load average (5m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Dependent item | system.cpu.load.avg5[node_exporter] Preprocessing
|
| Load average (15m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Dependent item | system.cpu.load.avg15[node_exporter] Preprocessing
|
| Number of CPUs | Dependent item | system.cpu.num[node_exporter] Preprocessing
|
|
| CPU idle time | Time the CPU has spent doing nothing. |
Dependent item | system.cpu.idle[node_exporter] Preprocessing
|
| CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util[node_exporter] Preprocessing
|
| CPU system time | Time the CPU has spent running the kernel and its processes. |
Dependent item | system.cpu.system[node_exporter] Preprocessing
|
| CPU user time | Time the CPU has spent running users' processes that are not niced. |
Dependent item | system.cpu.user[node_exporter] Preprocessing
|
| CPU steal time | The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine. |
Dependent item | system.cpu.steal[node_exporter] Preprocessing
|
| CPU softirq time | Time the CPU has spent servicing software interrupts. |
Dependent item | system.cpu.softirq[node_exporter] Preprocessing
|
| CPU nice time | Time the CPU has spent running users' processes that have been niced. |
Dependent item | system.cpu.nice[node_exporter] Preprocessing
|
| CPU iowait time | Time the CPU has been waiting for I/O to complete. |
Dependent item | system.cpu.iowait[node_exporter] Preprocessing
|
| CPU interrupt time | Time the CPU has spent servicing hardware interrupts. |
Dependent item | system.cpu.interrupt[node_exporter] Preprocessing
|
| CPU guest time | Time spent on running a virtual CPU for a guest operating system. |
Dependent item | system.cpu.guest[node_exporter] Preprocessing
|
| 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). |
Dependent item | system.cpu.guest_nice[node_exporter] Preprocessing
|
| Interrupts per second | Number of interrupts processed. |
Dependent item | system.cpu.intr[node_exporter] Preprocessing
|
| Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
Dependent item | system.cpu.switches[node_exporter] Preprocessing
|
| Memory utilization | Percentage calculated as (total-available)/total*100. |
Calculated | vm.memory.util[node_exporter] |
| Total memory | Total memory expressed in bytes. |
Dependent item | vm.memory.total[node_exporter] Preprocessing
|
| 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 |
Dependent item | vm.memory.available[node_exporter] Preprocessing
|
| Total swap space | Total space of the swap volume/file expressed in bytes. |
Dependent item | system.swap.total[node_exporter] Preprocessing
|
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Dependent item | system.swap.free[node_exporter] Preprocessing
|
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Calculated | system.swap.pfree[node_exporter] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: node_exporter is not available | Failed to fetch system metrics from node_exporter in time. |
nodata(/Linux by Prom/node_exporter.get,30m)=1 |
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 Prom/system.localtime[node_exporter],{$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. |
last(/Linux by Prom/system.name[node_exporter],#1)<>last(/Linux by Prom/system.name[node_exporter],#2) and length(last(/Linux by Prom/system.name[node_exporter]))>0 |
Info | Manual close: Yes |
| Linux: Configured max number of open filedescriptors is too low | last(/Linux by Prom/kernel.maxfiles[node_exporter])<{$KERNEL.MAXFILES.MIN} |
Info | Depends on:
|
|
| Linux: Running out of file descriptors | last(/Linux by Prom/fd.open[node_exporter])/last(/Linux by Prom/kernel.maxfiles[node_exporter])*100>80 |
Warning | ||
| 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. |
last(/Linux by Prom/system.sw.os[node_exporter],#1)<>last(/Linux by Prom/system.sw.os[node_exporter],#2) and length(last(/Linux by Prom/system.sw.os[node_exporter]))>0 |
Info | Manual close: Yes Depends on:
|
| Linux: {HOST.NAME} has been restarted | The device uptime is less than 10 minutes. |
last(/Linux by Prom/system.uptime[node_exporter])<10m |
Warning | Manual close: Yes |
| Linux: Load average is too high | The load average per CPU is too high. The system may be slow to respond. |
min(/Linux by Prom/system.cpu.load.avg1[node_exporter],5m)/last(/Linux by Prom/system.cpu.num[node_exporter])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by Prom/system.cpu.load.avg5[node_exporter])>0 and last(/Linux by Prom/system.cpu.load.avg15[node_exporter])>0 |
Average | |
| Linux: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/Linux by Prom/system.cpu.util[node_exporter],5m)>{$CPU.UTIL.CRIT} |
Warning | Depends on:
|
| Linux: High memory utilization | The system is running out of free memory. |
min(/Linux by Prom/vm.memory.util[node_exporter],5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | max(/Linux by Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>0 |
Average | ||
| Linux: High swap space usage | If there is no swap configured, this trigger is ignored. |
max(/Linux by Prom/system.swap.pfree[node_exporter],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Prom/system.swap.total[node_exporter])>0 |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of network interfaces. Requires node_exporter v0.18 and up. |
Dependent item | net.if.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Dependent item | net.if.in[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Dependent item | net.if.out[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | Dependent item | net.if.out.errors[node_exporter"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | Dependent item | net.if.in.errors[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | Dependent item | net.if.in.discards[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | Dependent item | net.if.out.discards[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Sets value to "0" if metric is missing in |
Dependent item | net.if.speed[node_exporter,"{#IFNAME}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | node_network_protocol_type protocol_type value of /sys/class/net/ |
Dependent item | net.if.type[node_exporter,"{#IFNAME}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
Dependent item | net.if.status[node_exporter,"{#IFNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) or avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])) and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): 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 Prom/net.if.speed[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and ( last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=7 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=11 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=62 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=69 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=117 ) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) |
Info | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): 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 Prom/net.if.type[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and (last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=1) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) |
Info | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of file systems of different types. |
Dependent item | vfs.fs.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.free[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.total[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Space: Used | Used storage expressed in bytes. Reserved space is not counted in. |
Dependent item | vfs.fs.used[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.pused[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | Free metadata space expressed as a percentage. |
Dependent item | vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#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.[node_exporter,"{#FSNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: FS [{#FSNAME}]: Space is critically low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%' limit. |
min(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%' limit. |
min(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Linux: FS [{#FSNAME}]: Filesystem has become read-only | The filesystem has become read-only, possibly due to an I/O error. It is available only for Zabbix agents 6.4 and higher. |
last(/Linux by Prom/vfs.fs.[node_exporter,"{#FSNAME}"],#2)=0 and last(/Linux by Prom/vfs.fs.[node_exporter,"{#FSNAME}"])=1 |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Dependent item | vfs.dev.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | r/s. The number (after merges) of read requests completed per second for the device. |
Dependent item | vfs.dev.read.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk write rate | w/s. The number (after merges) of write requests completed per second for the device. |
Dependent item | vfs.dev.write.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk read time (rate) | Rate of total read time counter. Used in |
Dependent item | vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | Rate of total write time counter. Used in |
Dependent item | vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk read request avg waiting time (r_await) | This formula contains two Boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
Calculated | vfs.dev.read.await[node_exporter,"{#DEVNAME}"] |
| {#DEVNAME}: Disk write request avg waiting time (w_await) | This formula contains two Boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
Calculated | vfs.dev.write.await[node_exporter,"{#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[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#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[node_exporter,"{#DEVNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
min(/Linux by Prom/vfs.dev.read.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux by Prom/vfs.dev.write.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_prom?at=release/7.0
This template collects Linux metrics from Node Exporter 0.18 and above. Support for older Node Exporter versions is provided as best effort.
pused = 100 - 100 * (available / total - free + available)Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Set up the node_exporter according to the official documentation. Use node_exporter v0.18.0 or above.
Set the hostname or IP address of the node_exporter host in the {$NODE_EXPORTER_HOST} macro. You can also change the Prometheus endpoint port in the {$NODE_EXPORTER_PORT} macro if necessary.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | Critical threshold of CPU utilization expressed in %. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$KERNEL.MAXFILES.MIN} | 256 |
|
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$NODE_EXPORTER_HOST} | The hostname or IP address of the node_exporter host. |
<SET NODE EXPORTER HOST> |
| {$NODE_EXPORTER_PORT} | TCP Port node_exporter is listening on. |
9100 |
| {$SWAP.PFREE.MIN.WARN} | Warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in ms) before the trigger fires. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in ms) before the trigger fires. |
20 |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$MEMORY.UTIL.MAX} | Used as a threshold in the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a threshold in the memory available trigger. |
20M |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | Used in network interface discovery rule filters. |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore |
^notpresent$ |
| {$NET.IF.IFALIAS.MATCHES} | Used in network interface discovery rule filters. |
^.*$ |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDEVICE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^.+$ |
| {$VFS.FS.FSDEVICE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or 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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Get node_exporter metrics | HTTP agent | node_exporter.get | |
| Version of node_exporter running | Dependent item | agent.version[node_exporter] Preprocessing
|
|
| System boot time | Dependent item | system.boottime[node_exporter] Preprocessing
|
|
| System local time | The local system time of the host. |
Dependent item | system.localtime[node_exporter] Preprocessing
|
| System name | The host name of the system. |
Dependent item | system.name[node_exporter] Preprocessing
|
| System description | Labeled system information as provided by the uname system call. |
Dependent item | system.descr[node_exporter] Preprocessing
|
| Maximum number of open file descriptors | May be increased by using |
Dependent item | kernel.maxfiles[node_exporter] Preprocessing
|
| Number of open file descriptors | Dependent item | fd.open[node_exporter] Preprocessing
|
|
| Operating system | Dependent item | system.sw.os[node_exporter] Preprocessing
|
|
| Operating system architecture | Dependent item | system.sw.arch[node_exporter] Preprocessing
|
|
| System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Dependent item | system.uptime[node_exporter] Preprocessing
|
| Load average (1m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Dependent item | system.cpu.load.avg1[node_exporter] Preprocessing
|
| Load average (5m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Dependent item | system.cpu.load.avg5[node_exporter] Preprocessing
|
| Load average (15m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Dependent item | system.cpu.load.avg15[node_exporter] Preprocessing
|
| Number of CPUs | Dependent item | system.cpu.num[node_exporter] Preprocessing
|
|
| CPU idle time | Time the CPU has spent doing nothing. |
Dependent item | system.cpu.idle[node_exporter] Preprocessing
|
| CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util[node_exporter] Preprocessing
|
| CPU system time | Time the CPU has spent running the kernel and its processes. |
Dependent item | system.cpu.system[node_exporter] Preprocessing
|
| CPU user time | Time the CPU has spent running users' processes that are not niced. |
Dependent item | system.cpu.user[node_exporter] Preprocessing
|
| CPU steal time | The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine. |
Dependent item | system.cpu.steal[node_exporter] Preprocessing
|
| CPU softirq time | Time the CPU has spent servicing software interrupts. |
Dependent item | system.cpu.softirq[node_exporter] Preprocessing
|
| CPU nice time | Time the CPU has spent running users' processes that have been niced. |
Dependent item | system.cpu.nice[node_exporter] Preprocessing
|
| CPU iowait time | Time the CPU has been waiting for I/O to complete. |
Dependent item | system.cpu.iowait[node_exporter] Preprocessing
|
| CPU interrupt time | Time the CPU has spent servicing hardware interrupts. |
Dependent item | system.cpu.interrupt[node_exporter] Preprocessing
|
| CPU guest time | Time spent on running a virtual CPU for a guest operating system. |
Dependent item | system.cpu.guest[node_exporter] Preprocessing
|
| 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). |
Dependent item | system.cpu.guest_nice[node_exporter] Preprocessing
|
| Interrupts per second | Number of interrupts processed. |
Dependent item | system.cpu.intr[node_exporter] Preprocessing
|
| Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
Dependent item | system.cpu.switches[node_exporter] Preprocessing
|
| Memory utilization | Percentage calculated as (total-available)/total*100. |
Calculated | vm.memory.util[node_exporter] |
| Total memory | Total memory expressed in bytes. |
Dependent item | vm.memory.total[node_exporter] Preprocessing
|
| 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 |
Dependent item | vm.memory.available[node_exporter] Preprocessing
|
| Total swap space | Total space of the swap volume/file expressed in bytes. |
Dependent item | system.swap.total[node_exporter] Preprocessing
|
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Dependent item | system.swap.free[node_exporter] Preprocessing
|
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Calculated | system.swap.pfree[node_exporter] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: node_exporter is not available | Failed to fetch system metrics from node_exporter in time. |
nodata(/Linux by Prom/node_exporter.get,30m)=1 |
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 Prom/system.localtime[node_exporter],{$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. |
last(/Linux by Prom/system.name[node_exporter],#1)<>last(/Linux by Prom/system.name[node_exporter],#2) and length(last(/Linux by Prom/system.name[node_exporter]))>0 |
Info | Manual close: Yes |
| Linux: Configured max number of open filedescriptors is too low | last(/Linux by Prom/kernel.maxfiles[node_exporter])<{$KERNEL.MAXFILES.MIN} |
Info | Depends on:
|
|
| Linux: Running out of file descriptors | last(/Linux by Prom/fd.open[node_exporter])/last(/Linux by Prom/kernel.maxfiles[node_exporter])*100>80 |
Warning | ||
| 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. |
last(/Linux by Prom/system.sw.os[node_exporter],#1)<>last(/Linux by Prom/system.sw.os[node_exporter],#2) and length(last(/Linux by Prom/system.sw.os[node_exporter]))>0 |
Info | Manual close: Yes Depends on:
|
| Linux: {HOST.NAME} has been restarted | The device uptime is less than 10 minutes. |
last(/Linux by Prom/system.uptime[node_exporter])<10m |
Warning | Manual close: Yes |
| Linux: Load average is too high | The load average per CPU is too high. The system may be slow to respond. |
min(/Linux by Prom/system.cpu.load.avg1[node_exporter],5m)/last(/Linux by Prom/system.cpu.num[node_exporter])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by Prom/system.cpu.load.avg5[node_exporter])>0 and last(/Linux by Prom/system.cpu.load.avg15[node_exporter])>0 |
Average | |
| Linux: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/Linux by Prom/system.cpu.util[node_exporter],5m)>{$CPU.UTIL.CRIT} |
Warning | Depends on:
|
| Linux: High memory utilization | The system is running out of free memory. |
min(/Linux by Prom/vm.memory.util[node_exporter],5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | max(/Linux by Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>0 |
Average | ||
| Linux: High swap space usage | If there is no swap configured, this trigger is ignored. |
max(/Linux by Prom/system.swap.pfree[node_exporter],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Prom/system.swap.total[node_exporter])>0 |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of network interfaces. Requires node_exporter v0.18 and up. |
Dependent item | net.if.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Dependent item | net.if.in[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Dependent item | net.if.out[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | Dependent item | net.if.out.errors[node_exporter"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | Dependent item | net.if.in.errors[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | Dependent item | net.if.in.discards[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | Dependent item | net.if.out.discards[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Sets value to "0" if metric is missing in |
Dependent item | net.if.speed[node_exporter,"{#IFNAME}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | node_network_protocol_type protocol_type value of /sys/class/net/ |
Dependent item | net.if.type[node_exporter,"{#IFNAME}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
Dependent item | net.if.status[node_exporter,"{#IFNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) or avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])) and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): 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 Prom/net.if.speed[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and ( last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=7 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=11 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=62 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=69 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=117 ) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) |
Info | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): 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 Prom/net.if.type[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and (last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=1) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) |
Info | Manual close: Yes Depends on:
|
| Linux: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of file systems of different types. |
Dependent item | vfs.fs.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.free[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.total[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Space: Used | Used storage expressed in bytes. Reserved space is not counted in. |
Dependent item | vfs.fs.used[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.pused[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | Free metadata space expressed as a percentage. |
Dependent item | vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#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.[node_exporter,"{#FSNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: FS [{#FSNAME}]: Space is critically low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%' limit. |
min(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Linux: FS [{#FSNAME}]: Space is low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%' limit. |
min(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| Linux: FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Linux: FS [{#FSNAME}]: Filesystem has become read-only | The filesystem has become read-only, possibly due to an I/O error. It is available only for Zabbix agents 6.4 and higher. |
last(/Linux by Prom/vfs.fs.[node_exporter,"{#FSNAME}"],#2)=0 and last(/Linux by Prom/vfs.fs.[node_exporter,"{#FSNAME}"])=1 |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Dependent item | vfs.dev.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | r/s. The number (after merges) of read requests completed per second for the device. |
Dependent item | vfs.dev.read.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk write rate | w/s. The number (after merges) of write requests completed per second for the device. |
Dependent item | vfs.dev.write.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk read time (rate) | Rate of total read time counter. Used in |
Dependent item | vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | Rate of total write time counter. Used in |
Dependent item | vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk read request avg waiting time (r_await) | This formula contains two Boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
Calculated | vfs.dev.read.await[node_exporter,"{#DEVNAME}"] |
| {#DEVNAME}: Disk write request avg waiting time (w_await) | This formula contains two Boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
Calculated | vfs.dev.write.await[node_exporter,"{#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[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#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[node_exporter,"{#DEVNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
min(/Linux by Prom/vfs.dev.read.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux by Prom/vfs.dev.write.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_prom?at=release/6.4
This template collects Linux metrics from Node Exporter 0.18 and above. Support for older Node Exporter versions is provided as best effort.
pused = 100 - 100 * (available / total - free + available)Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Set up the node_exporter according to the official documentation. Use node_exporter v0.18.0 or above.
Set the hostname or IP address of the node_exporter host in the {$NODE_EXPORTER_HOST} macro. You can also change the Prometheus endpoint port in the {$NODE_EXPORTER_PORT} macro if necessary.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | Critical threshold of CPU utilization expressed in %. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$KERNEL.MAXFILES.MIN} | 256 |
|
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$NODE_EXPORTER_HOST} | The hostname or IP address of the node_exporter host. |
<SET NODE EXPORTER HOST> |
| {$NODE_EXPORTER_PORT} | TCP Port node_exporter is listening on. |
9100 |
| {$SWAP.PFREE.MIN.WARN} | Warning threshold of the minimum free swap. |
50 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in ms) before the trigger fires. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in ms) before the trigger fires. |
20 |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in block device discovery. Can be overridden on the host or linked template level. |
.+ |
| {$MEMORY.UTIL.MAX} | Used as a threshold in the memory utilization trigger. |
90 |
| {$MEMORY.AVAILABLE.MIN} | Used as a threshold in the memory available trigger. |
20M |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | Used in network interface discovery rule filters. |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore |
^notpresent$ |
| {$NET.IF.IFALIAS.MATCHES} | Used in network interface discovery rule filters. |
^.*$ |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDEVICE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^.+$ |
| {$VFS.FS.FSDEVICE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or 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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Linux: Get node_exporter metrics | HTTP agent | node_exporter.get | |
| Linux: Version of node_exporter running | Dependent item | agent.version[node_exporter] Preprocessing
|
|
| Linux: System boot time | Dependent item | system.boottime[node_exporter] Preprocessing
|
|
| Linux: System local time | The local system time of the host. |
Dependent item | system.localtime[node_exporter] Preprocessing
|
| Linux: System name | The host name of the system. |
Dependent item | system.name[node_exporter] Preprocessing
|
| Linux: System description | Labeled system information as provided by the uname system call. |
Dependent item | system.descr[node_exporter] Preprocessing
|
| Linux: Maximum number of open file descriptors | May be increased by using |
Dependent item | kernel.maxfiles[node_exporter] Preprocessing
|
| Linux: Number of open file descriptors | Dependent item | fd.open[node_exporter] Preprocessing
|
|
| Linux: Operating system | Dependent item | system.sw.os[node_exporter] Preprocessing
|
|
| Linux: Operating system architecture | Dependent item | system.sw.arch[node_exporter] Preprocessing
|
|
| Linux: System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Dependent item | system.uptime[node_exporter] Preprocessing
|
| Linux: Load average (1m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Dependent item | system.cpu.load.avg1[node_exporter] Preprocessing
|
| Linux: Load average (5m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Dependent item | system.cpu.load.avg5[node_exporter] Preprocessing
|
| Linux: Load average (15m avg) | Calculated as the system CPU load divided by the number of CPU cores. |
Dependent item | system.cpu.load.avg15[node_exporter] Preprocessing
|
| Linux: Number of CPUs | Dependent item | system.cpu.num[node_exporter] Preprocessing
|
|
| Linux: CPU idle time | Time the CPU has spent doing nothing. |
Dependent item | system.cpu.idle[node_exporter] Preprocessing
|
| Linux: CPU utilization | CPU utilization expressed in %. |
Dependent item | system.cpu.util[node_exporter] Preprocessing
|
| Linux: CPU system time | Time the CPU has spent running the kernel and its processes. |
Dependent item | system.cpu.system[node_exporter] Preprocessing
|
| Linux: CPU user time | Time the CPU has spent running users' processes that are not niced. |
Dependent item | system.cpu.user[node_exporter] Preprocessing
|
| 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. |
Dependent item | system.cpu.steal[node_exporter] Preprocessing
|
| Linux: CPU softirq time | Time the CPU has spent servicing software interrupts. |
Dependent item | system.cpu.softirq[node_exporter] Preprocessing
|
| Linux: CPU nice time | Time the CPU has spent running users' processes that have been niced. |
Dependent item | system.cpu.nice[node_exporter] Preprocessing
|
| Linux: CPU iowait time | Time the CPU has been waiting for I/O to complete. |
Dependent item | system.cpu.iowait[node_exporter] Preprocessing
|
| Linux: CPU interrupt time | Time the CPU has spent servicing hardware interrupts. |
Dependent item | system.cpu.interrupt[node_exporter] Preprocessing
|
| Linux: CPU guest time | Time spent on running a virtual CPU for a guest operating system. |
Dependent item | system.cpu.guest[node_exporter] Preprocessing
|
| 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). |
Dependent item | system.cpu.guest_nice[node_exporter] Preprocessing
|
| Linux: Interrupts per second | Number of interrupts processed. |
Dependent item | system.cpu.intr[node_exporter] Preprocessing
|
| Linux: Context switches per second | The combined rate at which all processors on the computer are switched from one thread to another. |
Dependent item | system.cpu.switches[node_exporter] Preprocessing
|
| Linux: Memory utilization | Percentage calculated as (total-available)/total*100. |
Calculated | vm.memory.util[node_exporter] |
| Linux: Total memory | Total memory expressed in bytes. |
Dependent item | vm.memory.total[node_exporter] Preprocessing
|
| 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 |
Dependent item | vm.memory.available[node_exporter] Preprocessing
|
| Linux: Total swap space | Total space of the swap volume/file expressed in bytes. |
Dependent item | system.swap.total[node_exporter] Preprocessing
|
| Linux: Free swap space | The free space of the swap volume/file expressed in bytes. |
Dependent item | system.swap.free[node_exporter] Preprocessing
|
| Linux: Free swap space in % | The free space of the swap volume/file expressed in %. |
Calculated | system.swap.pfree[node_exporter] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: node_exporter is not available | Failed to fetch system metrics from node_exporter in time. |
nodata(/Linux by Prom/node_exporter.get,30m)=1 |
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 Prom/system.localtime[node_exporter],{$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. |
last(/Linux by Prom/system.name[node_exporter],#1)<>last(/Linux by Prom/system.name[node_exporter],#2) and length(last(/Linux by Prom/system.name[node_exporter]))>0 |
Info | Manual close: Yes |
| Linux: Configured max number of open filedescriptors is too low | last(/Linux by Prom/kernel.maxfiles[node_exporter])<{$KERNEL.MAXFILES.MIN} |
Info | Depends on:
|
|
| Linux: Running out of file descriptors | last(/Linux by Prom/fd.open[node_exporter])/last(/Linux by Prom/kernel.maxfiles[node_exporter])*100>80 |
Warning | ||
| 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. |
last(/Linux by Prom/system.sw.os[node_exporter],#1)<>last(/Linux by Prom/system.sw.os[node_exporter],#2) and length(last(/Linux by Prom/system.sw.os[node_exporter]))>0 |
Info | Manual close: Yes Depends on:
|
| Linux: {HOST.NAME} has been restarted | The device uptime is less than 10 minutes. |
last(/Linux by Prom/system.uptime[node_exporter])<10m |
Warning | Manual close: Yes |
| Linux: Load average is too high | The load average per CPU is too high. The system may be slow to respond. |
min(/Linux by Prom/system.cpu.load.avg1[node_exporter],5m)/last(/Linux by Prom/system.cpu.num[node_exporter])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by Prom/system.cpu.load.avg5[node_exporter])>0 and last(/Linux by Prom/system.cpu.load.avg15[node_exporter])>0 |
Average | |
| Linux: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/Linux by Prom/system.cpu.util[node_exporter],5m)>{$CPU.UTIL.CRIT} |
Warning | Depends on:
|
| Linux: High memory utilization | The system is running out of free memory. |
min(/Linux by Prom/vm.memory.util[node_exporter],5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | max(/Linux by Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>0 |
Average | ||
| Linux: High swap space usage | If there is no swap configured, this trigger is ignored. |
max(/Linux by Prom/system.swap.pfree[node_exporter],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Prom/system.swap.total[node_exporter])>0 |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of network interfaces. Requires node_exporter v0.18 and up. |
Dependent item | net.if.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Dependent item | net.if.in[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Dependent item | net.if.out[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | Dependent item | net.if.out.errors[node_exporter"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | Dependent item | net.if.in.errors[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | Dependent item | net.if.in.discards[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | Dependent item | net.if.out.discards[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Sets value to "0" if metric is missing in |
Dependent item | net.if.speed[node_exporter,"{#IFNAME}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | node_network_protocol_type protocol_type value of /sys/class/net/ |
Dependent item | net.if.type[node_exporter,"{#IFNAME}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
Dependent item | net.if.status[node_exporter,"{#IFNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) or avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])) and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): 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 Prom/net.if.speed[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and ( last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=7 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=11 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=62 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=69 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=117 ) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) |
Info | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): 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 Prom/net.if.type[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and (last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=1) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) |
Info | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of file systems of different types. |
Dependent item | vfs.fs.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.free[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.total[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Space: Used | Used storage expressed in bytes. Reserverd space is not counted in. |
Dependent item | vfs.fs.used[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.pused[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#FSNAME}]: Inodes: Free, in % | Free metadata space expressed as a percentage. |
Dependent item | vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"] Preprocessing
|
| FS [{#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.[node_exporter,"{#FSNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| FS [{#FSNAME}]: Space is critically low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%' limit. |
min(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| FS [{#FSNAME}]: Space is low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%' limit. |
min(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
| FS [{#FSNAME}]: Running out of free inodes | Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space. |
min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| FS [{#FSNAME}]: Filesystem has become read-only | The filesystem has become read-only, possibly due to an I/O error. It is available only for Zabbix agents 6.4 and higher. |
last(/Linux by Prom/vfs.fs.[node_exporter,"{#FSNAME}"],#2)=0 and last(/Linux by Prom/vfs.fs.[node_exporter,"{#FSNAME}"])=1 |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Dependent item | vfs.dev.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | r/s. The number (after merges) of read requests completed per second for the device. |
Dependent item | vfs.dev.read.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk write rate | w/s. The number (after merges) of write requests completed per second for the device. |
Dependent item | vfs.dev.write.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk read time (rate) | Rate of total read time counter. Used in |
Dependent item | vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | Rate of total write time counter. Used in |
Dependent item | vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk read request avg waiting time (r_await) | This formula contains two Boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
Calculated | vfs.dev.read.await[node_exporter,"{#DEVNAME}"] |
| {#DEVNAME}: Disk write request avg waiting time (w_await) | This formula contains two Boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
Calculated | vfs.dev.write.await[node_exporter,"{#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[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#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[node_exporter,"{#DEVNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
min(/Linux by Prom/vfs.dev.read.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux by Prom/vfs.dev.write.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_prom?at=release/6.2
For Zabbix version: 6.2 and higher. This template collects Linux metrics from node_exporter 0.18 and above. Support for older node_exporter versions is provided as 'best effort'.
This template was tested on:
Please refer to the node_exporter docs. Use node_exporter v0.18.0 or above.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | - |
90 |
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | - |
90 |
| {$IFCONTROL} | - |
1 |
| {$KERNEL.MAXFILES.MIN} | - |
256 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$MEMORY.AVAILABLE.MIN} | - |
20M |
| {$MEMORY.UTIL.MAX} | - |
90 |
| {$NET.IF.IFALIAS.MATCHES} | - |
^.*$ |
| {$NET.IF.IFALIAS.NOT_MATCHES} | - |
CHANGE_IF_NEEDED |
| {$NET.IF.IFNAME.MATCHES} | - |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default. |
`(^Software Loopback Interface |
| {$NET.IF.IFOPERSTATUS.MATCHES} | - |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore notPresent(7). |
^7$ |
| {$NODE_EXPORTER_PORT} | TCP Port node_exporter is listening on. |
9100 |
| {$SWAP.PFREE.MIN.WARN} | - |
50 |
| {$SYSTEM.FUZZYTIME.MAX} | - |
60 |
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level. |
`^(loop[0-9]* |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in ms) before the trigger would fire. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in ms) before the trigger would fire. |
20 |
| {$VFS.FS.FREE.MIN.CRIT} | The critical threshold of the filesystem utilization. |
5G |
| {$VFS.FS.FREE.MIN.WARN} | The warning threshold of the filesystem utilization. |
10G |
| {$VFS.FS.FSDEVICE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
^.+$ |
| {$VFS.FS.FSDEVICE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
`^(/dev |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
`^(btrfs |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | - |
10 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | - |
20 |
| {$VFS.FS.PUSED.MAX.CRIT} | - |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | - |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | - |
DEPENDENT | vfs.dev.discovery[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: Filter: AND- {#DEVNAME} MATCHES_REGEX - {#DEVNAME} NOT_MATCHES_REGEX |
| Mounted filesystem discovery | Discovery of file systems of different types. |
DEPENDENT | vfs.fs.discovery[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: Filter: AND- {#FSTYPE} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSDEVICE} NOT_MATCHES_REGEX |
| Network interface discovery | Discovery of network interfaces. Requires node_exporter v0.18 and up. |
DEPENDENT | net.if.discovery[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: Filter: AND- {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX - {#IFALIAS} MATCHES_REGEX - {#IFALIAS} NOT_MATCHES_REGEX - {#IFOPERSTATUS} MATCHES_REGEX - {#IFOPERSTATUS} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Load average (1m avg) | - |
DEPENDENT | system.cpu.load.avg1[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| CPU | Load average (5m avg) | - |
DEPENDENT | system.cpu.load.avg5[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| CPU | Load average (15m avg) | - |
DEPENDENT | system.cpu.load.avg15[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| CPU | Number of CPUs | - |
DEPENDENT | system.cpu.num[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: |
| CPU | CPU utilization | The CPU utilization expressed in %. |
DEPENDENT | system.cpu.util[node_exporter] Preprocessing: - JAVASCRIPT: |
| CPU | CPU idle time | The time the CPU has spent doing nothing. |
DEPENDENT | system.cpu.idle[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU system time | The time the CPU has spent running the kernel and its processes. |
DEPENDENT | system.cpu.system[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU user time | The time the CPU has spent running users' processes that are not niced. |
DEPENDENT | system.cpu.user[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| 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. |
DEPENDENT | system.cpu.steal[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU softirq time | The amount of time the CPU has been servicing software interrupts. |
DEPENDENT | system.cpu.softirq[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU nice time | The time the CPU has spent running users' processes that have been niced. |
DEPENDENT | system.cpu.nice[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU iowait time | The amount of time the CPU has been waiting for I/O to complete. |
DEPENDENT | system.cpu.iowait[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU interrupt time | The amount of time the CPU has been servicing hardware interrupts. |
DEPENDENT | system.cpu.interrupt[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU guest time | Guest time - the time spent on running a virtual CPU for a guest operating system. |
DEPENDENT | system.cpu.guest[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: `{name= |
| 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). |
DEPENDENT | system.cpu.guest_nice[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: `{name= |
| CPU | Interrupts per second | - |
DEPENDENT | system.cpu.intr[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| CPU | Context switches per second | - |
DEPENDENT | system.cpu.switches[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| General | System boot time | - |
DEPENDENT | system.boottime[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| General | System local time | The local system time of the host. |
DEPENDENT | system.localtime[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| General | System name | The host name of the system. |
DEPENDENT | system.name[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | Labeled system information as provided by the uname system call. |
DEPENDENT | system.descr[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Maximum number of open file descriptors | It could be increased by using sysctl utility or modifying the file /etc/sysctl.conf. |
DEPENDENT | kernel.maxfiles[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Number of open file descriptors | - |
DEPENDENT | fd.open[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Inventory | Operating system | - |
DEPENDENT | system.sw.os[node_exporter] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Inventory | Operating system architecture | The architecture of the host's operating system. |
DEPENDENT | system.sw.arch[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - DISCARD_UNCHANGED_HEARTBEAT: |
| Memory | Memory utilization | Memory used percentage is calculated as (total-available)/total*100. |
CALCULATED | vm.memory.util[node_exporter] Expression: (last(//vm.memory.total[node_exporter])-last(//vm.memory.available[node_exporter]))/last(//vm.memory.total[node_exporter])*100 |
| Memory | Total memory | The total memory expressed in Bytes. |
DEPENDENT | vm.memory.total[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| 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. |
DEPENDENT | vm.memory.available[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Memory | Total swap space | The total space of the swap volume/file expressed in bytes. |
DEPENDENT | system.swap.total[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Memory | Free swap space | The free space of the swap volume/file expressed in bytes. |
DEPENDENT | system.swap.free[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Memory | Free swap space in % | The free space of the swap volume/file expressed in %. |
CALCULATED | system.swap.pfree[node_exporter] Expression: last(//system.swap.free[node_exporter])/last(//system.swap.total[node_exporter])*100 |
| Monitoring agent | Version of node_exporter running | - |
DEPENDENT | agent.version[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits received | - |
DEPENDENT | net.if.in[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | - |
DEPENDENT | net.if.out[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | - |
DEPENDENT | net.if.out.errors[node_exporter"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | - |
DEPENDENT | net.if.in.errors[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | - |
DEPENDENT | net.if.in.discards[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | - |
DEPENDENT | net.if.out.discards[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | Sets value to 0 if metric is missing in node_exporter output. |
DEPENDENT | net.if.speed[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: ⛔️ON_FAIL: - MULTIPLIER: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | node_network_protocol_type protocol_type value of /sys/class/net/ |
DEPENDENT | net.if.type[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
DEPENDENT | net.if.status[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - JAVASCRIPT: |
| Status | System uptime | The system uptime expressed in the following format:'N days, hh:mm:ss'. |
DEPENDENT | system.uptime[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - JAVASCRIPT: |
| Storage | {#FSNAME}: Free space | - |
DEPENDENT | vfs.fs.free[node_exporter,"{#FSNAME}"] Preprocessing: - PROMETHEUS_PATTERN: |
| Storage | {#FSNAME}: Total space | The total space expressed in Bytes. |
DEPENDENT | vfs.fs.total[node_exporter,"{#FSNAME}"] Preprocessing: - PROMETHEUS_PATTERN: |
| Storage | {#FSNAME}: Used space | Used storage expressed in Bytes |
CALCULATED | vfs.fs.used[node_exporter,"{#FSNAME}"] Expression: (last(//vfs.fs.total[node_exporter,"{#FSNAME}"])-last(//vfs.fs.free[node_exporter,"{#FSNAME}"])) |
| Storage | {#FSNAME}: Space utilization | The space utilization expressed in % for {#FSNAME}. |
CALCULATED | vfs.fs.pused[node_exporter,"{#FSNAME}"] Expression: (last(//vfs.fs.used[node_exporter,"{#FSNAME}"])/last(//vfs.fs.total[node_exporter,"{#FSNAME}"]))*100 |
| Storage | {#FSNAME}: Free inodes in % | - |
DEPENDENT | vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: |
| Storage | {#DEVNAME}: Disk read rate | r/s. The number (after merges) of read requests completed per second for the device. |
DEPENDENT | vfs.dev.read.rate[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk write rate | w/s. The number (after merges) of write requests completed per second for the device. |
DEPENDENT | vfs.dev.write.rate[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk read request avg waiting time (r_await) | This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
CALCULATED | vfs.dev.read.await[node_exporter,"{#DEVNAME}"] Expression: (last(//vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"])/(last(//vfs.dev.read.rate[node_exporter,"{#DEVNAME}"])+(last(//vfs.dev.read.rate[node_exporter,"{#DEVNAME}"])=0)))*1000*(last(//vfs.dev.read.rate[node_exporter,"{#DEVNAME}"]) > 0) |
| Storage | {#DEVNAME}: Disk write request avg waiting time (w_await) | This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
CALCULATED | vfs.dev.write.await[node_exporter,"{#DEVNAME}"] Expression: (last(//vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"])/(last(//vfs.dev.write.rate[node_exporter,"{#DEVNAME}"])+(last(//vfs.dev.write.rate[node_exporter,"{#DEVNAME}"])=0)))*1000*(last(//vfs.dev.write.rate[node_exporter,"{#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[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| 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[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND - MULTIPLIER: |
| Zabbix raw items | Get node_exporter metrics | - |
HTTP_AGENT | node_exporter.get |
| Zabbix raw items | {#DEVNAME}: Disk read time (rate) | Rate of total read time counter. Used in r_await calculation. |
DEPENDENT | vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Zabbix raw items | {#DEVNAME}: Disk write time (rate) | Rate of total write time counter. Used in w_await calculation. |
DEPENDENT | vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| 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 Prom/system.cpu.load.avg1[node_exporter],5m)/last(/Linux by Prom/system.cpu.num[node_exporter])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by Prom/system.cpu.load.avg5[node_exporter])>0 and last(/Linux by Prom/system.cpu.load.avg15[node_exporter])>0 |
AVERAGE | |
| High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/Linux by Prom/system.cpu.util[node_exporter],5m)>{$CPU.UTIL.CRIT} |
WARNING | Depends on: - Load average is too high |
| System time is out of sync | The host's system time is different from Zabbix server time. |
fuzzytime(/Linux by Prom/system.localtime[node_exporter],{$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. |
last(/Linux by Prom/system.name[node_exporter],#1)<>last(/Linux by Prom/system.name[node_exporter],#2) and length(last(/Linux by Prom/system.name[node_exporter]))>0 |
INFO | Manual close: YES |
| Configured max number of open filedescriptors is too low | - |
last(/Linux by Prom/kernel.maxfiles[node_exporter])<{$KERNEL.MAXFILES.MIN} |
INFO | Depends on: - Running out of file descriptors |
| Running out of file descriptors | - |
last(/Linux by Prom/fd.open[node_exporter])/last(/Linux by Prom/kernel.maxfiles[node_exporter])*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. |
last(/Linux by Prom/system.sw.os[node_exporter],#1)<>last(/Linux by Prom/system.sw.os[node_exporter],#2) and length(last(/Linux by Prom/system.sw.os[node_exporter]))>0 |
INFO | Manual close: YES Depends on: - System name has changed |
| High memory utilization | The system is running out of free memory. |
min(/Linux by Prom/vm.memory.util[node_exporter],5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | Depends on: - Lack of available memory |
| Lack of available memory | - |
max(/Linux by Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>0 |
AVERAGE | |
| High swap space usage | If there is no swap configured, this trigger is ignored. |
max(/Linux by Prom/system.swap.pfree[node_exporter],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Prom/system.swap.total[node_exporter])>0 |
WARNING | Depends on: - High memory utilization - Lack of available memory |
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) or avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])) and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0Recovery expression: avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) and avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
min(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}Recovery expression: max(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): 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 Prom/net.if.speed[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and ( last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=7 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=11 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=62 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=69 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=117 ) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) Recovery expression: (change(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"],#2)>0) or (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): 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 Prom/net.if.type[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and (last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=1) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) Recovery expression: (change(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"],#2)>0) or (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): 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 'ethernal 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 Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2))Recovery expression: last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
| has been restarted | The device uptime is less than 10 minutes. |
last(/Linux by Prom/system.uptime[node_exporter])<10m |
WARNING | Manual close: YES |
| {#FSNAME}: Disk space is critically low | Two conditions should match: 1. The first condition - utilization of 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 Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux by Prom/vfs.fs.total[node_exporter,"{#FSNAME}"])-last(/Linux by Prom/vfs.fs.used[node_exporter,"{#FSNAME}"]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],1h,100)<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low | Two conditions should match: 1. The first condition - utilization of 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 Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux by Prom/vfs.fs.total[node_exporter,"{#FSNAME}"])-last(/Linux by Prom/vfs.fs.used[node_exporter,"{#FSNAME}"]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],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. 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 Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],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. 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 Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
WARNING | Depends on: - {#FSNAME}: Running out of free inodes |
| {#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Linux by Prom/vfs.dev.read.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux by Prom/vfs.dev.write.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
| node_exporter is not available | Failed to fetch system metrics from node_exporter in time. |
nodata(/Linux by Prom/node_exporter.get,30m)=1 |
WARNING | Manual close: YES |
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.
Description: node_exporter v0.16.0 renamed many metrics. CPU utilization for 'guest' and 'guest_nice' metrics are not supported in this template with node_exporter < 0.16. Disk IO metrics are not supported. Other metrics provided as 'best effort'. See https://github.com/prometheus/node_exporter/releases/tag/v0.16.0 for details.
Description: metric node_network_info with label 'device' cannot be found, so network discovery is not possible.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_prom?at=release/6.0
This template collects Linux metrics from node_exporter 0.18 and above. Support for older node_exporter versions is provided as 'best effort'.
Description: node_exporter v0.16.0 renamed many metrics. CPU utilization for 'guest' and 'guest_nice' metrics are not supported in this template with node_exporter < 0.16. Disk IO metrics are not supported. Other metrics provided as 'best effort'. See https://github.com/prometheus/node_exporter/releases/tag/v0.16.0 for details.
Description: metric node_network_info with label 'device' cannot be found, so network discovery is not possible.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Set up the node_exporter according to the official documentation. Use node_exporter v0.18.0 or above.
Set the hostname or IP address of the node_exporter host in the {$NODE_EXPORTER_HOST} macro. You can also change the Prometheus endpoint port in the {$NODE_EXPORTER_PORT} macro if necessary.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | 90 |
|
| {$IF.ERRORS.WARN} | 2 |
|
| {$IF.UTIL.MAX} | 90 |
|
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$KERNEL.MAXFILES.MIN} | 256 |
|
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$NODE_EXPORTER_HOST} | The hostname or IP address of the node_exporter host. |
<SET NODE EXPORTER HOST> |
| {$NODE_EXPORTER_PORT} | TCP Port node_exporter is listening on. |
9100 |
| {$SWAP.PFREE.MIN.WARN} | 50 |
|
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in ms) before the trigger would fire. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in ms) before the trigger would fire. |
20 |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDEVICE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
^.+$ |
| {$VFS.FS.FSDEVICE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$MEMORY.UTIL.MAX} | 90 |
|
| {$MEMORY.AVAILABLE.MIN} | 20M |
|
| {$IFCONTROL} | 1 |
|
| {$NET.IF.IFNAME.MATCHES} | ^.*$ |
|
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default. |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | ^.*$ |
|
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore notpresent(1). |
^notpresent$ |
| {$NET.IF.IFALIAS.MATCHES} | ^.*$ |
|
| {$NET.IF.IFALIAS.NOT_MATCHES} | CHANGE_IF_NEEDED |
|
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | 10 |
|
| {$VFS.FS.INODE.PFREE.MIN.WARN} | 20 |
|
| {$VFS.FS.PUSED.MAX.CRIT} | 90 |
|
| {$VFS.FS.PUSED.MAX.WARN} | 80 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Linux: Get node_exporter metrics | HTTP agent | node_exporter.get | |
| Linux: Version of node_exporter running | Dependent item | agent.version[node_exporter] Preprocessing
|
|
| Linux: System boot time | Dependent item | system.boottime[node_exporter] Preprocessing
|
|
| Linux: System local time | The local system time of the host. |
Dependent item | system.localtime[node_exporter] Preprocessing
|
| Linux: System name | The host name of the system. |
Dependent item | system.name[node_exporter] Preprocessing
|
| Linux: System description | Labeled system information as provided by the uname system call. |
Dependent item | system.descr[node_exporter] Preprocessing
|
| Linux: Maximum number of open file descriptors | It could be increased by using |
Dependent item | kernel.maxfiles[node_exporter] Preprocessing
|
| Linux: Number of open file descriptors | Dependent item | fd.open[node_exporter] Preprocessing
|
|
| Linux: Operating system | Dependent item | system.sw.os[node_exporter] Preprocessing
|
|
| Linux: Operating system architecture | The architecture of the operating system. |
Dependent item | system.sw.arch[node_exporter] Preprocessing
|
| Linux: System uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Dependent item | system.uptime[node_exporter] Preprocessing
|
| Linux: Load average (1m avg) | Dependent item | system.cpu.load.avg1[node_exporter] Preprocessing
|
|
| Linux: Load average (5m avg) | Dependent item | system.cpu.load.avg5[node_exporter] Preprocessing
|
|
| Linux: Load average (15m avg) | Dependent item | system.cpu.load.avg15[node_exporter] Preprocessing
|
|
| Linux: Number of CPUs | Dependent item | system.cpu.num[node_exporter] Preprocessing
|
|
| Linux: CPU idle time | The time the CPU has spent doing nothing. |
Dependent item | system.cpu.idle[node_exporter] Preprocessing
|
| Linux: CPU utilization | The CPU utilization expressed in %. |
Dependent item | system.cpu.util[node_exporter] Preprocessing
|
| Linux: CPU system time | The time the CPU has spent running the kernel and its processes. |
Dependent item | system.cpu.system[node_exporter] Preprocessing
|
| Linux: CPU user time | The time the CPU has spent running users' processes that are not niced. |
Dependent item | system.cpu.user[node_exporter] Preprocessing
|
| 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. |
Dependent item | system.cpu.steal[node_exporter] Preprocessing
|
| Linux: CPU softirq time | The amount of time the CPU has been servicing software interrupts. |
Dependent item | system.cpu.softirq[node_exporter] Preprocessing
|
| Linux: CPU nice time | The time the CPU has spent running users' processes that have been niced. |
Dependent item | system.cpu.nice[node_exporter] Preprocessing
|
| Linux: CPU iowait time | The amount of time the CPU has been waiting for I/O to complete. |
Dependent item | system.cpu.iowait[node_exporter] Preprocessing
|
| Linux: CPU interrupt time | The amount of time the CPU has been servicing hardware interrupts. |
Dependent item | system.cpu.interrupt[node_exporter] Preprocessing
|
| Linux: CPU guest time | Guest time - the time spent on running a virtual CPU for a guest operating system. |
Dependent item | system.cpu.guest[node_exporter] Preprocessing
|
| 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). |
Dependent item | system.cpu.guest_nice[node_exporter] Preprocessing
|
| Linux: Interrupts per second | Dependent item | system.cpu.intr[node_exporter] Preprocessing
|
|
| Linux: Context switches per second | Dependent item | system.cpu.switches[node_exporter] Preprocessing
|
|
| Linux: Memory utilization | Memory used percentage is calculated as (total-available)/total*100. |
Calculated | vm.memory.util[node_exporter] |
| Linux: Total memory | The total memory expressed in bytes. |
Dependent item | vm.memory.total[node_exporter] Preprocessing
|
| 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 |
Dependent item | vm.memory.available[node_exporter] Preprocessing
|
| Linux: Total swap space | The total space of the swap volume/file expressed in bytes. |
Dependent item | system.swap.total[node_exporter] Preprocessing
|
| Linux: Free swap space | The free space of the swap volume/file expressed in bytes. |
Dependent item | system.swap.free[node_exporter] Preprocessing
|
| Linux: Free swap space in % | The free space of the swap volume/file expressed in %. |
Calculated | system.swap.pfree[node_exporter] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Linux: node_exporter is not available | Failed to fetch system metrics from node_exporter in time. |
nodata(/Linux by Prom/node_exporter.get,30m)=1 |
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 Prom/system.localtime[node_exporter],{$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. |
last(/Linux by Prom/system.name[node_exporter],#1)<>last(/Linux by Prom/system.name[node_exporter],#2) and length(last(/Linux by Prom/system.name[node_exporter]))>0 |
Info | Manual close: Yes |
| Linux: Configured max number of open filedescriptors is too low | last(/Linux by Prom/kernel.maxfiles[node_exporter])<{$KERNEL.MAXFILES.MIN} |
Info | Depends on:
|
|
| Linux: Running out of file descriptors | last(/Linux by Prom/fd.open[node_exporter])/last(/Linux by Prom/kernel.maxfiles[node_exporter])*100>80 |
Warning | ||
| 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. |
last(/Linux by Prom/system.sw.os[node_exporter],#1)<>last(/Linux by Prom/system.sw.os[node_exporter],#2) and length(last(/Linux by Prom/system.sw.os[node_exporter]))>0 |
Info | Manual close: Yes Depends on:
|
| Linux: {HOST.NAME} has been restarted | The device uptime is less than 10 minutes. |
last(/Linux by Prom/system.uptime[node_exporter])<10m |
Warning | Manual close: Yes |
| Linux: Load average is too high | The load average per CPU is too high. The system may be slow to respond. |
min(/Linux by Prom/system.cpu.load.avg1[node_exporter],5m)/last(/Linux by Prom/system.cpu.num[node_exporter])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by Prom/system.cpu.load.avg5[node_exporter])>0 and last(/Linux by Prom/system.cpu.load.avg15[node_exporter])>0 |
Average | |
| Linux: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/Linux by Prom/system.cpu.util[node_exporter],5m)>{$CPU.UTIL.CRIT} |
Warning | Depends on:
|
| Linux: High memory utilization | The system is running out of free memory. |
min(/Linux by Prom/vm.memory.util[node_exporter],5m)>{$MEMORY.UTIL.MAX} |
Average | Depends on:
|
| Linux: Lack of available memory | max(/Linux by Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>0 |
Average | ||
| Linux: High swap space usage | If there is no swap configured, this trigger is ignored. |
max(/Linux by Prom/system.swap.pfree[node_exporter],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Prom/system.swap.total[node_exporter])>0 |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of network interfaces. Requires node_exporter v0.18 and up. |
Dependent item | net.if.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Dependent item | net.if.in[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Dependent item | net.if.out[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | Dependent item | net.if.out.errors[node_exporter"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | Dependent item | net.if.in.errors[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | Dependent item | net.if.in.discards[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | Dependent item | net.if.out.discards[node_exporter,"{#IFNAME}"] Preprocessing
|
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Sets value to 0 if metric is missing in node_exporter output. |
Dependent item | net.if.speed[node_exporter,"{#IFNAME}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | node_network_protocol_type protocol_type value of /sys/class/net/ |
Dependent item | net.if.type[node_exporter,"{#IFNAME}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
Dependent item | net.if.status[node_exporter,"{#IFNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) or avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])) and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): 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 Prom/net.if.speed[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and ( last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=7 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=11 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=62 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=69 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=117 ) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) |
Info | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): 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 Prom/net.if.type[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and (last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=1) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) |
Info | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of file systems of different types. |
Dependent item | vfs.fs.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FSNAME}: Free space | Dependent item | vfs.fs.free[node_exporter,"{#FSNAME}"] Preprocessing
|
|
| {#FSNAME}: Total space | Total space in bytes |
Dependent item | vfs.fs.total[node_exporter,"{#FSNAME}"] Preprocessing
|
| {#FSNAME}: Used space | Used storage in bytes |
Calculated | vfs.fs.used[node_exporter,"{#FSNAME}"] |
| {#FSNAME}: Space utilization | The space utilization expressed in % for {#FSNAME}. |
Calculated | vfs.fs.pused[node_exporter,"{#FSNAME}"] |
| {#FSNAME}: Free inodes in % | Dependent item | vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low | last(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes | |
| {#FSNAME}: Disk space is low | last(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
|
| {#FSNAME}: Running out of free inodes | It may become impossible to write to a disk if there are no index nodes left. |
min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],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. |
min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Block devices discovery | Dependent item | vfs.dev.discovery[node_exporter] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | r/s. The number (after merges) of read requests completed per second for the device. |
Dependent item | vfs.dev.read.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk write rate | w/s. The number (after merges) of write requests completed per second for the device. |
Dependent item | vfs.dev.write.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk read time (rate) | Rate of total read time counter. Used in |
Dependent item | vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk write time (rate) | Rate of total write time counter. Used in |
Dependent item | vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#DEVNAME}: Disk read request avg waiting time (r_await) | This formula contains two Boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
Calculated | vfs.dev.read.await[node_exporter,"{#DEVNAME}"] |
| {#DEVNAME}: Disk write request avg waiting time (w_await) | This formula contains two Boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
Calculated | vfs.dev.write.await[node_exporter,"{#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[node_exporter,"{#DEVNAME}"] Preprocessing
|
| {#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[node_exporter,"{#DEVNAME}"] Preprocessing
|
| 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 Prom/vfs.dev.read.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux by Prom/vfs.dev.write.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
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
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_prom?at=release/5.4
For Zabbix version: 5.4 and higher
This template collects Linux metrics from node_exporter 0.18 and above. Support for older node_exporter versions is provided as 'best effort'.
This template was tested on:
Please refer to the node_exporter docs. Use node_exporter v0.18.0 or above.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | - |
90 |
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | - |
90 |
| {$IFCONTROL} | - |
1 |
| {$KERNEL.MAXFILES.MIN} | - |
256 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$MEMORY.AVAILABLE.MIN} | - |
20M |
| {$MEMORY.UTIL.MAX} | - |
90 |
| {$NET.IF.IFALIAS.MATCHES} | - |
^.*$ |
| {$NET.IF.IFALIAS.NOT_MATCHES} | - |
CHANGE_IF_NEEDED |
| {$NET.IF.IFNAME.MATCHES} | - |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default. |
`(^Software Loopback Interface |
| {$NET.IF.IFOPERSTATUS.MATCHES} | - |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore notPresent(7). |
^7$ |
| {$NODE_EXPORTER_PORT} | TCP Port node_exporter is listening on. |
9100 |
| {$SWAP.PFREE.MIN.WARN} | - |
50 |
| {$SYSTEM.FUZZYTIME.MAX} | - |
60 |
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level. |
`^(loop[0-9]* |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in ms) before the trigger would fire. |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in ms) before the trigger would fire. |
20 |
| {$VFS.FS.FSDEVICE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
^.+$ |
| {$VFS.FS.FSDEVICE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
`^(/dev |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
`^(btrfs |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | - |
10 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | - |
20 |
| {$VFS.FS.PUSED.MAX.CRIT} | - |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | - |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of network interfaces. Requires node_exporter v0.18 and up. |
DEPENDENT | net.if.discovery[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: Filter: AND- {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX - {#IFALIAS} MATCHES_REGEX - {#IFALIAS} NOT_MATCHES_REGEX - {#IFOPERSTATUS} MATCHES_REGEX - {#IFOPERSTATUS} NOT_MATCHES_REGEX |
| Mounted filesystem discovery | Discovery of file systems of different types. |
DEPENDENT | vfs.fs.discovery[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: Filter: AND- {#FSTYPE} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSDEVICE} NOT_MATCHES_REGEX |
| Block devices discovery | - |
DEPENDENT | vfs.dev.discovery[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: Filter: AND- {#DEVNAME} MATCHES_REGEX - {#DEVNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Load average (1m avg) | - |
DEPENDENT | system.cpu.load.avg1[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| CPU | Load average (5m avg) | - |
DEPENDENT | system.cpu.load.avg5[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| CPU | Load average (15m avg) | - |
DEPENDENT | system.cpu.load.avg15[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| CPU | Number of CPUs | - |
DEPENDENT | system.cpu.num[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: |
| CPU | CPU utilization | CPU utilization in % |
DEPENDENT | system.cpu.util[node_exporter] Preprocessing: - JAVASCRIPT: |
| CPU | CPU idle time | The time the CPU has spent doing nothing. |
DEPENDENT | system.cpu.idle[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU system time | The time the CPU has spent running the kernel and its processes. |
DEPENDENT | system.cpu.system[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU user time | The time the CPU has spent running users' processes that are not niced. |
DEPENDENT | system.cpu.user[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU steal time | The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine). |
DEPENDENT | system.cpu.steal[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU softirq time | The amount of time the CPU has been servicing software interrupts. |
DEPENDENT | system.cpu.softirq[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU nice time | The time the CPU has spent running users' processes that have been niced. |
DEPENDENT | system.cpu.nice[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU iowait time | Amount of time the CPU has been waiting for I/O to complete. |
DEPENDENT | system.cpu.iowait[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU interrupt time | The amount of time the CPU has been servicing hardware interrupts. |
DEPENDENT | system.cpu.interrupt[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU guest time | Guest time (time spent running a virtual CPU for a guest operating system) |
DEPENDENT | system.cpu.guest[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: `{name= |
| CPU | CPU guest nice time | Time spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel) |
DEPENDENT | system.cpu.guest_nice[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: `{name= |
| CPU | Interrupts per second | - |
DEPENDENT | system.cpu.intr[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| CPU | Context switches per second | - |
DEPENDENT | system.cpu.switches[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| General | System boot time | - |
DEPENDENT | system.boottime[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| General | System local time | System local time of the host. |
DEPENDENT | system.localtime[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| General | System name | System host name. |
DEPENDENT | system.name[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | Labeled system information as provided by the uname system call. |
DEPENDENT | system.descr[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Maximum number of open file descriptors | It could be increased by using sysctrl utility or modifying file /etc/sysctl.conf. |
DEPENDENT | kernel.maxfiles[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Number of open file descriptors | - |
DEPENDENT | fd.open[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Inventory | Operating system | - |
DEPENDENT | system.sw.os[node_exporter] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Inventory | Operating system architecture | Operating system architecture of the host. |
DEPENDENT | system.sw.arch[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - DISCARD_UNCHANGED_HEARTBEAT: |
| Memory | Memory utilization | Memory used percentage is calculated as (total-available)/total*100. |
CALCULATED | vm.memory.util[node_exporter] Expression: (last(//vm.memory.total[node_exporter])-last(//vm.memory.available[node_exporter]))/last(//vm.memory.total[node_exporter])*100 |
| Memory | Total memory | Total memory in Bytes |
DEPENDENT | vm.memory.total[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Memory | Available memory | 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. |
DEPENDENT | vm.memory.available[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Memory | Total swap space | The total space of swap volume/file in bytes. |
DEPENDENT | system.swap.total[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Memory | Free swap space | The free space of swap volume/file in bytes. |
DEPENDENT | system.swap.free[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Memory | Free swap space in % | The free space of swap volume/file in percent. |
CALCULATED | system.swap.pfree[node_exporter] Expression: last(//system.swap.free[node_exporter])/last(//system.swap.total[node_exporter])*100 |
| Monitoring_agent | Version of node_exporter running | - |
DEPENDENT | agent.version[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Bits received | - |
DEPENDENT | net.if.in[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | - |
DEPENDENT | net.if.out[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | - |
DEPENDENT | net.if.out.errors[node_exporter"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | - |
DEPENDENT | net.if.in.errors[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | - |
DEPENDENT | net.if.in.discards[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | - |
DEPENDENT | net.if.out.discards[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | Sets value to 0 if metric is missing in node_exporter output. |
DEPENDENT | net.if.speed[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: ⛔️ON_FAIL: - MULTIPLIER: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | node_network_protocol_type protocol_type value of /sys/class/net/ |
DEPENDENT | net.if.type[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
DEPENDENT | net.if.status[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - JAVASCRIPT: |
| Status | System uptime | System uptime in 'N days, hh:mm:ss' format. |
DEPENDENT | system.uptime[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - JAVASCRIPT: |
| Storage | {#FSNAME}: Free space | - |
DEPENDENT | vfs.fs.free[node_exporter,"{#FSNAME}"] Preprocessing: - PROMETHEUS_PATTERN: |
| Storage | {#FSNAME}: Total space | Total space in Bytes |
DEPENDENT | vfs.fs.total[node_exporter,"{#FSNAME}"] Preprocessing: - PROMETHEUS_PATTERN: |
| Storage | {#FSNAME}: Used space | Used storage in Bytes |
CALCULATED | vfs.fs.used[node_exporter,"{#FSNAME}"] Expression: (last(//vfs.fs.total[node_exporter,"{#FSNAME}"])-last(//vfs.fs.free[node_exporter,"{#FSNAME}"])) |
| Storage | {#FSNAME}: Space utilization | Space utilization in % for {#FSNAME} |
CALCULATED | vfs.fs.pused[node_exporter,"{#FSNAME}"] Expression: (last(//vfs.fs.used[node_exporter,"{#FSNAME}"])/last(//vfs.fs.total[node_exporter,"{#FSNAME}"]))*100 |
| Storage | {#FSNAME}: Free inodes in % | - |
DEPENDENT | vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: |
| Storage | {#DEVNAME}: Disk read rate | r/s. The number (after merges) of read requests completed per second for the device. |
DEPENDENT | vfs.dev.read.rate[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk write rate | w/s. The number (after merges) of write requests completed per second for the device. |
DEPENDENT | vfs.dev.write.rate[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk read request avg waiting time (r_await) | This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
CALCULATED | vfs.dev.read.await[node_exporter,"{#DEVNAME}"] Expression: (last(//vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"])/(last(//vfs.dev.read.rate[node_exporter,"{#DEVNAME}"])+(last(//vfs.dev.read.rate[node_exporter,"{#DEVNAME}"])=0)))*1000*(last(//vfs.dev.read.rate[node_exporter,"{#DEVNAME}"]) > 0) |
| Storage | {#DEVNAME}: Disk write request avg waiting time (w_await) | This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
CALCULATED | vfs.dev.write.await[node_exporter,"{#DEVNAME}"] Expression: (last(//vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"])/(last(//vfs.dev.write.rate[node_exporter,"{#DEVNAME}"])+(last(//vfs.dev.write.rate[node_exporter,"{#DEVNAME}"])=0)))*1000*(last(//vfs.dev.write.rate[node_exporter,"{#DEVNAME}"]) > 0) |
| Storage | {#DEVNAME}: Disk average queue size (avgqu-sz) | Current average disk queue, the number of requests outstanding on the disk at the time the performance data is collected. |
DEPENDENT | vfs.dev.queue_size[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk utilization | This item is the percentage of elapsed time that the selected disk drive was busy servicing read or writes requests. |
DEPENDENT | vfs.dev.util[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND - MULTIPLIER: |
| Zabbix_raw_items | Get node_exporter metrics | - |
HTTP_AGENT | node_exporter.get |
| Zabbix_raw_items | {#DEVNAME}: Disk read time (rate) | Rate of total read time counter. Used in r_await calculation. |
DEPENDENT | vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Zabbix_raw_items | {#DEVNAME}: Disk write time (rate) | Rate of total write time counter. Used in w_await calculation. |
DEPENDENT | vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) | Per CPU load average is too high. Your system may be slow to respond. |
min(/Linux by Prom/system.cpu.load.avg1[node_exporter],5m)/last(/Linux by Prom/system.cpu.num[node_exporter])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by Prom/system.cpu.load.avg5[node_exporter])>0 and last(/Linux by Prom/system.cpu.load.avg15[node_exporter])>0 |
AVERAGE | |
| High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | CPU utilization is too high. The system might be slow to respond. |
min(/Linux by Prom/system.cpu.util[node_exporter],5m)>{$CPU.UTIL.CRIT} |
WARNING | Depends on: - Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) |
| System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s) | The host system time is different from the Zabbix server time. |
fuzzytime(/Linux by Prom/system.localtime[node_exporter],{$SYSTEM.FUZZYTIME.MAX})=0 |
WARNING | Manual close: YES |
| System name has changed (new name: {ITEM.VALUE}) | System name has changed. Ack to close. |
last(/Linux by Prom/system.name[node_exporter],#1)<>last(/Linux by Prom/system.name[node_exporter],#2) and length(last(/Linux by Prom/system.name[node_exporter]))>0 |
INFO | Manual close: YES |
| Configured max number of open filedescriptors is too low (< {$KERNEL.MAXFILES.MIN}) | - |
last(/Linux by Prom/kernel.maxfiles[node_exporter])<{$KERNEL.MAXFILES.MIN} |
INFO | Depends on: - Running out of file descriptors (less than < 20% free) |
| Running out of file descriptors (less than < 20% free) | - |
last(/Linux by Prom/fd.open[node_exporter])/last(/Linux by Prom/kernel.maxfiles[node_exporter])*100>80 |
WARNING | |
| Operating system description has changed | Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close. |
last(/Linux by Prom/system.sw.os[node_exporter],#1)<>last(/Linux by Prom/system.sw.os[node_exporter],#2) and length(last(/Linux by Prom/system.sw.os[node_exporter]))>0 |
INFO | Manual close: YES Depends on: - System name has changed (new name: {ITEM.VALUE}) |
| High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) | The system is running out of free memory. |
min(/Linux by Prom/vm.memory.util[node_exporter],5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | Depends on: - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
| Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) | - |
min(/Linux by Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>0 |
AVERAGE | |
| High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free) | This trigger is ignored, if there is no swap configured. |
min(/Linux by Prom/system.swap.pfree[node_exporter],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Prom/system.swap.total[node_exporter])>0 |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%) | The network interface utilization is close to its estimated maximum bandwidth. |
(avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) or avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])) and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0Recovery expression: avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) and avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold. |
min(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}Recovery expression: max(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): 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. Ack to close. |
change(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and ( last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=7 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=11 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=62 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=69 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=117 ) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) Recovery expression: (change(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"],#2)>0) or (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): 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. Ack to close. |
change(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and (last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=1) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) Recovery expression: (change(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"],#2)>0) or (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: 1. Can be triggered if operations status is down. 2. {$IFCONTROL:"{#IFNAME}"}=1 - 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) - 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. |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2))Recovery expression: last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
| {HOST.NAME} has been restarted (uptime < 10m) | The device uptime is less than 10 minutes. |
last(/Linux by Prom/system.uptime[node_exporter])<10m |
WARNING | Manual close: YES |
| {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than 5G. - The disk will be full in less than 24 hours. |
last(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux by Prom/vfs.fs.total[node_exporter,"{#FSNAME}"])-last(/Linux by Prom/vfs.fs.used[node_exporter,"{#FSNAME}"]))<5G or timeleft(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],1h,100)<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than 10G. - The disk will be full in less than 24 hours. |
last(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux by Prom/vfs.fs.total[node_exporter,"{#FSNAME}"])-last(/Linux by Prom/vfs.fs.used[node_exporter,"{#FSNAME}"]))<10G or timeleft(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],1h,100)<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
AVERAGE | |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
WARNING | Depends on: - {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) |
| {#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m) | This trigger might indicate disk {#DEVNAME} saturation. |
min(/Linux by Prom/vfs.dev.read.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux by Prom/vfs.dev.write.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
| node_exporter is not available (or no data for 30m) | Failed to fetch system metrics from node_exporter in time. |
nodata(/Linux by Prom/node_exporter.get,30m)=1 |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Description: node_exporter v0.16.0 renamed many metrics. CPU utilization for 'guest' and 'guest_nice' metrics are not supported in this template with node_exporter < 0.16. Disk IO metrics are not supported. Other metrics provided as 'best effort'. See https://github.com/prometheus/node_exporter/releases/tag/v0.16.0 for details.
Description: metric node_network_info with label 'device' cannot be found, so network discovery is not possible.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/linux_prom?at=release/5.0
For Zabbix version: 5.0 and higher
This template collects Linux metrics from node_exporter 0.18 and above. Support for older node_exporter versions is provided as 'best effort'.
This template was tested on:
Please refer to the node_exporter docs. Use node_exporter v0.18.0 or above.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.UTIL.CRIT} | - |
90 |
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | - |
90 |
| {$IFCONTROL} | - |
1 |
| {$KERNEL.MAXFILES.MIN} | - |
256 |
| {$LOAD_AVG_PER_CPU.MAX.WARN} | Load per CPU considered sustainable. Tune if needed. |
1.5 |
| {$MEMORY.AVAILABLE.MIN} | - |
20M |
| {$MEMORY.UTIL.MAX} | - |
90 |
| {$NET.IF.IFALIAS.MATCHES} | - |
^.*$ |
| {$NET.IF.IFALIAS.NOT_MATCHES} | - |
CHANGE_IF_NEEDED |
| {$NET.IF.IFNAME.MATCHES} | - |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
`(^Software Loopback Interface |
| {$NET.IF.IFOPERSTATUS.MATCHES} | - |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore notPresent(7) |
^7$ |
| {$NODE_EXPORTER_PORT} | TCP Port node_exporter is listening on. |
9100 |
| {$SWAP.PFREE.MIN.WARN} | - |
50 |
| {$SYSTEM.FUZZYTIME.MAX} | - |
60 |
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in block devices discovery. Can be overridden on the host or linked template level |
`^(loop[0-9]* |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in ms) before the trigger would fire |
20 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in ms) before the trigger would fire |
20 |
| {$VFS.FS.FREE.MIN.CRIT} | The critical threshold of the filesystem utilization. |
5G |
| {$VFS.FS.FREE.MIN.WARN} | The warning threshold of the filesystem utilization. |
10G |
| {$VFS.FS.FSDEVICE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
^.+$ |
| {$VFS.FS.FSDEVICE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
^\s$ |
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(/dev |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
`^(btrfs |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level |
^\s$ |
| {$VFS.FS.INODE.PFREE.MIN.CRIT} | - |
10 |
| {$VFS.FS.INODE.PFREE.MIN.WARN} | - |
20 |
| {$VFS.FS.PUSED.MAX.CRIT} | - |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | - |
80 |
There are no template links in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interface discovery | Discovery of network interfaces. Requires node_exporter v0.18 and up. |
DEPENDENT | net.if.discovery[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: Filter: AND- A: {#IFNAME} MATCHES_REGEX - B: {#IFNAME} NOT_MATCHES_REGEX - C: {#IFALIAS} MATCHES_REGEX - D: {#IFALIAS} NOT_MATCHES_REGEX - E: {#IFOPERSTATUS} MATCHES_REGEX - F: {#IFOPERSTATUS} NOT_MATCHES_REGEX |
| Mounted filesystem discovery | Discovery of file systems of different types. |
DEPENDENT | vfs.fs.discovery[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: Filter: AND- A: {#FSTYPE} MATCHES_REGEX - B: {#FSTYPE} NOT_MATCHES_REGEX - C: {#FSNAME} MATCHES_REGEX - D: {#FSNAME} NOT_MATCHES_REGEX - E: {#FSNAME} MATCHES_REGEX - F: {#FSDEVICE} NOT_MATCHES_REGEX |
| Block devices discovery | - |
DEPENDENT | vfs.dev.discovery[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: Filter: AND- A: {#DEVNAME} MATCHES_REGEX - B: {#DEVNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| CPU | Load average (1m avg) | - |
DEPENDENT | system.cpu.load.avg1[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| CPU | Load average (5m avg) | - |
DEPENDENT | system.cpu.load.avg5[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| CPU | Load average (15m avg) | - |
DEPENDENT | system.cpu.load.avg15[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| CPU | Number of CPUs | - |
DEPENDENT | system.cpu.num[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: |
| CPU | CPU utilization | CPU utilization in %. |
DEPENDENT | system.cpu.util[node_exporter] Preprocessing: - JAVASCRIPT: |
| CPU | CPU idle time | The time the CPU has spent doing nothing. |
DEPENDENT | system.cpu.idle[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU system time | The time the CPU has spent running the kernel and its processes. |
DEPENDENT | system.cpu.system[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU user time | The time the CPU has spent running users' processes that are not niced. |
DEPENDENT | system.cpu.user[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU steal time | The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine). |
DEPENDENT | system.cpu.steal[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU softirq time | The amount of time the CPU has been servicing software interrupts. |
DEPENDENT | system.cpu.softirq[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU nice time | The time the CPU has spent running users' processes that have been niced. |
DEPENDENT | system.cpu.nice[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU iowait time | Amount of time the CPU has been waiting for I/O to complete. |
DEPENDENT | system.cpu.iowait[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU interrupt time | The amount of time the CPU has been servicing hardware interrupts. |
DEPENDENT | system.cpu.interrupt[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - CHANGE_PER_SECOND - MULTIPLIER: |
| CPU | CPU guest time | Guest time (time spent running a virtual CPU for a guest operating system). |
DEPENDENT | system.cpu.guest[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: `{name= |
| CPU | CPU guest nice time | Time spent running a niced guest (virtual CPU for guest operating systems under the control of the Linux kernel). |
DEPENDENT | system.cpu.guest_nice[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: `{name= |
| CPU | Interrupts per second | - |
DEPENDENT | system.cpu.intr[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| CPU | Context switches per second | - |
DEPENDENT | system.cpu.switches[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| General | System boot time | - |
DEPENDENT | system.boottime[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| General | System local time | System local time of the host. |
DEPENDENT | system.localtime[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| General | System name | System host name. |
DEPENDENT | system.name[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | Labeled system information as provided by the uname system call. |
DEPENDENT | system.descr[node_exporter] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Maximum number of open file descriptors | It could be increased by using sysctl utility or modifying file /etc/sysctl.conf. |
DEPENDENT | kernel.maxfiles[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | Number of open file descriptors | - |
DEPENDENT | fd.open[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Inventory | Operating system | - |
DEPENDENT | system.sw.os[node_exporter] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Inventory | Operating system architecture | Operating system architecture of the host. |
DEPENDENT | system.sw.arch[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - DISCARD_UNCHANGED_HEARTBEAT: |
| Memory | Memory utilization | Memory used percentage is calculated as (total-available)/total*100 |
CALCULATED | vm.memory.util[node_exporter] Expression: (last("vm.memory.total[node_exporter]")-last("vm.memory.available[node_exporter]"))/last("vm.memory.total[node_exporter]")*100 |
| Memory | Total memory | Total memory in Bytes. |
DEPENDENT | vm.memory.total[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Memory | Available memory | 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. |
DEPENDENT | vm.memory.available[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Memory | Total swap space | The total space of swap volume/file in bytes. |
DEPENDENT | system.swap.total[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Memory | Free swap space | The free space of swap volume/file in bytes. |
DEPENDENT | system.swap.free[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: |
| Memory | Free swap space in % | The free space of swap volume/file in percent. |
CALCULATED | system.swap.pfree[node_exporter] Expression: last("system.swap.free[node_exporter]")/last("system.swap.total[node_exporter]")*100 |
| Monitoring_agent | Version of node_exporter running | - |
DEPENDENT | agent.version[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Bits received | DEPENDENT | net.if.in[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND - MULTIPLIER: |
|
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | DEPENDENT | net.if.out[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND - MULTIPLIER: |
|
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | DEPENDENT | net.if.out.errors[node_exporter"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
|
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | DEPENDENT | net.if.in.errors[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
|
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | DEPENDENT | net.if.in.discards[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
|
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | DEPENDENT | net.if.out.discards[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
|
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | Sets value to 0 if metric is missing in node_exporter output. |
DEPENDENT | net.if.speed[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: ⛔️ON_FAIL: - MULTIPLIER: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | node_network_protocol_type protocol_type value of /sys/class/net/ |
DEPENDENT | net.if.type[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Operational status | Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt |
DEPENDENT | net.if.status[node_exporter,"{#IFNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - JAVASCRIPT: |
| Status | System uptime | System uptime in 'N days, hh:mm:ss' format. |
DEPENDENT | system.uptime[node_exporter] Preprocessing: - PROMETHEUS_PATTERN: - JAVASCRIPT: |
| Storage | {#FSNAME}: Free space | - |
DEPENDENT | vfs.fs.free[node_exporter,"{#FSNAME}"] Preprocessing: - PROMETHEUS_PATTERN: |
| Storage | {#FSNAME}: Total space | Total space in Bytes |
DEPENDENT | vfs.fs.total[node_exporter,"{#FSNAME}"] Preprocessing: - PROMETHEUS_PATTERN: |
| Storage | {#FSNAME}: Used space | Used storage in Bytes |
CALCULATED | vfs.fs.used[node_exporter,"{#FSNAME}"] Expression: (last("vfs.fs.total[node_exporter,\"{#FSNAME}\"]")-last("vfs.fs.free[node_exporter,\"{#FSNAME}\"]")) |
| Storage | {#FSNAME}: Space utilization | Space utilization in % for {#FSNAME} |
CALCULATED | vfs.fs.pused[node_exporter,"{#FSNAME}"] Expression: (last("vfs.fs.used[node_exporter,\"{#FSNAME}\"]")/last("vfs.fs.total[node_exporter,\"{#FSNAME}\"]"))*100 |
| Storage | {#FSNAME}: Free inodes in % | - |
DEPENDENT | vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"] Preprocessing: - PROMETHEUS_TO_JSON: - JAVASCRIPT: |
| Storage | {#DEVNAME}: Disk read rate | r/s. The number (after merges) of read requests completed per second for the device. |
DEPENDENT | vfs.dev.read.rate[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk write rate | w/s. The number (after merges) of write requests completed per second for the device. |
DEPENDENT | vfs.dev.write.rate[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk read request avg waiting time (r_await) | This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
CALCULATED | vfs.dev.read.await[node_exporter,"{#DEVNAME}"] Expression: (last("vfs.dev.read.time.rate[node_exporter,\"{#DEVNAME}\"]")/(last("vfs.dev.read.rate[node_exporter,\"{#DEVNAME}\"]")+(last("vfs.dev.read.rate[node_exporter,\"{#DEVNAME}\"]")=0)))*1000*(last("vfs.dev.read.rate[node_exporter,\"{#DEVNAME}\"]") > 0) |
| Storage | {#DEVNAME}: Disk write request avg waiting time (w_await) | This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception. |
CALCULATED | vfs.dev.write.await[node_exporter,"{#DEVNAME}"] Expression: (last("vfs.dev.write.time.rate[node_exporter,\"{#DEVNAME}\"]")/(last("vfs.dev.write.rate[node_exporter,\"{#DEVNAME}\"]")+(last("vfs.dev.write.rate[node_exporter,\"{#DEVNAME}\"]")=0)))*1000*(last("vfs.dev.write.rate[node_exporter,\"{#DEVNAME}\"]") > 0) |
| Storage | {#DEVNAME}: Disk average queue size (avgqu-sz) | Current average disk queue, the number of requests outstanding on the disk at the time the performance data is collected. |
DEPENDENT | vfs.dev.queue_size[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Storage | {#DEVNAME}: Disk utilization | This item is the percentage of elapsed time that the selected disk drive was busy servicing read or writes requests. |
DEPENDENT | vfs.dev.util[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND - MULTIPLIER: |
| Zabbix_raw_items | Get node_exporter metrics | - |
HTTP_AGENT | node_exporter.get |
| Zabbix_raw_items | {#DEVNAME}: Disk read time (rate) | Rate of total read time counter. Used in r_await calculation |
DEPENDENT | vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Zabbix_raw_items | {#DEVNAME}: Disk write time (rate) | Rate of total write time counter. Used in w_await calculation |
DEPENDENT | vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"] Preprocessing: - PROMETHEUS_PATTERN: - CHANGE_PER_SECOND |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) | Per CPU load average is too high. Your system may be slow to respond. |
{TEMPLATE_NAME:system.cpu.load.avg1[node_exporter].min(5m)}/{TEMPLATE_NAME:system.cpu.num[node_exporter].last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} and {TEMPLATE_NAME:system.cpu.load.avg5[node_exporter].last()}>0 and {TEMPLATE_NAME:system.cpu.load.avg15[node_exporter].last()}>0 |
AVERAGE | |
| High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | CPU utilization is too high. The system might be slow to respond. |
{TEMPLATE_NAME:system.cpu.util[node_exporter].min(5m)}>{$CPU.UTIL.CRIT} |
WARNING | Depends on: - Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m) |
| System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s) | The host system time is different from the Zabbix server time. |
{TEMPLATE_NAME:system.localtime[node_exporter].fuzzytime({$SYSTEM.FUZZYTIME.MAX})}=0 |
WARNING | Manual close: YES |
| System name has changed (new name: {ITEM.VALUE}) | System name has changed. Ack to close. |
{TEMPLATE_NAME:system.name[node_exporter].diff()}=1 and {TEMPLATE_NAME:system.name[node_exporter].strlen()}>0 |
INFO | Manual close: YES |
| Configured max number of open filedescriptors is too low (< {$KERNEL.MAXFILES.MIN}) | - |
{TEMPLATE_NAME:kernel.maxfiles[node_exporter].last()}<{$KERNEL.MAXFILES.MIN} |
INFO | Depends on: - Running out of file descriptors (less than < 20% free) |
| Running out of file descriptors (less than < 20% free) | - |
{TEMPLATE_NAME:fd.open[node_exporter].last()}/{TEMPLATE_NAME:kernel.maxfiles[node_exporter].last()}*100>80 |
WARNING | |
| Operating system description has changed | Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close. |
{TEMPLATE_NAME:system.sw.os[node_exporter].diff()}=1 and {TEMPLATE_NAME:system.sw.os[node_exporter].strlen()}>0 |
INFO | Manual close: YES Depends on: - System name has changed (new name: {ITEM.VALUE}) |
| High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) | The system is running out of free memory. |
{TEMPLATE_NAME:vm.memory.util[node_exporter].min(5m)}>{$MEMORY.UTIL.MAX} |
AVERAGE | Depends on: - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
| Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) | - |
{TEMPLATE_NAME:vm.memory.available[node_exporter].max(5m)}<{$MEMORY.AVAILABLE.MIN} and {TEMPLATE_NAME:vm.memory.total[node_exporter].last()}>0 |
AVERAGE | |
| High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free) | This trigger is ignored, if there is no swap configured. |
{TEMPLATE_NAME:system.swap.pfree[node_exporter].max(5m)}<{$SWAP.PFREE.MIN.WARN} and {TEMPLATE_NAME:system.swap.total[node_exporter].last()}>0 |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) - Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2}) |
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%) | The network interface utilization is close to its estimated maximum bandwidth. |
({TEMPLATE_NAME:net.if.in[node_exporter,"{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{TEMPLATE_NAME:net.if.speed[node_exporter,"{#IFNAME}"].last()} or {TEMPLATE_NAME:net.if.out[node_exporter,"{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{TEMPLATE_NAME:net.if.speed[node_exporter,"{#IFNAME}"].last()}) and {TEMPLATE_NAME:net.if.speed[node_exporter,"{#IFNAME}"].last()}>0Recovery expression: {TEMPLATE_NAME:net.if.in[node_exporter,"{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{TEMPLATE_NAME:net.if.speed[node_exporter,"{#IFNAME}"].last()} and {TEMPLATE_NAME:net.if.out[node_exporter,"{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{TEMPLATE_NAME:net.if.speed[node_exporter,"{#IFNAME}"].last()} |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
{TEMPLATE_NAME:net.if.in.errors[node_exporter,"{#IFNAME}"].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {TEMPLATE_NAME:net.if.out.errors[node_exporter"{#IFNAME}"].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}Recovery expression: {TEMPLATE_NAME:net.if.in.errors[node_exporter,"{#IFNAME}"].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {TEMPLATE_NAME:net.if.out.errors[node_exporter"{#IFNAME}"].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): 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. Ack to close. |
{TEMPLATE_NAME:net.if.speed[node_exporter,"{#IFNAME}"].change()}<0 and {TEMPLATE_NAME:net.if.speed[node_exporter,"{#IFNAME}"].last()}>0 and ( {TEMPLATE_NAME:net.if.type[node_exporter,"{#IFNAME}"].last()}=6 or {TEMPLATE_NAME:net.if.type[node_exporter,"{#IFNAME}"].last()}=7 or {TEMPLATE_NAME:net.if.type[node_exporter,"{#IFNAME}"].last()}=11 or {TEMPLATE_NAME:net.if.type[node_exporter,"{#IFNAME}"].last()}=62 or {TEMPLATE_NAME:net.if.type[node_exporter,"{#IFNAME}"].last()}=69 or {TEMPLATE_NAME:net.if.type[node_exporter,"{#IFNAME}"].last()}=117 ) and ({TEMPLATE_NAME:net.if.status[node_exporter,"{#IFNAME}"].last()}<>2)Recovery expression: ({TEMPLATE_NAME:net.if.speed[node_exporter,"{#IFNAME}"].change()}>0 and {TEMPLATE_NAME:net.if.speed[node_exporter,"{#IFNAME}"].prev()}>0) or ({TEMPLATE_NAME:net.if.status[node_exporter,"{#IFNAME}"].last()}=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): 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. Ack to close. |
{TEMPLATE_NAME:net.if.type[node_exporter,"{#IFNAME}"].change()}<0 and {TEMPLATE_NAME:net.if.type[node_exporter,"{#IFNAME}"].last()}>0 and ({TEMPLATE_NAME:net.if.type[node_exporter,"{#IFNAME}"].last()}=6 or {TEMPLATE_NAME:net.if.type[node_exporter,"{#IFNAME}"].last()}=1) and ({TEMPLATE_NAME:net.if.status[node_exporter,"{#IFNAME}"].last()}<>2)Recovery expression: ({TEMPLATE_NAME:net.if.type[node_exporter,"{#IFNAME}"].change()}>0 and {TEMPLATE_NAME:net.if.type[node_exporter,"{#IFNAME}"].prev()}>0) or ({TEMPLATE_NAME:net.if.status[node_exporter,"{#IFNAME}"].last()}=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: 1. Can be triggered if operations status is down. 2. {$IFCONTROL:"{#IFNAME}"}=1 - 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) - 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. |
{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:net.if.status[node_exporter,"{#IFNAME}"].last()}=2 and {TEMPLATE_NAME:net.if.status[node_exporter,"{#IFNAME}"].diff()}=1)Recovery expression: {TEMPLATE_NAME:net.if.status[node_exporter,"{#IFNAME}"].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
| {HOST.NAME} has been restarted (uptime < 10m) | The device uptime is less than 10 minutes |
{TEMPLATE_NAME:system.uptime[node_exporter].last()}<10m |
WARNING | Manual close: YES |
| {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}. 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. |
{TEMPLATE_NAME:vfs.fs.pused[node_exporter,"{#FSNAME}"].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and (({TEMPLATE_NAME:vfs.fs.total[node_exporter,"{#FSNAME}"].last()}-{TEMPLATE_NAME:vfs.fs.used[node_exporter,"{#FSNAME}"].last()})<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or {TEMPLATE_NAME:vfs.fs.pused[node_exporter,"{#FSNAME}"].timeleft(1h,,100)}<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}. 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. |
{TEMPLATE_NAME:vfs.fs.pused[node_exporter,"{#FSNAME}"].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and (({TEMPLATE_NAME:vfs.fs.total[node_exporter,"{#FSNAME}"].last()}-{TEMPLATE_NAME:vfs.fs.used[node_exporter,"{#FSNAME}"].last()})<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or {TEMPLATE_NAME:vfs.fs.pused[node_exporter,"{#FSNAME}"].timeleft(1h,,100)}<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
{TEMPLATE_NAME:vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
AVERAGE | |
| {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%) | It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. |
{TEMPLATE_NAME:vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
WARNING | Depends on: - {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%) |
| {#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m) | This trigger might indicate disk {#DEVNAME} saturation. |
{TEMPLATE_NAME:vfs.dev.read.await[node_exporter,"{#DEVNAME}"].min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or {TEMPLATE_NAME:vfs.dev.write.await[node_exporter,"{#DEVNAME}"].min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
| node_exporter is not available (or no data for 30m) | Failed to fetch system metrics from node_exporter in time. |
{TEMPLATE_NAME:node_exporter.get.nodata(30m)}=1 |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Description: node_exporter v0.16.0 renamed many metrics. CPU utilization for 'guest' and 'guest_nice' metrics are not supported in this template with node_exporter < 0.16. Disk IO metrics are not supported. Other metrics provided as 'best effort'.
See https://github.com/prometheus/node_exporter/releases/tag/v0.16.0 for details.
Description: metric node_network_info with label 'device' cannot be found, so network discovery is not possible.
| Link | Source | Compatibility | Type, Technology | Created Updated | Rating |
|---|---|---|---|---|---|
| Zabbix for Ubuntu Linux www.zabbix.com/download?os_distribution=ubuntu |
|
Official
|