yzl
93958d0fb0
|
1 year ago | |
---|---|---|
.. | ||
README.md | 1 year ago | |
template_os_linux.yaml | 1 year ago |
README.md
Linux by Zabbix agent
Overview
New official Linux template. Requires agent of Zabbix 7.0 or newer.
Requirements
Zabbix version: 7.0 and higher.
Tested versions
This template has been tested on:
- Linux OS
Configuration
Zabbix should be configured according to the instructions in the Templates out of the box section.
Setup
Install Zabbix agent on Linux OS following Zabbix documentation.
Macros used
Name | Description | Default |
---|---|---|
{$AGENT.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.FREE.MIN.CRIT} | The critical threshold for utilization of the filesystem. |
5G |
{$VFS.FS.FREE.MIN.WARN} | The warning threshold for utilization of the filesystem. |
10G |
{$VFS.FS.INODE.PFREE.MIN.CRIT} | The critical threshold of the filesystem metadata utilization. |
10 |
{$VFS.FS.INODE.PFREE.MIN.WARN} | The warning threshold of the filesystem metadata utilization. |
20 |
{$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
{$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
{$MEMORY.UTIL.MAX} | This macro is used as a threshold in the memory utilization trigger. |
90 |
{$MEMORY.AVAILABLE.MIN} | This macro is used as a threshold in the memory available trigger. |
20M |
{$SWAP.PFREE.MIN.WARN} | 50 |
|
{$VFS.DEV.READ.AWAIT.WARN} | The average response time (in ms) of disk read before the trigger would fire. |
20 |
{$VFS.DEV.WRITE.AWAIT.WARN} | The average response time (in ms) of disk write before the trigger would fire. |
20 |
{$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used for a discovery of block devices. It can be overridden on host level or its linked template level. |
Macro too long. Please see the template. |
{$VFS.DEV.DEVNAME.MATCHES} | This macro is used for a discovery of block devices. It can be overridden on host level or its linked template level. |
.+ |
{$IF.ERRORS.WARN} | 2 |
|
{$IFCONTROL} | 1 |
|
{$NET.IF.IFNAME.MATCHES} | ^.*$ |
|
{$NET.IF.IFNAME.NOT_MATCHES} | It filters out |
Macro too long. Please see the template. |
{$IF.UTIL.MAX} | This macro is used as a threshold in the interface utilization trigger. |
90 |
{$SYSTEM.FUZZYTIME.MAX} | 60 |
|
{$KERNEL.MAXPROC.MIN} | 1024 |
|
{$KERNEL.MAXFILES.MIN} | 256 |
Items
Name | Description | Type | Key and additional info |
---|---|---|---|
Linux: Version of Zabbix agent running | Zabbix agent | 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: 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 | 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: Number of installed packages | Zabbix agent | system.sw.packages.get Preprocessing
|
Triggers
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:
|
Linux: Number of installed packages has been changed | change(/Linux by Zabbix agent/system.sw.packages.get)<>0 |
Warning | Manual close: Yes |
LLD rule Mounted filesystem discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Mounted filesystem discovery | The discovery of mounted filesystems with different types. |
Dependent item | vfs.fs.dependent.discovery |
Item prototypes for Mounted filesystem discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
{#FSNAME}: Get filesystem data | Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
|
{#FSNAME}: Filesystem is read-only | The filesystem is mounted as read-only. It is available only for Zabbix agents 6.4 and higher. |
Dependent item | vfs.fs.dependent[{#FSNAME},readonly] Preprocessing
|
{#FSNAME}: Used space | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
{#FSNAME}: Total space | The total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
{#FSNAME}: Space utilization | Space utilization expressed in % for |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
{#FSNAME}: Free inodes in % | Dependent item | vfs.fs.dependent.inode[{#FSNAME},pfree] Preprocessing
|
Trigger prototypes for Mounted filesystem discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#FSNAME}: Filesystem has become read-only | The filesystem has become read-only. A possible reason is an I/O error. It is available only for Zabbix agents 6.4 and higher. |
last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly],#2)=0 and last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly])=1 |
Average | Manual close: Yes |
{#FSNAME}: Disk space is critically low | Two conditions should match: |
last(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},total])-last(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],1h,100)<1d) |
Average | Manual close: Yes |
{#FSNAME}: Disk space is low | Two conditions should match: |
last(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},total])-last(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],1h,100)<1d) |
Warning | Manual close: Yes Depends on:
|
{#FSNAME}: 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.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"} |
Average | |
{#FSNAME}: Running out of free inodes | It may become impossible to write to a disk if there are no index nodes left. |
min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"} |
Warning | Depends on:
|
LLD rule Block devices discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Block devices discovery | Zabbix agent | vfs.dev.discovery Preprocessing
|
Item prototypes for Block devices 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
|
Trigger prototypes for Block devices discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#DEVNAME}: Disk read/write request responses are too high | This trigger might indicate the disk |
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 |
LLD rule Network interface discovery
Name | Description | Type | Key and additional info |
---|---|---|---|
Network interface discovery | The discovery of network interfaces. |
Zabbix agent | net.if.discovery |
Item prototypes for Network interface 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
|
Trigger prototypes for Network interface discovery
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Interface {#IFNAME}: High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Linux by Zabbix agent/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:
|
Feedback
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums