Skip to content

Zabbix Template: Linux by Zabbix agent

class: os target: linux vendor: Zabbix version: 7.0-1

This is an official Linux template. It requires Zabbix agent 7.0 or newer.

Notes on filesystem (FS) discovery: - The ext4/3/2 filesystem reserves space for privileged usage, typically set at 5% by default. - BTRFS allocates a default of 10% of the volume for its own needs. - To mitigate potential disasters, FS usage triggers are based on the maximum available space. - Utilization formula: 'pused = 100 - 100 * (available / total - free + available)' - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.

You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387225-discussion-thread-for-official-zabbix-template-for-linux

Generated by official Zabbix template tool "Templator"

Items

Item: Host name of Zabbix agent running

component: system

agent.hostname

Settings:

Item Setting Value
Value type CHAR
History 7d

Item: Zabbix agent ping

component: system

The agent always returns "1" for this item. May be used in combination with nodata() for the availability check.

agent.ping

Settings:

Item Setting Value
History 7d

Item: Version of Zabbix agent running

component: application

agent.version

Settings:

Item Setting Value
Value type CHAR
History 7d

Item: Maximum number of open file descriptors

component: system

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

kernel.maxfiles

Settings:

Item Setting Value
History 7d

Item: Maximum number of processes

component: system

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

kernel.maxproc

Settings:

Item Setting Value
History 7d

Item: Number of processes

component: system

proc.num

Settings:

Item Setting Value
History 7d

Item: Number of running processes

component: system

proc.num[,,run]

Settings:

Item Setting Value
History 7d

Item: System boot time

component: system

system.boottime

Settings:

Item Setting Value
History 7d

Item: Interrupts per second

component: cpu

Number of interrupts processed.

system.cpu.intr

Settings:

Item Setting Value
Value type FLOAT
History 7d

Item: Load average (1m avg)

component: cpu

Calculated as the system CPU load divided by the number of CPU cores.

system.cpu.load[all,avg1]

Settings:

Item Setting Value
Value type FLOAT
History 7d

Item: Load average (5m avg)

component: cpu

Calculated as the system CPU load divided by the number of CPU cores.

system.cpu.load[all,avg5]

Settings:

Item Setting Value
Value type FLOAT
History 7d

Item: Load average (15m avg)

component: cpu

Calculated as the system CPU load divided by the number of CPU cores.

system.cpu.load[all,avg15]

Settings:

Item Setting Value
Value type FLOAT
History 7d

Item: Number of CPUs

component: cpu

system.cpu.num

Settings:

Item Setting Value
History 7d

Item: Context switches per second

component: cpu

The combined rate at which all processors on the computer are switched from one thread to another.

system.cpu.switches

Settings:

Item Setting Value
Value type FLOAT
History 7d

Item: CPU utilization

component: cpu

CPU utilization expressed in %.

system.cpu.util

Settings:

Item Setting Value
Type DEPENDENT
Value type FLOAT in %
History 7d
Source item system.cpu.util[,idle]

Preprocessing steps:

Type Parameters
JAVASCRIPT ["return (100 - value)"]

Item: CPU guest time

component: cpu

Time spent on running a virtual CPU for a guest operating system.

system.cpu.util[,guest]

Settings:

Item Setting Value
Value type FLOAT in %
History 7d

Item: CPU guest nice time

component: cpu

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

system.cpu.util[,guest_nice]

Settings:

Item Setting Value
Value type FLOAT in %
History 7d

Item: CPU idle time

component: cpu

Time the CPU has spent doing nothing.

system.cpu.util[,idle]

Settings:

Item Setting Value
Value type FLOAT in %
History 7d

Item: CPU interrupt time

component: cpu

Time the CPU has spent servicing hardware interrupts.

system.cpu.util[,interrupt]

Settings:

Item Setting Value
Value type FLOAT in %
History 7d

Item: CPU iowait time

component: cpu

Time the CPU has been waiting for I/O to complete.

system.cpu.util[,iowait]

Settings:

Item Setting Value
Value type FLOAT in %
History 7d

Item: CPU nice time

component: cpu

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

system.cpu.util[,nice]

Settings:

Item Setting Value
Value type FLOAT in %
History 7d

Item: CPU softirq time

component: cpu

Time the CPU has been servicing software interrupts.

system.cpu.util[,softirq]

Settings:

Item Setting Value
Value type FLOAT in %
History 7d

Item: CPU steal time

component: cpu

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

system.cpu.util[,steal]

Settings:

Item Setting Value
Value type FLOAT in %
History 7d

Item: CPU system time

component: cpu

Time the CPU has spent running the kernel and its processes.

system.cpu.util[,system]

Settings:

Item Setting Value
Value type FLOAT in %
History 7d

Item: CPU user time

component: cpu

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

system.cpu.util[,user]

Settings:

Item Setting Value
Value type FLOAT in %
History 7d

Item: System name

component: system

The host name of the system.

system.hostname

Settings:

Item Setting Value
Value type CHAR
History 7d

Item: System local time

component: system

The local system time of the host.

system.localtime

Settings:

Item Setting Value
History 7d

Item: Operating system architecture

component: os

The architecture of the operating system.

system.sw.arch

Settings:

Item Setting Value
Value type CHAR
History 7d

Item: Operating system

component: os

system.sw.os

Settings:

Item Setting Value
Value type CHAR
History 7d

Item: Number of installed packages

component: os

system.sw.packages.get

Settings:

Item Setting Value
History 7d

Item: Free swap space

component: memory component: storage

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

system.swap.size[,free]

Settings:

Item Setting Value
History 7d

Item: Free swap space in %

component: memory component: storage

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

system.swap.size[,pfree]

Settings:

Item Setting Value
Value type FLOAT in %
History 7d

Item: Total swap space

component: memory component: storage

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

system.swap.size[,total]

Settings:

Item Setting Value
History 7d

Item: System description

component: system

The information as normally returned by uname -a.

system.uname

Settings:

Item Setting Value
Value type CHAR
History 7d

Item: System uptime

component: system

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

system.uptime

Settings:

Item Setting Value
History 7d

Item: Number of logged in users

component: environment

The number of users who are currently logged in.

system.users.num

Settings:

Item Setting Value
History 7d

Item: Checksum of /etc/passwd

component: security

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

Settings:

Item Setting Value
Value type CHAR
History 7d

Item: Get filesystems

component: raw

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

vfs.fs.get

Settings:

Item Setting Value
Value type TEXT

Item: Available memory

component: 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 vm.memory.size item.

vm.memory.size[available]

Settings:

Item Setting Value
History 7d

Item: Available memory in %

component: memory

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

vm.memory.size[pavailable]

Settings:

Item Setting Value
Value type FLOAT in %
History 7d

Item: Total memory

component: memory

Total memory expressed in bytes.

vm.memory.size[total]

Settings:

Item Setting Value
History 7d

Item: Memory utilization

component: memory

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

vm.memory.utilization

Settings:

Item Setting Value
Type DEPENDENT
Value type FLOAT in %
History 7d
Source item vm.memory.size[pavailable]

Preprocessing steps:

Type Parameters
JAVASCRIPT ["return (100-value);"]

Item: Zabbix agent availability

component: system

Used for monitoring the availability status of the agent.

zabbix[host,agent,available]

Settings:

Item Setting Value
Type INTERNAL
History 7d

Triggers

Trigger: Configured max number of open filedescriptors is too low

scope: performance

Settings:

Trigger Setting Values
Priority INFO
last(/Linux by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN}

Trigger: Configured max number of processes is too low

scope: performance

Settings:

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

Trigger: High CPU utilization

scope: performance

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

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

Trigger: System name has changed

scope: notice scope: security

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

Trigger Setting Values
Priority INFO
Manual close YES
change(/Linux by Zabbix agent/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0

Trigger: System time is out of sync

scope: availability scope: performance

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

Trigger Setting Values
Priority WARNING
Manual close YES
fuzzytime(/Linux by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0

Trigger: Operating system description has changed

scope: notice

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

Trigger Setting Values
Priority INFO
Manual close YES
change(/Linux by Zabbix agent/system.sw.os) and length(last(/Linux by Zabbix agent/system.sw.os))>0

Trigger: Number of installed packages has been changed

scope: notice

Settings:

Trigger Setting Values
Priority WARNING
Manual close YES
change(/Linux by Zabbix agent/system.sw.packages.get)<>0

Trigger: {HOST.NAME} has been restarted

scope: notice

The host uptime is less than 10 minutes. Settings:

Trigger Setting Values
Priority WARNING
Manual close YES
last(/Linux by Zabbix agent/system.uptime)<10m

Trigger: /etc/passwd has been changed

scope: security

Settings:

Trigger Setting Values
Priority INFO
Manual close YES
last(/Linux by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#1)<>last(/Linux by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#2)

Trigger: High memory utilization

scope: capacity scope: performance

The system is running out of free memory. Settings:

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

Trigger: Zabbix agent is not available

scope: availability

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

Trigger Setting Values
Priority AVERAGE
Manual close YES
max(/Linux by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0

Discovery Rules

Discovery Rule: Network interface discovery

The discovery of network interfaces.

net.if.discovery

Settings:

Item Setting Value

Discovery Rule: Network interface discovery: Item Prototypes

Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Inbound packets discarded

component: network interface: {#IFNAME}

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

Settings:

Item Setting Value
History 7d
Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Inbound packets with errors

component: network interface: {#IFNAME}

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

Settings:

Item Setting Value
History 7d
Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Bits received

component: network interface: {#IFNAME}

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

Settings:

Item Setting Value
History 7d
Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Outbound packets discarded

component: network interface: {#IFNAME}

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

Settings:

Item Setting Value
History 7d
Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Outbound packets with errors

component: network interface: {#IFNAME}

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

Settings:

Item Setting Value
History 7d
Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Bits sent

component: network interface: {#IFNAME}

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

Settings:

Item Setting Value
History 7d
Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Operational status

component: network interface: {#IFNAME}

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

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

Settings:

Item Setting Value
History 7d
Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Speed

component: network interface: {#IFNAME}

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

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

Settings:

Item Setting Value
History 7d
Discovery Rule: Network interface discovery: Item Prototype: Interface {#IFNAME}: Interface type

component: network interface: {#IFNAME}

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

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

Settings:

Item Setting Value
History 7d

Discovery Rule: Network interface discovery: Discovery Triggers

scope: availability

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 the context macro to "0", marking this interface as not important. No new trigger will be fired if this interface is down. 3. last(/TEMPLATE_NAME/METRIC,#1)<>last(/TEMPLATE_NAME/METRIC,#2) - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for "eternal off" interfaces.)

WARNING: if closed manually - it will not fire again on the next poll, because of .diff.

Settings:

Trigger Setting Values
Priority AVERAGE
Manual close YES
{$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))

Discovery Rule: Network interface discovery: Graph Prototypes

The following graph prototypes are defined by this Template

  • Interface {#IFNAME}: Network traffic

Discovery Rule: Block devices discovery

vfs.dev.discovery

Settings:

Item Setting Value

Discovery Rule: Block devices discovery: Item Prototypes

Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk average queue size (avgqu-sz)

component: storage disk: {#DEVNAME}

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

vfs.dev.queue_size[{#DEVNAME}]

Settings:

Item Setting Value
Type DEPENDENT
Value type FLOAT
History 7d
Source item vfs.file.contents[/sys/block/{#DEVNAME}/stat]

Preprocessing steps:

Type Parameters
JSONPATH ["$[10]"]
CHANGE_PER_SECOND [""]
MULTIPLIER ["0.001"]
Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk read request avg waiting time (r_await)

component: storage disk: {#DEVNAME}

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.

vfs.dev.read.await[{#DEVNAME}]

Settings:

Item Setting Value
Type CALCULATED
Value type FLOAT in !ms
History 7d
Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk read rate

component: storage disk: {#DEVNAME}

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

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

Settings:

Item Setting Value
Type DEPENDENT
Value type FLOAT in !r/s
History 7d
Source item vfs.file.contents[/sys/block/{#DEVNAME}/stat]

Preprocessing steps:

Type Parameters
JSONPATH ["$[0]"]
CHANGE_PER_SECOND [""]
Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk read time (rate)

component: storage disk: {#DEVNAME}

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

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

Settings:

Item Setting Value
Type DEPENDENT
Value type FLOAT
History 7d
Source item vfs.file.contents[/sys/block/{#DEVNAME}/stat]

Preprocessing steps:

Type Parameters
JSONPATH ["$[3]"]
CHANGE_PER_SECOND [""]
MULTIPLIER ["0.001"]
Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk utilization

component: storage disk: {#DEVNAME}

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

vfs.dev.util[{#DEVNAME}]

Settings:

Item Setting Value
Type DEPENDENT
Value type FLOAT in %
History 7d
Source item vfs.file.contents[/sys/block/{#DEVNAME}/stat]

Preprocessing steps:

Type Parameters
JSONPATH ["$[9]"]
CHANGE_PER_SECOND [""]
MULTIPLIER ["0.1"]
Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk write request avg waiting time (w_await)

component: storage disk: {#DEVNAME}

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.

vfs.dev.write.await[{#DEVNAME}]

Settings:

Item Setting Value
Type CALCULATED
Value type FLOAT in !ms
History 7d
Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk write rate

component: storage disk: {#DEVNAME}

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

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

Settings:

Item Setting Value
Type DEPENDENT
Value type FLOAT in !w/s
History 7d
Source item vfs.file.contents[/sys/block/{#DEVNAME}/stat]

Preprocessing steps:

Type Parameters
JSONPATH ["$[4]"]
CHANGE_PER_SECOND [""]
Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Disk write time (rate)

component: storage disk: {#DEVNAME}

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

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

Settings:

Item Setting Value
Type DEPENDENT
Value type FLOAT
History 7d
Source item vfs.file.contents[/sys/block/{#DEVNAME}/stat]

Preprocessing steps:

Type Parameters
JSONPATH ["$[7]"]
CHANGE_PER_SECOND [""]
MULTIPLIER ["0.001"]
Discovery Rule: Block devices discovery: Item Prototype: {#DEVNAME}: Get stats

component: raw

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

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

Settings:

Item Setting Value
Value type TEXT

Discovery Rule: Block devices discovery: Graph Prototypes

The following graph prototypes are defined by this Template

  • {#DEVNAME}: Disk average waiting time
  • {#DEVNAME}: Disk read/write rates
  • {#DEVNAME}: Disk utilization and queue

Discovery Rule: Mounted filesystem discovery

The discovery of mounted filesystems with different types.

vfs.fs.dependent.discovery

Settings:

Item Setting Value
Type DEPENDENT
Source item vfs.fs.get

Preprocessing steps:

Type Parameters
JAVASCRIPT ["var filesystems = JSON.parse(value);\n\nresult = filesystems.map(function (filesystem) {\n\treturn {\n\t\t'fsname': filesystem.fsname,\n\t\t'fstype': filesystem.fstype\n\t};\n});\n\nreturn JSON.stringify(result);\n"]
DISCARD_UNCHANGED_HEARTBEAT ["1h"]

Discovery Rule: Mounted filesystem discovery: Item Prototypes

Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Inodes: Free, in %

component: storage filesystem: {#FSNAME} fstype: {#FSTYPE}

Free metadata space expressed in %.

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

Settings:

Item Setting Value
Type DEPENDENT
Value type FLOAT in %
History 7d
Source item vfs.fs.dependent[{#FSNAME},data]

Preprocessing steps:

Type Parameters
JSONPATH ["$.inodes.pfree"]
Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Space: Available

component: storage filesystem: {#FSNAME} fstype: {#FSTYPE}

Available storage space expressed in bytes.

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

Settings:

Item Setting Value
Type DEPENDENT
History 7d
Source item vfs.fs.dependent[{#FSNAME},data]

Preprocessing steps:

Type Parameters
JSONPATH ["$.bytes.free"]
Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Space: Used, in %

component: storage filesystem: {#FSNAME} fstype: {#FSTYPE}

Calculated as the percentage of currently used space compared to the maximum available space.

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

Settings:

Item Setting Value
Type DEPENDENT
Value type FLOAT in %
History 7d
Source item vfs.fs.dependent[{#FSNAME},data]

Preprocessing steps:

Type Parameters
JSONPATH ["$.bytes.pused"]
Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Space: Total

component: storage filesystem: {#FSNAME} fstype: {#FSTYPE}

Total space expressed in bytes.

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

Settings:

Item Setting Value
Type DEPENDENT
History 7d
Source item vfs.fs.dependent[{#FSNAME},data]

Preprocessing steps:

Type Parameters
JSONPATH ["$.bytes.total"]
Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Space: Used

component: storage filesystem: {#FSNAME} fstype: {#FSTYPE}

Used storage expressed in bytes.

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

Settings:

Item Setting Value
Type DEPENDENT
History 7d
Source item vfs.fs.dependent[{#FSNAME},data]

Preprocessing steps:

Type Parameters
JSONPATH ["$.bytes.used"]
Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Get data

component: raw component: storage filesystem: {#FSNAME} fstype: {#FSTYPE}

Intermediate data of {#FSNAME} filesystem.

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

Settings:

Item Setting Value
Type DEPENDENT
Value type TEXT
History 1h
Source item vfs.fs.get

Preprocessing steps:

Type Parameters
JSONPATH ["$.[?(@.fsname=='{#FSNAME}')].first()"]
Discovery Rule: Mounted filesystem discovery: Item Prototype: FS [{#FSNAME}]: Option: Read-only

component: storage filesystem: {#FSNAME} fstype: {#FSTYPE}

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

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

Settings:

Item Setting Value
Type DEPENDENT
History 7d
Source item vfs.fs.dependent[{#FSNAME},data]

Preprocessing steps:

Type Parameters
JSONPATH ["$.options"]
REGEX ["(?:^|,)ro\\b", "1"]

Discovery Rule: Mounted filesystem discovery: Discovery Triggers

Discovery Rule: Mounted filesystem discovery: Trigger Prototype: FS [{#FSNAME}]: Running out of free inodes

scope: capacity scope: performance

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

Trigger Setting Values
Priority AVERAGE
min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}
Discovery Rule: Mounted filesystem discovery: Trigger Prototype: FS [{#FSNAME}]: Running out of free inodes

scope: capacity scope: performance

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

Trigger Setting Values
Priority WARNING
min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}
Discovery Rule: Mounted filesystem discovery: Trigger Prototype: FS [{#FSNAME}]: Space is critically low

scope: availability scope: capacity

The volume's space usage exceeds the {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}% limit. The trigger expression is based on the current used and maximum available spaces. Event name represents the total volume space, which can differ from the maximum available space, depending on the filesystem type.

Settings:

Trigger Setting Values
Priority AVERAGE
Manual close YES
min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}
Discovery Rule: Mounted filesystem discovery: Trigger Prototype: FS [{#FSNAME}]: Space is low

scope: availability scope: capacity

The volume's space usage exceeds the {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}% limit. The trigger expression is based on the current used and maximum available spaces. Event name represents the total volume space, which can differ from the maximum available space, depending on the filesystem type.

Settings:

Trigger Setting Values
Priority WARNING
Manual close YES
min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}
Discovery Rule: Mounted filesystem discovery: Trigger Prototype: FS [{#FSNAME}]: Filesystem has become read-only

scope: availability scope: performance

The filesystem has become read-only, possibly due to an I/O error. Available only for Zabbix agents 6.4 and higher. Settings:

Trigger Setting Values
Priority AVERAGE
Manual close YES
last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly],#2)=0 and last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly])=1

Discovery Rule: Mounted filesystem discovery: Graph Prototypes

The following graph prototypes are defined by this Template

  • FS [{#FSTYPE}({#FSNAME})]: Space usage graph, in % (relative to max available)
  • FS [{#FSTYPE}({#FSNAME})]: Space utilization chart (relative to total)

Macros

The following Zabbix macros are configured via this template.

Macro: {$AGENT.TIMEOUT}

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

Default:

3m

Macro: {$CPU.UTIL.CRIT}

Critical threshold of CPU utilization expressed in %.

Default:

90

Macro: {$IF.ERRORS.WARN}

Warning threshold of error packet rate. Can be used with interface name as context.

Default:

2

Macro: {$IF.UTIL.MAX}

Used as a threshold in the interface utilization trigger.

Default:

90

Macro: {$IFCONTROL}

Link status trigger will be fired only for interfaces where the context macro equals "1".

Default:

1

Macro: {$KERNEL.MAXFILES.MIN}

Default:

256

Macro: {$KERNEL.MAXPROC.MIN}

Default:

1024

Macro: {$LOAD_AVG_PER_CPU.MAX.WARN}

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

Default:

1.5

Macro: {$MEMORY.AVAILABLE.MIN}

Used as a threshold in the available memory trigger.

Default:

20M

Macro: {$MEMORY.UTIL.MAX}

Used as a threshold in the memory utilization trigger.

Default:

90

Macro: {$NET.IF.IFNAME.MATCHES}

Used for network interface discovery. Can be overridden on the host or linked template level.

Default:

^.*$

Macro: {$NET.IF.IFNAME.NOT_MATCHES}

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

Default:

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

Macro: {$SWAP.PFREE.MIN.WARN}

The warning threshold of the minimum free swap.

Default:

50

Macro: {$SYSTEM.FUZZYTIME.MAX}

The upper threshold for difference of system time.

Default:

60s

Macro: {$SYSTEM.FUZZYTIME.MIN}

The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping.

Default:

10s

Macro: {$VFS.DEV.DEVNAME.MATCHES}

Used for block device discovery. Can be overridden on the host or linked template level.

Default:

.+

Macro: {$VFS.DEV.DEVNAME.NOT_MATCHES}

Used for block device discovery. Can be overridden on the host or linked template level.

Default:

^(loop[0-9]*|sd[a-z][0-9]+|nbd[0-9]+|sr[0-9]+|fd[0-9]+|dm-[0-9]+|ram[0-9]+|ploop[a-z0-9]+|md[0-9]*|hcp[0-9]*|zram[0-9]*)

Macro: {$VFS.DEV.READ.AWAIT.WARN}

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

Default:

20

Macro: {$VFS.DEV.WRITE.AWAIT.WARN}

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

Default:

20

Macro: {$VFS.FS.FSNAME.MATCHES}

Used for filesystem discovery. Can be overridden on the host or linked template level.

Default:

.+

Macro: {$VFS.FS.FSNAME.NOT_MATCHES}

Used for filesystem discovery. Can be overridden on the host or linked template level.

Default:

^(/dev|/sys|/run|/proc|.+/shm$)

Macro: {$VFS.FS.FSTYPE.MATCHES}

Used for filesystem discovery. Can be overridden on the host or linked template level.

Default:

^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$

Macro: {$VFS.FS.FSTYPE.NOT_MATCHES}

Used for filesystem discovery. Can be overridden on the host or linked template level.

Default:

^\s$

Macro: {$VFS.FS.INODE.PFREE.MIN.CRIT}

The critical threshold of the filesystem metadata utilization.

Default:

10

Macro: {$VFS.FS.INODE.PFREE.MIN.WARN}

The warning threshold of the filesystem metadata utilization.

Default:

20

Macro: {$VFS.FS.PUSED.MAX.CRIT}

The critical threshold of the filesystem utilization.

Default:

90

Macro: {$VFS.FS.PUSED.MAX.WARN}

The warning threshold of the filesystem utilization.

Default:

80

Dashboards

The following Zabbix dashboards are included in this template.

  • Filesystems
  • Network interfaces
  • System performance