For Zabbix version: 6.2 and higher
Refer to the vendor 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 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Monitoring agent | Version of Zabbix agent running | - |
ZABBIX_PASSIVE | agent.version Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Monitoring agent | Host name of Zabbix agent running | - |
ZABBIX_PASSIVE | agent.hostname Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
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 |
Status | Zabbix agent availability | Monitoring agent availability status |
INTERNAL | zabbix[host,agent,available] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Zabbix agent is not available | For passive only agents, host availability is used with {$AGENT.TIMEOUT} as time threshold. |
max(/Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 |
AVERAGE | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 6.2 and higher
Refer to the vendor 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 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Monitoring agent | Version of Zabbix agent running | - |
ZABBIX_ACTIVE | agent.version Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Monitoring agent | Host name of Zabbix agent running | - |
ZABBIX_ACTIVE | agent.hostname Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
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] |
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 |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Zabbix agent: active checks are not available | Active checks are considered unavailable. Agent is not sending heartbeat for prolonged time. |
min(/Zabbix agent active/zabbix[host,active_agent,available],{$AGENT.TIMEOUT})=2 |
HIGH | |
Zabbix agent is not available | For active agents, nodata() with agent.ping is used with {$AGENT.NODATA_TIMEOUT} as time threshold. |
nodata(/Zabbix agent active/agent.ping,{$AGENT.NODATA_TIMEOUT})=1 |
AVERAGE | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$CPU.INTERRUPT.CRIT.MAX} | The critical threshold of the % Interrupt Time counter. |
50 |
{$CPU.PRIV.CRIT.MAX} | The threshold of the % Privileged Time counter. |
30 |
{$CPU.QUEUE.CRIT.MAX} | The threshold of the Processor Queue Length counter. |
3 |
{$CPU.UTIL.CRIT} | The critical threshold of the CPU utilization in %. |
90 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
CPU | CPU utilization | CPU utilization in %. |
ZABBIX_ACTIVE | system.cpu.util |
CPU | CPU interrupt time | The Processor Information\% Interrupt Time is the time the processor spends receiving and servicing hardware interrupts during sample intervals. This value is an indirect indicator of the activity of devices that generate interrupts, such as the system clock, the mouse, disk drivers, data communication lines, network interface cards and other peripheral devices. This is an easy way to identify a potential hardware failure. This should never be higher than 20%. |
ZABBIX_ACTIVE | perfcounteren["\Processor Information(_total)\% Interrupt Time"] |
CPU | Context switches per second | Context Switches/sec is the combined rate at which all processors on the computer are switched from one thread to another. Context switches occur when a running thread voluntarily relinquishes the processor, is preempted by a higher priority ready thread, or switches between user-mode and privileged (kernel) mode to use an Executive or subsystem service. It is the sum of Thread\Context Switches/sec for all threads running on all processors in the computer and is measured in numbers of switches. There are context switch counters on the System and Thread objects. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval. |
ZABBIX_ACTIVE | perfcounteren["\System\Context Switches/sec"] |
CPU | CPU privileged time | The Processor Information\% Privileged Time counter shows the percent of time that the processor is spent executing in Kernel (or Privileged) mode. Privileged mode includes services interrupts inside Interrupt Service Routines (ISRs), executing Deferred Procedure Calls (DPCs), Device Driver calls and other kernel-mode functions of the Windows® Operating System. |
ZABBIX_ACTIVE | perfcounteren["\Processor Information(_total)\% Privileged Time"] |
CPU | CPU DPC time | Processor DPC time is the time that a single processor spent receiving and servicing deferred procedure calls (DPCs). DPCs are interrupts that run at a lower priority than standard interrupts. % DPC Time is a component of % Privileged Time because DPCs are executed in privileged mode. If a high % DPC Time is sustained, there may be a processor bottleneck or an application or hardware related issue that can significantly diminish overall system performance. |
ZABBIX_ACTIVE | perfcounteren["\Processor Information(_total)\% DPC Time"] |
CPU | CPU user time | The Processor Information\% User Time counter shows the percent of time that the processor(s) is spent executing in User mode. |
ZABBIX_ACTIVE | perfcounteren["\Processor Information(_total)\% User Time"] |
CPU | Number of cores | The number of logical processors available on the computer. |
ZABBIX_ACTIVE | wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"] |
CPU | CPU queue length | The Processor Queue Length shows the number of threads that are observed as delayed in the processor Ready Queue and are waiting to be executed. |
ZABBIX_ACTIVE | perfcounteren["\System\Processor Queue Length"] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows CPU by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
WARNING | |
CPU interrupt time is too high | "The CPU Interrupt Time in the last 5 minutes exceeds {$CPU.INTERRUPT.CRIT.MAX}%." The Processor Information\% Interrupt Time is the time the processor spends receiving and servicing hardware interrupts during sample intervals. This value is an indirect indicator of the activity of devices that generate interrupts, such as the system clock, the mouse, disk drivers, data communication lines, network interface cards and other peripheral devices. This is an easy way to identify a potential hardware failure. This should never be higher than 20%. |
min(/Windows CPU by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX} |
WARNING | Depends on: - High CPU utilization |
CPU privileged time is too high | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
min(/Windows CPU by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX} |
WARNING | Depends on: - CPU interrupt time is too high - High CPU utilization |
CPU queue length is too high | The CPU Queue Length in the last 5 minutes exceeds {$CPU.QUEUE.CRIT.MAX}. According to actual observations, PQL should not exceed the number of cores * 2. To fine-tune the conditions, use the macro {$CPU.QUEUE.CRIT.MAX }. |
min(/Windows CPU by Zabbix agent active/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows CPU by Zabbix agent active/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
WARNING | Depends on: - High CPU utilization |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
{$MEM.PAGETABLECRIT.MIN} | The warning threshold of the Free System Page Table Entries counter. |
5000 |
{$MEMORY.UTIL.MAX} | The warning threshold of the Memory util item. |
90 |
{$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
20 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Memory | Used memory | Used memory in Bytes. |
ZABBIX_ACTIVE | vm.memory.size[used] |
Memory | Total memory | Total memory in Bytes. |
ZABBIX_ACTIVE | vm.memory.size[total] |
Memory | Memory utilization | Memory utilization in %. |
CALCULATED | vm.memory.util Expression: last(//vm.memory.size[used]) / last(//vm.memory.size[total]) * 100 |
Memory | Cache bytes | Cache Bytes is the sum of the Memory\System Cache Resident Bytes, Memory\System Driver Resident Bytes, Memory\System Code Resident Bytes, and Memory\Pool Paged Resident Bytes counters. This counter displays the last observed value only; it is not an average. |
ZABBIX_ACTIVE | perfcounteren["\Memory\Cache Bytes"] |
Memory | Free swap space | The free space of swap volume/file in bytes. |
CALCULATED | system.swap.free Expression: last(//system.swap.size[,total]) - last(//system.swap.size[,total]) / 100 * last(//perf_counter_en["\Paging file(_Total)\% Usage"]) |
Memory | Free swap space in % | The free space of swap volume/file in percent. |
DEPENDENT | system.swap.pfree Preprocessing: - JAVASCRIPT: |
Memory | Used swap space in % | The used space of swap volume/file in percent. |
ZABBIX_ACTIVE | perfcounteren["\Paging file(_Total)\% Usage"] |
Memory | Total swap space | The total space of swap volume/file in bytes. |
ZABBIX_ACTIVE | system.swap.size[,total] |
Memory | Free system page table entries | This indicates the number of page table entries not currently in use by the system. If the number is less than 5,000, there may well be a memory leak or you running out of memory. |
ZABBIX_ACTIVE | perfcounteren["\Memory\Free System Page Table Entries"] |
Memory | Memory page faults per second | Page Faults/sec is the average number of pages faulted per second. It is measured in number of pages faulted per second because only one page is faulted in each fault operation, hence this is also equal to the number of page fault operations. This counter includes both hard faults (those that require disk access) and soft faults (where the faulted page is found elsewhere in physical memory.) Most processors can handle large numbers of soft faults without significant consequence. However, hard faults, which require disk access, can cause significant delays. |
ZABBIX_ACTIVE | perfcounteren["\Memory\Page Faults/sec"] |
Memory | Memory pages per second | This measures the rate at which pages are read from or written to disk to resolve hard page faults. If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak. |
ZABBIX_ACTIVE | perfcounteren["\Memory\Pages/sec"] |
Memory | Memory pool non-paged | This measures the size, in bytes, of the non-paged pool. This is an area of system memory for objects that cannot be written to disk but instead must remain in physical memory as long as they are allocated. There is a possible memory leak if the value is greater than 175MB (or 100MB with the /3GB switch). A typical Event ID 2019 is recorded in the system event log. |
ZABBIX_ACTIVE | perfcounteren["\Memory\Pool Nonpaged Bytes"] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
High memory utilization | The system is running out of free memory. |
min(/Windows memory by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | |
High swap space usage | This trigger is ignored, if there is no swap configured |
max(/Windows memory by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows memory by Zabbix agent active/system.swap.size[,total])>0 |
WARNING | Depends on: - High memory utilization |
Number of free system page table entries is too low | The Memory Free System Page Table Entries is less than {$MEM.PAGETABLECRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak. |
max(/Windows memory by Zabbix agent active/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN} |
WARNING | Depends on: - High memory utilization |
The Memory Pages/sec is too high | The Memory Pages/sec in the last 5 minutes exceeds {$MEM.PAGE_SEC.CRIT.MAX}. If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak. |
min(/Windows memory by Zabbix agent active/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
WARNING | Depends on: - High memory utilization |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 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.FSDRIVETYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
fixed |
||||
{$VFS.FS.FSDRIVETYPE.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 | /sys | /run | /proc | .+/shm$)` |
{$VFS.FS.FSTYPE.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.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization in percent. |
90 |
||||
{$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization in percent. |
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} MATCHESREGEX - {#FSTYPE} NOTMATCHESREGEX - {#FSNAME} MATCHESREGEX - {#FSNAME} NOTMATCHESREGEX - {#FSDRIVETYPE} MATCHESREGEX - {#FSDRIVETYPE} NOTMATCHES_REGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Filesystems | {#FSLABEL}({#FSNAME}): Used space | Used storage in Bytes |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},used] |
Filesystems | {#FSLABEL}({#FSNAME}): Total space | Total space in Bytes |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},total] |
Filesystems | {#FSLABEL}({#FSNAME}): Space utilization | Space utilization in % for {#FSNAME} |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},pused] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#FSLABEL}({#FSNAME}): Disk space is critically low | 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. |
last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
AVERAGE | Manual close: YES |
{#FSLABEL}({#FSNAME}): Disk space is low | 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. |
last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
WARNING | Manual close: YES Depends on: - {#FSLABEL}({#FSNAME}): Disk space is critically low |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 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 physical disks discovery. Can be overridden on the host or linked template level. |
.* |
{$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in physical disks discovery. Can be overridden on the host or linked template level. |
_Total |
{$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in s) before the trigger would fire. |
0.02 |
{$VFS.DEV.UTIL.MAX.WARN} | The warning threshold of disk time utilization in percent. |
95 |
{$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in s) before the trigger would fire. |
0.02 |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Physical disks discovery | Discovery of installed physical disks. |
ZABBIX_ACTIVE | perfinstanceen.discovery[PhysicalDisk] Preprocessing: - STRREPLACE: Filter: AND- {#DEVNAME} MATCHESREGEX - {#DEVNAME} NOTMATCHESREGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Storage | {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
ZABBIX_ACTIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
Storage | {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
ZABBIX_ACTIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60] |
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. |
ZABBIX_ACTIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60] |
Storage | {#DEVNAME}: Disk utilization by idle time | This item is the percentage of elapsed time that the selected disk drive was busy servicing read or writes requests based on idle time. |
ZABBIX_ACTIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\% Idle Time",60] Preprocessing: - JAVASCRIPT: |
Storage | {#DEVNAME}: Disk read request avg waiting time | The average time for read requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them. |
ZABBIX_ACTIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60] |
Storage | {#DEVNAME}: Disk write request avg waiting time | The average time for write requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them. |
ZABBIX_ACTIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60] |
Storage | {#DEVNAME}: Average disk read queue length | Average disk read queue, the number of requests outstanding on the disk at the time the performance data is collected. |
ZABBIX_ACTIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60] |
Storage | {#DEVNAME}: Average disk write queue length | Average disk write queue, the number of requests outstanding on the disk at the time the performance data is collected. |
ZABBIX_ACTIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#DEVNAME}: Disk is overloaded | The disk appears to be under heavy load |
min(/Windows physical disks by Zabbix agent active/perf_counter_en["\PhysicalDisk({#DEVNAME})\% Idle Time",60],15m)>{$VFS.DEV.UTIL.MAX.WARN} |
WARNING | Manual close: YES Depends on: - {#DEVNAME}: Disk read request responses are too high - {#DEVNAME}: Disk write request responses are too high |
{#DEVNAME}: Disk read request responses are too high | This trigger might indicate disk {#DEVNAME} saturation. |
min(/Windows physical disks by Zabbix agent active/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
{#DEVNAME}: Disk write request responses are too high | This trigger might indicate disk {#DEVNAME} saturation. |
min(/Windows physical disks by Zabbix agent active/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60],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: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$SYSTEM.FUZZYTIME.MAX} | The threshold for difference of system time in seconds. |
60 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
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: - DISCARDUNCHANGEDHEARTBEAT: |
General | System description | System description of the host. |
ZABBIX_ACTIVE | system.uname Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
General | Number of processes | The number of processes. |
ZABBIX_ACTIVE | proc.num[] |
General | Number of threads | The number of threads used by all running processes. |
ZABBIX_ACTIVE | perfcounteren["\System\Threads"] |
Inventory | Operating system architecture | Operating system architecture of the host. |
ZABBIX_ACTIVE | system.sw.arch Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Status | 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 | The host system time is different from the Zabbix server time. |
fuzzytime(/Windows generic by Zabbix agent active/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0 |
WARNING | Manual close: YES |
System name has changed | System name has changed. Ack to close. |
last(/Windows generic by Zabbix agent active/system.hostname,#1)<>last(/Windows generic by Zabbix agent active/system.hostname,#2) and length(last(/Windows generic by Zabbix agent active/system.hostname))>0 |
INFO | Manual close: YES |
Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows 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: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
{$IF.ERRORS.WARN} | - |
2 |
|||||||||
{$IF.UTIL.MAX} | - |
90 |
|||||||||
{$IFCONTROL} | - |
1 |
|||||||||
{$NET.IF.IFALIAS.MATCHES} | This macro is used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
|||||||||
{$NET.IF.IFALIAS.NOT_MATCHES} | This macro is used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
|||||||||
{$NET.IF.IFDESCR.MATCHES} | This macro is used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
|||||||||
{$NET.IF.IFDESCR.NOT_MATCHES} | This macro is used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
|||||||||
{$NET.IF.IFNAME.MATCHES} | This macro is used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
|||||||||
{$NET.IF.IFNAME.NOT_MATCHES} | This macro is used in Network interface discovery. Can be overridden on the host or linked template level. |
`Miniport | Virtual | Teredo | Kernel | Loopback | Bluetooth | HTTPS | 6to4 | QoS | Layer` |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Network interfaces discovery | Discovery of installed network interfaces. |
DEPENDENT | net.if.discovery Preprocessing: - JAVASCRIPT: - DISCARDUNCHANGEDHEARTBEAT: Filter: AND- {#IFNAME} MATCHESREGEX - {#IFNAME} NOTMATCHESREGEX - {#IFDESCR} MATCHESREGEX - {#IFDESCR} NOTMATCHESREGEX - {#IFALIAS} MATCHESREGEX - {#IFALIAS} NOTMATCHES_REGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
ZABBIX_ACTIVE | net.if.in["{#IFGUID}"] Preprocessing: - CHANGEPERSECOND - MULTIPLIER: |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
ZABBIX_ACTIVE | net.if.out["{#IFGUID}"] Preprocessing: - CHANGEPERSECOND - MULTIPLIER: |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | The number of incoming packets dropped on the network interface. |
ZABBIX_ACTIVE | net.if.in["{#IFGUID}",dropped] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | The number of outgoing packets dropped on the network interface. |
ZABBIX_ACTIVE | net.if.out["{#IFGUID}",dropped] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | The number of incoming packets with errors on the network interface. |
ZABBIX_ACTIVE | net.if.in["{#IFGUID}",errors] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | The number of outgoing packets with errors on the network interface. |
ZABBIX_ACTIVE | net.if.out["{#IFGUID}",errors] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
DEPENDENT | net.if.speed["{#IFGUID}"] Preprocessing: - JSONPATH: ⛔️ONFAIL: - JAVASCRIPT: - DISCARDUNCHANGED_HEARTBEAT: |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
DEPENDENT | net.if.type["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
DEPENDENT | net.if.status["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | Network interfaces WMI get | Raw data of win32_networkadapter. |
ZABBIX_ACTIVE | wmi.getall[root\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing: - DISCARD UNCHANGED_HEARTBEAT:1h |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The network interface utilization is close to its estimated maximum bandwidth. |
(avg(/Windows network by Zabbix agent active/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows network by Zabbix agent active/net.if.speed["{#IFGUID}"]) or avg(/Windows network by Zabbix agent active/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows network by Zabbix agent active/net.if.speed["{#IFGUID}"])) and last(/Windows network by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 Recovery expression: avg(/Windows network by Zabbix agent active/net.if.in["{#IFGUID}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows network by Zabbix agent active/net.if.speed["{#IFGUID}"]) and avg(/Windows network by Zabbix agent active/net.if.out["{#IFGUID}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows network by Zabbix agent active/net.if.speed["{#IFGUID}"]) |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
Interface {#IFNAME}({#IFALIAS}): High error rate | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
min(/Windows network by Zabbix agent active/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows network by Zabbix agent active/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} Recovery expression: max(/Windows network by Zabbix agent active/net.if.in["{#IFGUID}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Windows network by Zabbix agent active/net.if.out["{#IFGUID}",errors],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(/Windows network by Zabbix agent active/net.if.speed["{#IFGUID}"])<0 and last(/Windows network by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 and last(/Windows network by Zabbix agent active/net.if.status["{#IFGUID}"])=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 is different from Connected(2). WARNING: if closed manually - won't fire again on next poll, because of .diff. |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows network by Zabbix agent active/net.if.status["{#IFGUID}"])<>2 and (last(/Windows network by Zabbix agent active/net.if.status["{#IFGUID}"],#1)<>last(/Windows network by Zabbix agent active/net.if.status["{#IFGUID}"],#2)) Recovery expression: last(/Windows network by Zabbix agent active/net.if.status["{#IFGUID}"])=2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher. Special version of services template that is required for Windows OS.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{$SERVICE.NAME.MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
^.*$ |
|||||||||||||||||||||||||
{$SERVICE.NAME.NOT_MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:RemoteRegistry | MMCSS | gupdate | SysmonLog | clroptimizationv.+ | sppsvc | gpsvc | Pml Driver HPZ12 | Net Driver HPZ12 | MapsBroker | IntelAudioService | Intel(R) TPM Provisioning Service | dbupdate | DoSvc | CDPUserSvc_.+ | WpnUserService_.+ | OneSyncSvc_.+ | WbioSrvc | BITS | tiledatamodelsvc | GISvc | ShellHWDetection | TrustedInstaller | TabletInputService | CDPSvc | wuauserv)$` |
{$SERVICE.STARTUPNAME.MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:automatic | automatic delayed)$` | ||||||||||||||||||||||||
{$SERVICE.STARTUPNAME.NOT_MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:manual | disabled)$` |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Windows services discovery | Discovery of Windows services of different types as defined in template's macros. |
ZABBIX_ACTIVE | service.discovery Filter: AND- {#SERVICE.NAME} MATCHESREGEX - {#SERVICE.NAME} NOTMATCHESREGEX - {#SERVICE.STARTUPNAME} MATCHESREGEX - {#SERVICE.STARTUPNAME} NOTMATCHESREGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Services | State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | - |
ZABBIX_ACTIVE | service.info["{#SERVICE.NAME}",state] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
"{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running | The service has a state other than "Running" for the last three times. |
min(/Windows services by Zabbix agent active/service.info["{#SERVICE.NAME}",state],#3)<>0 |
AVERAGE |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$CPU.INTERRUPT.CRIT.MAX} | The critical threshold of the % Interrupt Time counter. |
50 |
{$CPU.PRIV.CRIT.MAX} | The threshold of the % Privileged Time counter. |
30 |
{$CPU.QUEUE.CRIT.MAX} | The threshold of the Processor Queue Length counter. |
3 |
{$CPU.UTIL.CRIT} | The critical threshold of the CPU utilization in %. |
90 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
CPU | CPU utilization | CPU utilization in %. |
ZABBIX_PASSIVE | system.cpu.util |
CPU | CPU interrupt time | The Processor Information\% Interrupt Time is the time the processor spends receiving and servicing hardware interrupts during sample intervals. This value is an indirect indicator of the activity of devices that generate interrupts, such as the system clock, the mouse, disk drivers, data communication lines, network interface cards and other peripheral devices. This is an easy way to identify a potential hardware failure. This should never be higher than 20%. |
ZABBIX_PASSIVE | perfcounteren["\Processor Information(_total)\% Interrupt Time"] |
CPU | Context switches per second | Context Switches/sec is the combined rate at which all processors on the computer are switched from one thread to another. Context switches occur when a running thread voluntarily relinquishes the processor, is preempted by a higher priority ready thread, or switches between user-mode and privileged (kernel) mode to use an Executive or subsystem service. It is the sum of Thread\Context Switches/sec for all threads running on all processors in the computer and is measured in numbers of switches. There are context switch counters on the System and Thread objects. This counter displays the difference between the values observed in the last two samples, divided by the duration of the sample interval. |
ZABBIX_PASSIVE | perfcounteren["\System\Context Switches/sec"] |
CPU | CPU privileged time | The Processor Information\% Privileged Time counter shows the percent of time that the processor is spent executing in Kernel (or Privileged) mode. Privileged mode includes services interrupts inside Interrupt Service Routines (ISRs), executing Deferred Procedure Calls (DPCs), Device Driver calls and other kernel-mode functions of the Windows® Operating System. |
ZABBIX_PASSIVE | perfcounteren["\Processor Information(_total)\% Privileged Time"] |
CPU | CPU DPC time | Processor DPC time is the time that a single processor spent receiving and servicing deferred procedure calls (DPCs). DPCs are interrupts that run at a lower priority than standard interrupts. % DPC Time is a component of % Privileged Time because DPCs are executed in privileged mode. If a high % DPC Time is sustained, there may be a processor bottleneck or an application or hardware related issue that can significantly diminish overall system performance. |
ZABBIX_PASSIVE | perfcounteren["\Processor Information(_total)\% DPC Time"] |
CPU | CPU user time | The Processor Information\% User Time counter shows the percent of time that the processor(s) is spent executing in User mode. |
ZABBIX_PASSIVE | perfcounteren["\Processor Information(_total)\% User Time"] |
CPU | Number of cores | The number of logical processors available on the computer. |
ZABBIX_PASSIVE | wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"] |
CPU | CPU queue length | The Processor Queue Length shows the number of threads that are observed as delayed in the processor Ready Queue and are waiting to be executed. |
ZABBIX_PASSIVE | perfcounteren["\System\Processor Queue Length"] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows CPU by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
WARNING | |
CPU interrupt time is too high | "The CPU Interrupt Time in the last 5 minutes exceeds {$CPU.INTERRUPT.CRIT.MAX}%." The Processor Information\% Interrupt Time is the time the processor spends receiving and servicing hardware interrupts during sample intervals. This value is an indirect indicator of the activity of devices that generate interrupts, such as the system clock, the mouse, disk drivers, data communication lines, network interface cards and other peripheral devices. This is an easy way to identify a potential hardware failure. This should never be higher than 20%. |
min(/Windows CPU by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX} |
WARNING | Depends on: - High CPU utilization |
CPU privileged time is too high | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
min(/Windows CPU by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX} |
WARNING | Depends on: - CPU interrupt time is too high - High CPU utilization |
CPU queue length is too high | The CPU Queue Length in the last 5 minutes exceeds {$CPU.QUEUE.CRIT.MAX}. According to actual observations, PQL should not exceed the number of cores * 2. To fine-tune the conditions, use the macro {$CPU.QUEUE.CRIT.MAX }. |
min(/Windows CPU by Zabbix agent/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows CPU by Zabbix agent/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
WARNING | Depends on: - High CPU utilization |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
{$MEM.PAGETABLECRIT.MIN} | The warning threshold of the Free System Page Table Entries counter. |
5000 |
{$MEMORY.UTIL.MAX} | The warning threshold of the Memory util item. |
90 |
{$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
20 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Memory | Used memory | Used memory in Bytes. |
ZABBIX_PASSIVE | vm.memory.size[used] |
Memory | Total memory | Total memory in Bytes. |
ZABBIX_PASSIVE | vm.memory.size[total] |
Memory | Memory utilization | Memory utilization in %. |
CALCULATED | vm.memory.util Expression: last(//vm.memory.size[used]) / last(//vm.memory.size[total]) * 100 |
Memory | Cache bytes | Cache Bytes is the sum of the Memory\System Cache Resident Bytes, Memory\System Driver Resident Bytes, Memory\System Code Resident Bytes, and Memory\Pool Paged Resident Bytes counters. This counter displays the last observed value only; it is not an average. |
ZABBIX_PASSIVE | perfcounteren["\Memory\Cache Bytes"] |
Memory | Free swap space | The free space of swap volume/file in bytes. |
CALCULATED | system.swap.free Expression: last(//system.swap.size[,total]) - last(//system.swap.size[,total]) / 100 * last(//perf_counter_en["\Paging file(_Total)\% Usage"]) |
Memory | Free swap space in % | The free space of swap volume/file in percent. |
DEPENDENT | system.swap.pfree Preprocessing: - JAVASCRIPT: |
Memory | Used swap space in % | The used space of swap volume/file in percent. |
ZABBIX_PASSIVE | perfcounteren["\Paging file(_Total)\% Usage"] |
Memory | Total swap space | The total space of swap volume/file in bytes. |
ZABBIX_PASSIVE | system.swap.size[,total] |
Memory | Free system page table entries | This indicates the number of page table entries not currently in use by the system. If the number is less than 5,000, there may well be a memory leak or you running out of memory. |
ZABBIX_PASSIVE | perfcounteren["\Memory\Free System Page Table Entries"] |
Memory | Memory page faults per second | Page Faults/sec is the average number of pages faulted per second. It is measured in number of pages faulted per second because only one page is faulted in each fault operation, hence this is also equal to the number of page fault operations. This counter includes both hard faults (those that require disk access) and soft faults (where the faulted page is found elsewhere in physical memory.) Most processors can handle large numbers of soft faults without significant consequence. However, hard faults, which require disk access, can cause significant delays. |
ZABBIX_PASSIVE | perfcounteren["\Memory\Page Faults/sec"] |
Memory | Memory pages per second | This measures the rate at which pages are read from or written to disk to resolve hard page faults. If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak. |
ZABBIX_PASSIVE | perfcounteren["\Memory\Pages/sec"] |
Memory | Memory pool non-paged | This measures the size, in bytes, of the non-paged pool. This is an area of system memory for objects that cannot be written to disk but instead must remain in physical memory as long as they are allocated. There is a possible memory leak if the value is greater than 175MB (or 100MB with the /3GB switch). A typical Event ID 2019 is recorded in the system event log. |
ZABBIX_PASSIVE | perfcounteren["\Memory\Pool Nonpaged Bytes"] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
High memory utilization | The system is running out of free memory. |
min(/Windows memory by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | |
High swap space usage | This trigger is ignored, if there is no swap configured |
max(/Windows memory by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows memory by Zabbix agent/system.swap.size[,total])>0 |
WARNING | Depends on: - High memory utilization |
Number of free system page table entries is too low | The Memory Free System Page Table Entries is less than {$MEM.PAGETABLECRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak. |
max(/Windows memory by Zabbix agent/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN} |
WARNING | Depends on: - High memory utilization |
The Memory Pages/sec is too high | The Memory Pages/sec in the last 5 minutes exceeds {$MEM.PAGE_SEC.CRIT.MAX}. If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak. |
min(/Windows memory by Zabbix agent/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
WARNING | Depends on: - High memory utilization |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 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.FSDRIVETYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
fixed |
||||
{$VFS.FS.FSDRIVETYPE.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 | /sys | /run | /proc | .+/shm$)` |
{$VFS.FS.FSTYPE.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.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization in percent. |
90 |
||||
{$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization in percent. |
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} MATCHESREGEX - {#FSTYPE} NOTMATCHESREGEX - {#FSNAME} MATCHESREGEX - {#FSNAME} NOTMATCHESREGEX - {#FSDRIVETYPE} MATCHESREGEX - {#FSDRIVETYPE} NOTMATCHES_REGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Filesystems | {#FSLABEL}({#FSNAME}): Used space | Used storage in Bytes |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},used] |
Filesystems | {#FSLABEL}({#FSNAME}): Total space | Total space in Bytes |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},total] |
Filesystems | {#FSLABEL}({#FSNAME}): Space utilization | Space utilization in % for {#FSNAME} |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},pused] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#FSLABEL}({#FSNAME}): Disk space is critically low | 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. |
last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
AVERAGE | Manual close: YES |
{#FSLABEL}({#FSNAME}): Disk space is low | 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. |
last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
WARNING | Manual close: YES Depends on: - {#FSLABEL}({#FSNAME}): Disk space is critically low |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 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 physical disks discovery. Can be overridden on the host or linked template level. |
.* |
{$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used in physical disks discovery. Can be overridden on the host or linked template level. |
_Total |
{$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in s) before the trigger would fire. |
0.02 |
{$VFS.DEV.UTIL.MAX.WARN} | The warning threshold of disk time utilization in percent. |
95 |
{$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in s) before the trigger would fire. |
0.02 |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Physical disks discovery | Discovery of installed physical disks. |
ZABBIX_PASSIVE | perfinstanceen.discovery[PhysicalDisk] Preprocessing: - STRREPLACE: Filter: AND- {#DEVNAME} MATCHESREGEX - {#DEVNAME} NOTMATCHESREGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Storage | {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
ZABBIX_PASSIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
Storage | {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
ZABBIX_PASSIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60] |
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. |
ZABBIX_PASSIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60] |
Storage | {#DEVNAME}: Disk utilization by idle time | This item is the percentage of elapsed time that the selected disk drive was busy servicing read or writes requests based on idle time. |
ZABBIX_PASSIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\% Idle Time",60] Preprocessing: - JAVASCRIPT: |
Storage | {#DEVNAME}: Disk read request avg waiting time | The average time for read requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them. |
ZABBIX_PASSIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60] |
Storage | {#DEVNAME}: Disk write request avg waiting time | The average time for write requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them. |
ZABBIX_PASSIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60] |
Storage | {#DEVNAME}: Average disk read queue length | Average disk read queue, the number of requests outstanding on the disk at the time the performance data is collected. |
ZABBIX_PASSIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60] |
Storage | {#DEVNAME}: Average disk write queue length | Average disk write queue, the number of requests outstanding on the disk at the time the performance data is collected. |
ZABBIX_PASSIVE | perfcounteren["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#DEVNAME}: Disk is overloaded | The disk appears to be under heavy load |
min(/Windows physical disks by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\% Idle Time",60],15m)>{$VFS.DEV.UTIL.MAX.WARN} |
WARNING | Manual close: YES Depends on: - {#DEVNAME}: Disk read request responses are too high - {#DEVNAME}: Disk write request responses are too high |
{#DEVNAME}: Disk read request responses are too high | This trigger might indicate disk {#DEVNAME} saturation. |
min(/Windows physical disks by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
{#DEVNAME}: Disk write request responses are too high | This trigger might indicate disk {#DEVNAME} saturation. |
min(/Windows physical disks by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60],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: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$SYSTEM.FUZZYTIME.MAX} | The threshold for difference of system time in seconds. |
60 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
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: - DISCARDUNCHANGEDHEARTBEAT: |
General | System description | System description of the host. |
ZABBIX_PASSIVE | system.uname Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
General | Number of processes | The number of processes. |
ZABBIX_PASSIVE | proc.num[] |
General | Number of threads | The number of threads used by all running processes. |
ZABBIX_PASSIVE | perfcounteren["\System\Threads"] |
Inventory | Operating system architecture | Operating system architecture of the host. |
ZABBIX_PASSIVE | system.sw.arch Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Status | 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 | The host system time is different from the Zabbix server time. |
fuzzytime(/Windows generic by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0 |
WARNING | Manual close: YES |
System name has changed | System name has changed. Ack to close. |
last(/Windows generic by Zabbix agent/system.hostname,#1)<>last(/Windows generic by Zabbix agent/system.hostname,#2) and length(last(/Windows generic by Zabbix agent/system.hostname))>0 |
INFO | Manual close: YES |
Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows 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: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
{$IF.ERRORS.WARN} | - |
2 |
|||||||||
{$IF.UTIL.MAX} | - |
90 |
|||||||||
{$IFCONTROL} | - |
1 |
|||||||||
{$NET.IF.IFALIAS.MATCHES} | This macro is used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
|||||||||
{$NET.IF.IFALIAS.NOT_MATCHES} | This macro is used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
|||||||||
{$NET.IF.IFDESCR.MATCHES} | This macro is used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
|||||||||
{$NET.IF.IFDESCR.NOT_MATCHES} | This macro is used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
|||||||||
{$NET.IF.IFNAME.MATCHES} | This macro is used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
|||||||||
{$NET.IF.IFNAME.NOT_MATCHES} | This macro is used in Network interface discovery. Can be overridden on the host or linked template level. |
`Miniport | Virtual | Teredo | Kernel | Loopback | Bluetooth | HTTPS | 6to4 | QoS | Layer` |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Network interfaces discovery | Discovery of installed network interfaces. |
DEPENDENT | net.if.discovery Preprocessing: - JAVASCRIPT: - DISCARDUNCHANGEDHEARTBEAT: Filter: AND- {#IFNAME} MATCHESREGEX - {#IFNAME} NOTMATCHESREGEX - {#IFDESCR} MATCHESREGEX - {#IFDESCR} NOTMATCHESREGEX - {#IFALIAS} MATCHESREGEX - {#IFALIAS} NOTMATCHES_REGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
ZABBIX_PASSIVE | net.if.in["{#IFGUID}"] Preprocessing: - CHANGEPERSECOND - MULTIPLIER: |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
ZABBIX_PASSIVE | net.if.out["{#IFGUID}"] Preprocessing: - CHANGEPERSECOND - MULTIPLIER: |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | The number of incoming packets dropped on the network interface. |
ZABBIX_PASSIVE | net.if.in["{#IFGUID}",dropped] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | The number of outgoing packets dropped on the network interface. |
ZABBIX_PASSIVE | net.if.out["{#IFGUID}",dropped] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | The number of incoming packets with errors on the network interface. |
ZABBIX_PASSIVE | net.if.in["{#IFGUID}",errors] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | The number of outgoing packets with errors on the network interface. |
ZABBIX_PASSIVE | net.if.out["{#IFGUID}",errors] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
DEPENDENT | net.if.speed["{#IFGUID}"] Preprocessing: - JSONPATH: ⛔️ONFAIL: - JAVASCRIPT: - DISCARDUNCHANGED_HEARTBEAT: |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
DEPENDENT | net.if.type["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
DEPENDENT | net.if.status["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | Network interfaces WMI get | Raw data of win32_networkadapter. |
ZABBIX_PASSIVE | wmi.getall[root\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing: - DISCARD UNCHANGED_HEARTBEAT:1h |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The network interface utilization is close to its estimated maximum bandwidth. |
(avg(/Windows network by Zabbix agent/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows network by Zabbix agent/net.if.speed["{#IFGUID}"]) or avg(/Windows network by Zabbix agent/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows network by Zabbix agent/net.if.speed["{#IFGUID}"])) and last(/Windows network by Zabbix agent/net.if.speed["{#IFGUID}"])>0 Recovery expression: avg(/Windows network by Zabbix agent/net.if.in["{#IFGUID}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows network by Zabbix agent/net.if.speed["{#IFGUID}"]) and avg(/Windows network by Zabbix agent/net.if.out["{#IFGUID}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows network by Zabbix agent/net.if.speed["{#IFGUID}"]) |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
Interface {#IFNAME}({#IFALIAS}): High error rate | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
min(/Windows network by Zabbix agent/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows network by Zabbix agent/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} Recovery expression: max(/Windows network by Zabbix agent/net.if.in["{#IFGUID}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Windows network by Zabbix agent/net.if.out["{#IFGUID}",errors],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(/Windows network by Zabbix agent/net.if.speed["{#IFGUID}"])<0 and last(/Windows network by Zabbix agent/net.if.speed["{#IFGUID}"])>0 and last(/Windows network by Zabbix agent/net.if.status["{#IFGUID}"])=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 is different from Connected(2). WARNING: if closed manually - won't fire again on next poll, because of .diff. |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows network by Zabbix agent/net.if.status["{#IFGUID}"])<>2 and (last(/Windows network by Zabbix agent/net.if.status["{#IFGUID}"],#1)<>last(/Windows network by Zabbix agent/net.if.status["{#IFGUID}"],#2)) Recovery expression: last(/Windows network by Zabbix agent/net.if.status["{#IFGUID}"])=2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher. Special version of services template that is required for Windows OS.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{$SERVICE.NAME.MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
^.*$ |
|||||||||||||||||||||||||
{$SERVICE.NAME.NOT_MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:RemoteRegistry | MMCSS | gupdate | SysmonLog | clroptimizationv.+ | sppsvc | gpsvc | Pml Driver HPZ12 | Net Driver HPZ12 | MapsBroker | IntelAudioService | Intel(R) TPM Provisioning Service | dbupdate | DoSvc | CDPUserSvc_.+ | WpnUserService_.+ | OneSyncSvc_.+ | WbioSrvc | BITS | tiledatamodelsvc | GISvc | ShellHWDetection | TrustedInstaller | TabletInputService | CDPSvc | wuauserv)$` |
{$SERVICE.STARTUPNAME.MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:automatic | automatic delayed)$` | ||||||||||||||||||||||||
{$SERVICE.STARTUPNAME.NOT_MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:manual | disabled)$` |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Windows services discovery | Discovery of Windows services of different types as defined in template's macros. |
ZABBIX_PASSIVE | service.discovery Filter: AND- {#SERVICE.NAME} MATCHESREGEX - {#SERVICE.NAME} NOTMATCHESREGEX - {#SERVICE.STARTUPNAME} MATCHESREGEX - {#SERVICE.STARTUPNAME} NOTMATCHESREGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Services | State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | - |
ZABBIX_PASSIVE | service.info["{#SERVICE.NAME}",state] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
"{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running | The service has a state other than "Running" for the last three times. |
min(/Windows services by Zabbix agent/service.info["{#SERVICE.NAME}",state],#3)<>0 |
AVERAGE |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher
The template for monitoring S.M.A.R.T. attributes of physical disk that works without any external scripts.
It collects metrics by Zabbix agent 2 version 5.0 and later with Smartmontools version 7.1 and later.
Disk discovery LLD rule finds all HDD, SSD, NVMe disks with S.M.A.R.T. enabled. Attribute discovery LLD rule have pre-defined Vendor Specific Attributes
for each disk, and will be discovered if attribute is present.
This template was tested on:
See Zabbix template operation for basic instructions.
Install the Zabbix agent 2 and Smartmontools 7.1. Grant Zabbix agent 2 super/admin user privileges for smartctl utility.
sudo dnf install smartmontools sudo visudo
zabbix ALL=(ALL) NOPASSWD:/usr/sbin/smartctl
Plugin parameters list
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$SMART.DISK.NAME.MATCHES} | This macro is used in the filter of attribute and disk discoveries. It can be overridden on the host or linked on the template level. |
^.*$ |
{$SMART.DISK.NAME.NOT_MATCHES} | This macro is used in the filter of attribute and disk discoveries. It can be overridden on the host or linked on the template level. |
CHANGE_IF_NEEDED |
{$SMART.TEMPERATURE.MAX.CRIT} | This macro is used for trigger expression. It can be overridden on the host or linked on the template level. |
65 |
{$SMART.TEMPERATURE.MAX.WARN} | This macro is used for trigger expression. It can be overridden on the host or linked on the template level. |
50 |
There are no template links in this template.
Name | Description | Type | Key and additional info | ||
---|---|---|---|---|---|
Disk discovery | Discovery SMART disks. |
ZABBIX_ACTIVE | smart.disk.discovery Filter: AND- {#NAME} MATCHESREGEX - {#NAME} NOTMATCHESREGEX Overrides: Self-test Not NVMe |
Percentage | Critical- NO_DISCOVER</p><p>Raw_Read_Error_Rate<br> - {#ATTRIBUTES} MATCHES_REGEX RawReadErrorRate<br> - ITEM_PROTOTYPE REGEXP RawReadErrorRate- DISCOVER</p><p>Spin_Up_Time<br> - {#ATTRIBUTES} MATCHES_REGEX SpinUpTime<br> - ITEM_PROTOTYPE REGEXP SpinUpTime- DISCOVER</p><p>Start_Stop_Count<br> - {#ATTRIBUTES} MATCHES_REGEX StartStopCount<br> - ITEM_PROTOTYPE REGEXP StartStopCount- DISCOVER</p><p>Power_Cycle_Count<br> - {#ATTRIBUTES} MATCHES_REGEX PowerCycleCount<br> - ITEM_PROTOTYPE REGEXP PowerCycleCount- DISCOVER</p><p>Reported_Uncorrect<br> - {#ATTRIBUTES} MATCHES_REGEX ReportedUncorrect<br> - ITEM_PROTOTYPE REGEXP ReportedUncorrect- DISCOVER</p><p>Seek_Error_Rate<br> - {#ATTRIBUTES} MATCHES_REGEX SeekErrorRate<br> - ITEM_PROTOTYPE REGEXP SeekErrorRate- DISCOVER</p><p>Bad_Block_Rate<br> - {#ATTRIBUTES} MATCHES_REGEX BadBlockRate<br> - ITEM_PROTOTYPE REGEXP BadBlockRate- DISCOVER</p><p>Program_Fail_Count_Chip<br> - {#ATTRIBUTES} MATCHES_REGEX ProgramFailCountChip<br> - ITEM_PROTOTYPE REGEXP ProgramFailCountChip- DISCOVER</p><p>Reallocated_Sector_Ct<br> - {#ATTRIBUTES} MATCHES_REGEX ReallocatedSectorCt<br> - ITEM_PROTOTYPE REGEXP ReallocatedSectorCt` - DISCOVER |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Zabbix raw items | SMART [{#NAME}]: Smartctl error | This metric will contain smartctl errors. |
DEPENDENT | smart.disk.error[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Get disk attributes | - |
ZABBIX_ACTIVE | smart.disk.get[{#PATH},"{#RAIDTYPE}"] |
Zabbix raw items | SMART [{#NAME}]: Device model | - |
DEPENDENT | smart.disk.model[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Serial number | - |
DEPENDENT | smart.disk.sn[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Self-test passed | The disk is passed the SMART self-test or not. |
DEPENDENT | smart.disk.test[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Temperature | Current drive temperature. |
DEPENDENT | smart.disk.temperature[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Power on hours | Count of hours in power-on state. The raw value of this attribute shows total count of hours (or minutes, or seconds, depending on manufacturer) in power-on state. "By default, the total expected lifetime of a hard disk in perfect condition is defined as 5 years (running every day and night on all days). This is equal to 1825 days in 24/7 mode or 43800 hours." On some pre-2005 drives, this raw value may advance erratically and/or "wrap around" (reset to zero periodically). https://en.wikipedia.org/wiki/S.M.A.R.T.#KnownATAS.M.A.R.T._attributes |
DEPENDENT | smart.disk.hours[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Percentage used | Contains a vendor specific estimate of the percentage of NVM subsystem life used based on the actual usage and the manufacturer's prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the NVM subsystem has been consumed, but may not indicate an NVM subsystem failure. The value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. This value shall be updated once per power-on hour (when the controller is not in a sleep state). |
DEPENDENT | smart.disk.percentageused[{#NAME}] Preprocessing: - JSONPATH: - DISCARD UNCHANGED_HEARTBEAT:6h |
Zabbix raw items | SMART [{#NAME}]: Critical warning | This field indicates critical warnings for the state of the controller. |
DEPENDENT | smart.disk.criticalwarning[{#NAME}] Preprocessing: - JSONPATH: - DISCARD UNCHANGED_HEARTBEAT:6h |
Zabbix raw items | SMART [{#NAME}]: Media errors | Contains the number of occurrences where the controller detected an unrecovered data integrity error. Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this field. |
DEPENDENT | smart.disk.mediaerrors[{#NAME}] Preprocessing: - JSONPATH: - DISCARD UNCHANGED_HEARTBEAT:6h |
Zabbix raw items | SMART [{#NAME}]: Exit status | The exit statuses of smartctl are defined by a bitmask but in decimal value. The eight different bits in the exit status have the following meanings for ATA disks; some of these values may also be returned for SCSI disks. Bit 0: Command line did not parse. Bit 1: Device open failed, device did not return an IDENTIFY DEVICE structure, or device is in a low-power mode (see '-n' option above). Bit 2: Some SMART or other ATA command to the disk failed, or there was a checksum error in a SMART data structure (see '-b' option above). Bit 3: SMART status check returned "DISK FAILING". Bit 4: We found prefail Attributes <= threshold. Bit 5: SMART status check returned "DISK OK" but we found that some (usage or prefail) Attributes have been <= threshold at some time in the past. Bit 6: The device error log contains records of errors. Bit 7: The device self-test log contains records of errors. [ATA only] Failed self-tests outdated by a newer successful extended self-test are ignored. |
DEPENDENT | smart.disk.es[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: RawReadError_Rate | Stores data related to the rate of hardware read errors that occurred when reading data from a disk surface. The raw value has different structure for different vendors and is often not meaningful as a decimal number. For some drives, this number may increase during normal operation without necessarily signifying errors. |
DEPENDENT | smart.disk.attribute.rawreaderrorrate[{#NAME}] Preprocessing: - JSONPATH: - DISCARD UNCHANGED_HEARTBEAT:6h |
Zabbix raw items | SMART [{#NAME}]: SpinUpTime | Average time of spindle spin up (from zero RPM to fully operational [milliseconds]). |
DEPENDENT | smart.disk.attribute.spinuptime[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: StartStopCount | A tally of spindle start/stop cycles. The spindle turns on, and hence the count is increased, both when the hard disk is turned on after having before been turned entirely off (disconnected from power source) and when the hard disk returns from having previously been put to sleep mode. |
DEPENDENT | smart.disk.attribute.startstopcount[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: PowerCycleCount | This attribute indicates the count of full hard disk power on/off cycles. |
DEPENDENT | smart.disk.attribute.powercyclecount[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Reported_Uncorrect | The count of errors that could not be recovered using hardware ECC. |
DEPENDENT | smart.disk.attribute.reporteduncorrect[{#NAME}] Preprocessing: - JSONPATH: - DISCARD UNCHANGED_HEARTBEAT:6h |
Zabbix raw items | SMART [{#NAME}]: SeekErrorRate | Rate of seek errors of the magnetic heads. If there is a partial failure in the mechanical positioning system, then seek errors will arise. Such a failure may be due to numerous factors, such as damage to a servo, or thermal widening of the hard disk. The raw value has different structure for different vendors and is often not meaningful as a decimal number. For some drives, this number may increase during normal operation without necessarily signifying errors. |
DEPENDENT | smart.disk.attribute.seekerrorrate[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: BadBlockRate | Percentage of used reserve blocks divided by total reserve blocks. |
DEPENDENT | smart.disk.attribute.badblockrate[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: ProgramFailCount_Chip | The total number of flash program operation failures since the drive was deployed. |
DEPENDENT | smart.disk.attribute.programfailcountchip[{#NAME}] Preprocessing: - JSONPATH: - DISCARD UNCHANGED_HEARTBEAT:6h |
Zabbix raw items | SMART [{#NAME}]: ReallocatedSectorCt | Disk discovered attribute. |
DEPENDENT | smart.disk.attribute.reallocatedsectorct[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
SMART [{#NAME}]: Disk has been replaced | Device serial number has changed. Ack to close. |
last(/SMART by Zabbix agent 2 active/smart.disk.sn[{#NAME}],#1)<>last(/SMART by Zabbix agent 2 active/smart.disk.sn[{#NAME}],#2) and length(last(/SMART by Zabbix agent 2 active/smart.disk.sn[{#NAME}]))>0 |
INFO | Manual close: YES |
SMART [{#NAME}]: Disk self-test is not passed | - |
last(/SMART by Zabbix agent 2 active/smart.disk.test[{#NAME}])="false" |
HIGH | |
SMART [{#NAME}]: Average disk temperature is too high | - |
avg(/SMART by Zabbix agent 2 active/smart.disk.temperature[{#NAME}],5m)>{$SMART.TEMPERATURE.MAX.WARN} |
WARNING | Depends on: - SMART [{#NAME}]: Average disk temperature is critical |
SMART [{#NAME}]: Average disk temperature is critical | - |
avg(/SMART by Zabbix agent 2 active/smart.disk.temperature[{#NAME}],5m)>{$SMART.TEMPERATURE.MAX.CRIT} |
AVERAGE | |
SMART [{#NAME}]: NVMe disk percentage using is over 90% of estimated endurance | - |
last(/SMART by Zabbix agent 2 active/smart.disk.percentage_used[{#NAME}])>90 |
AVERAGE | |
SMART [{#NAME}]: Command line did not parse | Command line did not parse. |
( count(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),1) = 1 ) or ( bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),1) = 1 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),1) > bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2),1) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Device open failed | Device open failed, device did not return an IDENTIFY DEVICE structure, or device is in a low-power mode. |
( count(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),2) = 2 ) or ( bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),2) = 2 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),2) > bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2),2) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Some command to the disk failed | Some SMART or other ATA command to the disk failed, or there was a checksum error in a SMART data structure. |
( count(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),4) = 4 ) or ( bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),4) = 4 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),4) > bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2),4) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Check returned "DISK FAILING" | SMART status check returned "DISK FAILING". |
( count(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),8) = 8 ) or ( bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),8) = 8 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),8) > bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2),8) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Some prefail Attributes <= threshold | We found prefail Attributes <= threshold. |
( count(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),16) = 16 ) or ( bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),16) = 16 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),16) > bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2),16) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Some Attributes have been <= threshold | SMART status check returned "DISK OK" but we found that some (usage or prefail) Attributes have been <= threshold at some time in the past. |
( count(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),32) = 32 ) or ( bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),32) = 32 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),32) > bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2),32) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Error log contains records | The device error log contains records of errors. |
( count(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),64) = 64 ) or ( bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),64) = 64 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),64) > bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2),64) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Self-test log contains records | The device self-test log contains records of errors. [ATA only] Failed self-tests outdated by a newer successful extended self-test are ignored. |
( count(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),128) = 128 ) or ( bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),128) = 128 and bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}]),128) > bitand(last(/SMART by Zabbix agent 2 active/smart.disk.es[{#NAME}],#2),128) ) |
HIGH | 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 with it at ZABBIX forums.
https://www.smartmontools.org/
For Zabbix version: 6.2 and higher
The template for monitoring S.M.A.R.T. attributes of physical disk that works without any external scripts.
It collects metrics by Zabbix agent 2 version 5.0 and later with Smartmontools version 7.1 and later.
Disk discovery LLD rule finds all HDD, SSD, NVMe disks with S.M.A.R.T. enabled. Attribute discovery LLD rule have pre-defined Vendor Specific Attributes
for each disk, and will be discovered if attribute is present.
This template was tested on:
See Zabbix template operation for basic instructions.
Install the Zabbix agent 2 and Smartmontools 7.1. Grant Zabbix agent 2 super/admin user privileges for smartctl utility.
sudo dnf install smartmontools sudo visudo
zabbix ALL=(ALL) NOPASSWD:/usr/sbin/smartctl
Plugin parameters list
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$SMART.DISK.NAME.MATCHES} | This macro is used in the filter of attribute and disk discoveries. It can be overridden on the host or linked on the template level. |
^.*$ |
{$SMART.DISK.NAME.NOT_MATCHES} | This macro is used in the filter of attribute and disk discoveries. It can be overridden on the host or linked on the template level. |
CHANGE_IF_NEEDED |
{$SMART.TEMPERATURE.MAX.CRIT} | This macro is used for trigger expression. It can be overridden on the host or linked on the template level. |
65 |
{$SMART.TEMPERATURE.MAX.WARN} | This macro is used for trigger expression. It can be overridden on the host or linked on the template level. |
50 |
There are no template links in this template.
Name | Description | Type | Key and additional info | ||
---|---|---|---|---|---|
Disk discovery | Discovery SMART disks. |
ZABBIX_PASSIVE | smart.disk.discovery Filter: AND- {#NAME} MATCHESREGEX - {#NAME} NOTMATCHESREGEX Overrides: Self-test Not NVMe |
Percentage | Critical- NO_DISCOVER</p><p>Raw_Read_Error_Rate<br> - {#ATTRIBUTES} MATCHES_REGEX RawReadErrorRate<br> - ITEM_PROTOTYPE REGEXP RawReadErrorRate- DISCOVER</p><p>Spin_Up_Time<br> - {#ATTRIBUTES} MATCHES_REGEX SpinUpTime<br> - ITEM_PROTOTYPE REGEXP SpinUpTime- DISCOVER</p><p>Start_Stop_Count<br> - {#ATTRIBUTES} MATCHES_REGEX StartStopCount<br> - ITEM_PROTOTYPE REGEXP StartStopCount- DISCOVER</p><p>Power_Cycle_Count<br> - {#ATTRIBUTES} MATCHES_REGEX PowerCycleCount<br> - ITEM_PROTOTYPE REGEXP PowerCycleCount- DISCOVER</p><p>Reported_Uncorrect<br> - {#ATTRIBUTES} MATCHES_REGEX ReportedUncorrect<br> - ITEM_PROTOTYPE REGEXP ReportedUncorrect- DISCOVER</p><p>Seek_Error_Rate<br> - {#ATTRIBUTES} MATCHES_REGEX SeekErrorRate<br> - ITEM_PROTOTYPE REGEXP SeekErrorRate- DISCOVER</p><p>Bad_Block_Rate<br> - {#ATTRIBUTES} MATCHES_REGEX BadBlockRate<br> - ITEM_PROTOTYPE REGEXP BadBlockRate- DISCOVER</p><p>Program_Fail_Count_Chip<br> - {#ATTRIBUTES} MATCHES_REGEX ProgramFailCountChip<br> - ITEM_PROTOTYPE REGEXP ProgramFailCountChip- DISCOVER</p><p>Reallocated_Sector_Ct<br> - {#ATTRIBUTES} MATCHES_REGEX ReallocatedSectorCt<br> - ITEM_PROTOTYPE REGEXP ReallocatedSectorCt` - DISCOVER |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Zabbix raw items | SMART [{#NAME}]: Smartctl error | This metric will contain smartctl errors. |
DEPENDENT | smart.disk.error[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Get disk attributes | - |
ZABBIX_PASSIVE | smart.disk.get[{#PATH},"{#RAIDTYPE}"] |
Zabbix raw items | SMART [{#NAME}]: Device model | - |
DEPENDENT | smart.disk.model[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Serial number | - |
DEPENDENT | smart.disk.sn[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Self-test passed | The disk is passed the SMART self-test or not. |
DEPENDENT | smart.disk.test[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Temperature | Current drive temperature. |
DEPENDENT | smart.disk.temperature[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Power on hours | Count of hours in power-on state. The raw value of this attribute shows total count of hours (or minutes, or seconds, depending on manufacturer) in power-on state. "By default, the total expected lifetime of a hard disk in perfect condition is defined as 5 years (running every day and night on all days). This is equal to 1825 days in 24/7 mode or 43800 hours." On some pre-2005 drives, this raw value may advance erratically and/or "wrap around" (reset to zero periodically). https://en.wikipedia.org/wiki/S.M.A.R.T.#KnownATAS.M.A.R.T._attributes |
DEPENDENT | smart.disk.hours[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Percentage used | Contains a vendor specific estimate of the percentage of NVM subsystem life used based on the actual usage and the manufacturer's prediction of NVM life. A value of 100 indicates that the estimated endurance of the NVM in the NVM subsystem has been consumed, but may not indicate an NVM subsystem failure. The value is allowed to exceed 100. Percentages greater than 254 shall be represented as 255. This value shall be updated once per power-on hour (when the controller is not in a sleep state). |
DEPENDENT | smart.disk.percentageused[{#NAME}] Preprocessing: - JSONPATH: - DISCARD UNCHANGED_HEARTBEAT:6h |
Zabbix raw items | SMART [{#NAME}]: Critical warning | This field indicates critical warnings for the state of the controller. |
DEPENDENT | smart.disk.criticalwarning[{#NAME}] Preprocessing: - JSONPATH: - DISCARD UNCHANGED_HEARTBEAT:6h |
Zabbix raw items | SMART [{#NAME}]: Media errors | Contains the number of occurrences where the controller detected an unrecovered data integrity error. Errors such as uncorrectable ECC, CRC checksum failure, or LBA tag mismatch are included in this field. |
DEPENDENT | smart.disk.mediaerrors[{#NAME}] Preprocessing: - JSONPATH: - DISCARD UNCHANGED_HEARTBEAT:6h |
Zabbix raw items | SMART [{#NAME}]: Exit status | The exit statuses of smartctl are defined by a bitmask but in decimal value. The eight different bits in the exit status have the following meanings for ATA disks; some of these values may also be returned for SCSI disks. Bit 0: Command line did not parse. Bit 1: Device open failed, device did not return an IDENTIFY DEVICE structure, or device is in a low-power mode (see '-n' option above). Bit 2: Some SMART or other ATA command to the disk failed, or there was a checksum error in a SMART data structure (see '-b' option above). Bit 3: SMART status check returned "DISK FAILING". Bit 4: We found prefail Attributes <= threshold. Bit 5: SMART status check returned "DISK OK" but we found that some (usage or prefail) Attributes have been <= threshold at some time in the past. Bit 6: The device error log contains records of errors. Bit 7: The device self-test log contains records of errors. [ATA only] Failed self-tests outdated by a newer successful extended self-test are ignored. |
DEPENDENT | smart.disk.es[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: RawReadError_Rate | Stores data related to the rate of hardware read errors that occurred when reading data from a disk surface. The raw value has different structure for different vendors and is often not meaningful as a decimal number. For some drives, this number may increase during normal operation without necessarily signifying errors. |
DEPENDENT | smart.disk.attribute.rawreaderrorrate[{#NAME}] Preprocessing: - JSONPATH: - DISCARD UNCHANGED_HEARTBEAT:6h |
Zabbix raw items | SMART [{#NAME}]: SpinUpTime | Average time of spindle spin up (from zero RPM to fully operational [milliseconds]). |
DEPENDENT | smart.disk.attribute.spinuptime[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: StartStopCount | A tally of spindle start/stop cycles. The spindle turns on, and hence the count is increased, both when the hard disk is turned on after having before been turned entirely off (disconnected from power source) and when the hard disk returns from having previously been put to sleep mode. |
DEPENDENT | smart.disk.attribute.startstopcount[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: PowerCycleCount | This attribute indicates the count of full hard disk power on/off cycles. |
DEPENDENT | smart.disk.attribute.powercyclecount[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: Reported_Uncorrect | The count of errors that could not be recovered using hardware ECC. |
DEPENDENT | smart.disk.attribute.reporteduncorrect[{#NAME}] Preprocessing: - JSONPATH: - DISCARD UNCHANGED_HEARTBEAT:6h |
Zabbix raw items | SMART [{#NAME}]: SeekErrorRate | Rate of seek errors of the magnetic heads. If there is a partial failure in the mechanical positioning system, then seek errors will arise. Such a failure may be due to numerous factors, such as damage to a servo, or thermal widening of the hard disk. The raw value has different structure for different vendors and is often not meaningful as a decimal number. For some drives, this number may increase during normal operation without necessarily signifying errors. |
DEPENDENT | smart.disk.attribute.seekerrorrate[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: BadBlockRate | Percentage of used reserve blocks divided by total reserve blocks. |
DEPENDENT | smart.disk.attribute.badblockrate[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Zabbix raw items | SMART [{#NAME}]: ProgramFailCount_Chip | The total number of flash program operation failures since the drive was deployed. |
DEPENDENT | smart.disk.attribute.programfailcountchip[{#NAME}] Preprocessing: - JSONPATH: - DISCARD UNCHANGED_HEARTBEAT:6h |
Zabbix raw items | SMART [{#NAME}]: ReallocatedSectorCt | Disk discovered attribute. |
DEPENDENT | smart.disk.attribute.reallocatedsectorct[{#NAME}] Preprocessing: - JSONPATH: - DISCARDUNCHANGEDHEARTBEAT: |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
SMART [{#NAME}]: Disk has been replaced | Device serial number has changed. Ack to close. |
last(/SMART by Zabbix agent 2/smart.disk.sn[{#NAME}],#1)<>last(/SMART by Zabbix agent 2/smart.disk.sn[{#NAME}],#2) and length(last(/SMART by Zabbix agent 2/smart.disk.sn[{#NAME}]))>0 |
INFO | Manual close: YES |
SMART [{#NAME}]: Disk self-test is not passed | - |
last(/SMART by Zabbix agent 2/smart.disk.test[{#NAME}])="false" |
HIGH | |
SMART [{#NAME}]: Average disk temperature is too high | - |
avg(/SMART by Zabbix agent 2/smart.disk.temperature[{#NAME}],5m)>{$SMART.TEMPERATURE.MAX.WARN} |
WARNING | Depends on: - SMART [{#NAME}]: Average disk temperature is critical |
SMART [{#NAME}]: Average disk temperature is critical | - |
avg(/SMART by Zabbix agent 2/smart.disk.temperature[{#NAME}],5m)>{$SMART.TEMPERATURE.MAX.CRIT} |
AVERAGE | |
SMART [{#NAME}]: NVMe disk percentage using is over 90% of estimated endurance | - |
last(/SMART by Zabbix agent 2/smart.disk.percentage_used[{#NAME}])>90 |
AVERAGE | |
SMART [{#NAME}]: Command line did not parse | Command line did not parse. |
( count(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),1) = 1 ) or ( bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),1) = 1 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),1) > bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2),1) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Device open failed | Device open failed, device did not return an IDENTIFY DEVICE structure, or device is in a low-power mode. |
( count(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),2) = 2 ) or ( bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),2) = 2 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),2) > bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2),2) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Some command to the disk failed | Some SMART or other ATA command to the disk failed, or there was a checksum error in a SMART data structure. |
( count(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),4) = 4 ) or ( bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),4) = 4 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),4) > bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2),4) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Check returned "DISK FAILING" | SMART status check returned "DISK FAILING". |
( count(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),8) = 8 ) or ( bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),8) = 8 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),8) > bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2),8) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Some prefail Attributes <= threshold | We found prefail Attributes <= threshold. |
( count(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),16) = 16 ) or ( bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),16) = 16 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),16) > bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2),16) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Some Attributes have been <= threshold | SMART status check returned "DISK OK" but we found that some (usage or prefail) Attributes have been <= threshold at some time in the past. |
( count(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),32) = 32 ) or ( bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),32) = 32 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),32) > bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2),32) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Error log contains records | The device error log contains records of errors. |
( count(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),64) = 64 ) or ( bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),64) = 64 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),64) > bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2),64) ) |
HIGH | Manual close: YES |
SMART [{#NAME}]: Self-test log contains records | The device self-test log contains records of errors. [ATA only] Failed self-tests outdated by a newer successful extended self-test are ignored. |
( count(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2) = 1 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),128) = 128 ) or ( bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),128) = 128 and bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}]),128) > bitand(last(/SMART by Zabbix agent 2/smart.disk.es[{#NAME}],#2),128) ) |
HIGH | 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 with it at ZABBIX forums.
https://www.smartmontools.org/
For Zabbix version: 6.2 and higher. This template is designed to monitor processes by Zabbix that work without any external scripts. Most of the metrics are collected in one go, thanks to Zabbix bulk data collection. For example, by specifying "zabbix" as macro value, you can monitor all zabbix processes.
This template was tested on:
See Zabbix template operation for basic instructions.
Install and setup Zabbix agent.
Custom processes set in macros:
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$PROC.NAME.MATCHES} | This macro is used in the discovery of processes. It can be overridden on a host-level or on a linked template-level. |
<CHANGE VALUE> |
{$PROC.NAME.NOT_MATCHES} | This macro is used in the discovery of processes. It can be overridden on a host-level or on a linked template-level. |
<CHANGE VALUE> |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Processes discovery | Discovery of OS summary processes. |
DEPENDENT | custom.proc.discovery Filter: AND- {#VMEM} NOTMATCHESREGEX - {#NAME} MATCHESREGEX - {#NAME} NOTMATCHES_REGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
OS | Process [{#NAME}]: Get data | Summary metrics collected during the process {#NAME}. |
DEPENDENT | custom.proc.get[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
OS | Process [{#NAME}]: Memory usage (rss) | The summary of Resident Set Size (RSS) memory used by the process {#NAME} in bytes. |
DEPENDENT | custom.proc.rss[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
OS | Process [{#NAME}]: Memory usage (vsize) | The summary of virtual memory used by process {#NAME} in bytes. |
DEPENDENT | custom.proc.vmem[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
OS | Process [{#NAME}]: Memory usage, % | The percentage of real memory used by the process {#NAME}. |
DEPENDENT | custom.proc.pmem[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
OS | Process [{#NAME}]: Number of running processes | The number of running processes {#NAME}. |
DEPENDENT | custom.proc.num[{#NAME}] Preprocessing: - JSONPATH: ⛔️ONFAIL: - DISCARDUNCHANGED_HEARTBEAT: |
OS | Process [{#NAME}]: Number of threads | The number of threads {#NAME}. |
DEPENDENT | custom.proc.thread[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
OS | Process [{#NAME}]: Number of page faults | The number of page faults {#NAME}. |
DEPENDENT | custom.proc.page[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
OS | Process [{#NAME}]: Size of locked memory | The size of locked memory {#NAME}. |
DEPENDENT | custom.proc.mem.locked[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
OS | Process [{#NAME}]: Swap space used | The swap space used by {#NAME}. |
DEPENDENT | custom.proc.swap[{#NAME}] Preprocessing: - JSONPATH: ⛔️ON_FAIL: |
Zabbix raw items | OS: Get process summary | The summary of data metrics for all processes. |
ZABBIX_PASSIVE | proc.get[,,,summary] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Process [{#NAME}]: is not running | - |
last(/OS processes by Zabbix agent/custom.proc.num[{#NAME}])=0 |
HIGH | 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.
For Zabbix version: 6.2 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 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 |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
High memory utilization | The system is running out of free memory. |
min(/Linux memory by SNMP/vm.memory.util[snmp],5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | Depends on: - Lack of available memory |
Lack of available memory | - |
max(/Linux memory by SNMP/vm.memory.available[snmp],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory 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 memory by SNMP/system.swap.pfree[snmp],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux memory by SNMP/system.swap.total[memTotalSwap.0])>0 |
WARNING | Depends on: - High memory utilization - Lack of available memory |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 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]* | 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]*)` |
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} MATCHESREGEX - {#DEVNAME} NOTMATCHES_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: - CHANGEPERSECOND |
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: - CHANGEPERSECOND |
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: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$CPU.UTIL.CRIT} | - |
90 |
{$LOADAVGPER_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: - CHANGEPERSECOND |
CPU | Context switches per second | - |
SNMP | system.cpu.switches[ssRawContexts.0] Preprocessing: - CHANGEPERSECOND |
CPU | CPU idle time | MIB: UCD-SNMP-MIB The time the CPU has spent doing nothing. |
SNMP | system.cpu.idle[ssCpuRawIdle.{#SNMPINDEX}] Preprocessing: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - 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.guestnice[ssCpuRawGuestNice.{#SNMPINDEX}] Preprocessing: - CHANGE PER_SECOND- JAVASCRIPT: |
CPU | CPU utilization | The CPU utilization expressed in %. |
DEPENDENT | system.cpu.util[snmp,{#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 CPU by SNMP/system.cpu.load.avg1[laLoad.1],5m)/last(/Linux CPU by SNMP/system.cpu.num[snmp])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux CPU by SNMP/system.cpu.load.avg5[laLoad.2])>0 and last(/Linux CPU 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 CPU by 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: 6.2 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 | /sys | /run | /proc | .+/shm$)` |
{$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.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} MATCHESREGEX - {#FSTYPE} NOTMATCHESREGEX - {#FSNAME} MATCHESREGEX - {#FSNAME} NOTMATCHESREGEX |
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 | 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 |
---|---|---|---|---|
{#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 filesystems by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux filesystems by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Linux filesystems by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Linux filesystems 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 filesystems by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux filesystems by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Linux filesystems by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Linux filesystems 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 filesystems 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 filesystems 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.
For Zabbix version: 6.2 and higher.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$CPU.UTIL.CRIT} | - |
90 |
{$LOADAVGPER_CPU.MAX.WARN} | CPU load per core is considered sustainable. If necessary, it can be tuned. |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - CHANGEPERSECOND |
CPU | Interrupts per second | - |
ZABBIX_ACTIVE | system.cpu.intr Preprocessing: - CHANGEPERSECOND |
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 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 | The 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 |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
Name | Description | Default | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{$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 | /sys | /run | /proc | .+/shm$)` | ||||||||||||
{$VFS.FS.FSTYPE.MATCHES} | This macro is used for discovery of the filesystems. It can be overridden on host level or its linked template level. |
`^(btrfs | ext2 | ext3 | ext4 | reiser | xfs | ffs | ufs | jfs | jfs2 | vxfs | hfs | apfs | refs | ntfs | fat32 | zfs)$` |
{$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used for discovery of the filesystems. It can be overridden on host level or its linked template level. |
^\s$ |
||||||||||||||||
{$VFS.FS.INODE.PFREE.MIN.CRIT} | - |
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} MATCHESREGEX - {#FSTYPE} NOTMATCHESREGEX - {#FSNAME} MATCHESREGEX - {#FSNAME} NOTMATCHESREGEX Overrides: Skip metadata collection for dynamic FS |
zfs)$<br> - ITEM_PROTOTYPE LIKE inode`- NO_DISCOVER |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
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] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#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 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]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} 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 | 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 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]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} 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 |
{#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 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 | 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 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 |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$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 |
{$SWAP.PFREE.MIN.WARN} | - |
50 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
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] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
High memory utilization | 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 |
Lack of available memory | - |
max(/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 | If there is no swap configured, this trigger is ignored. |
max(/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 - Lack of available memory |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
Name | Description | Default | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
{$VFS.DEV.DEVNAME.MATCHES} | This macro is used for a discovery of block devices. It can be overridden on host level or its linked template level. |
.+ |
||||||||||
{$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used for a discovery of block devices. It can be overridden on host level or its linked template level. |
`^(loop[0-9]* | sd[a-z][0-9]+ | nbd[0-9]+ | sr[0-9]+ | fd[0-9]+ | dm-[0-9]+ | ram[0-9]+ | ploop[a-z0-9]+ | md[0-9]* | hcp[0-9]* | zram[0-9]*)` |
{$VFS.DEV.READ.AWAIT.WARN} | The average response time (in ms) of disk read before the trigger would fire. |
20 |
||||||||||
{$VFS.DEV.WRITE.AWAIT.WARN} | The average response time (in ms) of disk write before the trigger would fire. |
20 |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Block devices discovery | - |
ZABBIX_ACTIVE | vfs.dev.discovery Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: Filter: AND- {#DEVTYPE} MATCHESREGEX - {#DEVNAME} MATCHESREGEX - {#DEVNAME} NOTMATCHESREGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
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: - CHANGEPERSECOND |
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: - CHANGEPERSECOND |
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.queuesize[{#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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - MULTIPLIER: |
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 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: 6.2 and higher.
Install Zabbix agent on Linux OS according to Zabbix 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 the interface utilization trigger. |
90 |
|||||||
{$IFCONTROL} | - |
1 |
|||||||
{$NET.IF.IFNAME.MATCHES} | - |
^.*$ |
|||||||
{$NET.IF.IFNAME.NOT_MATCHES} | It filters out loopbacks, nulls, docker veth links and docker0 bridge by default. |
`(^Software Loopback Interface | ^NULL[0-9.]*$ | ^[Ll]o[0-9.]*$ | ^[Ss]ystem$ | ^Nu[0-9.]*$ | ^veth[0-9A-z]+$ | docker[0-9]+ | br-[a-z0-9]{12})` |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Network interface discovery | The discovery of network interfaces. |
ZABBIX_ACTIVE | net.if.discovery Filter: AND- {#IFNAME} MATCHESREGEX - {#IFNAME} NOTMATCHES_REGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Network interfaces | Interface {#IFNAME}: Bits received | - |
ZABBIX_ACTIVE | net.if.in["{#IFNAME}"] Preprocessing: - CHANGEPERSECOND - MULTIPLIER: |
Network interfaces | Interface {#IFNAME}: Bits sent | - |
ZABBIX_ACTIVE | net.if.out["{#IFNAME}"] Preprocessing: - CHANGEPERSECOND - MULTIPLIER: |
Network interfaces | Interface {#IFNAME}: Outbound packets with errors | - |
ZABBIX_ACTIVE | net.if.out["{#IFNAME}",errors] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}: Inbound packets with errors | - |
ZABBIX_ACTIVE | net.if.in["{#IFNAME}",errors] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}: Outbound packets discarded | - |
ZABBIX_ACTIVE | net.if.out["{#IFNAME}",dropped] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}: Inbound packets discarded | - |
ZABBIX_ACTIVE | net.if.in["{#IFNAME}",dropped] Preprocessing: - CHANGEPERSECOND |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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 getlinkksettings 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: - DISCARDUNCHANGEDHEARTBEAT: |
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 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"])>0 Recovery 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 | It recovers when it is below 80% of the {$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. 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 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. Acknowledge (Ack) to close the problem manually. |
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: 6.2 and higher.
Install Zabbix agent on Linux OS according to Zabbix 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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
General | System description | The information as normally returned by 'uname -a'. |
ZABBIX_ACTIVE | system.uname Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
Inventory | Operating system architecture | The architecture of the host's operating system. |
ZABBIX_ACTIVE | system.sw.arch Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Inventory | Software installed | - |
ZABBIX_ACTIVE | system.sw.packages Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Security | Checksum of /etc/passwd | - |
ZABBIX_ACTIVE | vfs.file.cksum[/etc/passwd,sha256] Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Status | System uptime | The system uptime expressed in the following format:'N days, hh:mm:ss'. |
ZABBIX_ACTIVE | system.uptime |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
System time is out of sync | The host's system time is different from Zabbix server time. |
fuzzytime(/Linux generic 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 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 | - |
last(/Linux generic by Zabbix agent active/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} |
INFO | |
Configured max number of processes is too low | - |
last(/Linux generic by Zabbix agent active/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} |
INFO | Depends on: - Getting closer to process limit |
Getting closer to process limit | - |
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 | 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 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 |
/etc/passwd has been changed | - |
last(/Linux generic by Zabbix agent active/vfs.file.cksum[/etc/passwd,sha256],#1)<>last(/Linux generic 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 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: 6.2 and higher.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$CPU.UTIL.CRIT} | - |
90 |
{$LOADAVGPER_CPU.MAX.WARN} | CPU load per core is considered sustainable. If necessary, it can be tuned. |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - CHANGEPERSECOND |
CPU | Interrupts per second | - |
ZABBIX_PASSIVE | system.cpu.intr Preprocessing: - CHANGEPERSECOND |
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 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 | The 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 |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
Name | Description | Default | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{$VFS.FS.FREE.MIN.CRIT} | The critical threshold for utilization of the filesystem. |
5G |
||||||||||||||||
{$VFS.FS.FREE.MIN.WARN} | The warning threshold for utilization of the filesystem. |
10G |
||||||||||||||||
{$VFS.FS.FSNAME.MATCHES} | This macro is used for discovery of the filesystems. It can be overridden on host level or its linked template level. |
.+ |
||||||||||||||||
{$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used for discovery of the filesystems. It can be overridden on host level or its linked template level. |
`^(/dev | /sys | /run | /proc | .+/shm$)` | ||||||||||||
{$VFS.FS.FSTYPE.MATCHES} | This macro is used for discovery of the filesystems. It can be overridden on host level or its linked template level. |
`^(btrfs | ext2 | ext3 | ext4 | reiser | xfs | ffs | ufs | jfs | jfs2 | vxfs | hfs | apfs | refs | ntfs | fat32 | zfs)$` |
{$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used for discovery of the filesystems. It can be overridden on host level or its linked template level. |
^\s$ |
||||||||||||||||
{$VFS.FS.INODE.PFREE.MIN.CRIT} | - |
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 | The discovery of mounted filesystems with different types. |
ZABBIX_PASSIVE | vfs.fs.discovery Filter: AND- {#FSTYPE} MATCHESREGEX - {#FSTYPE} NOTMATCHESREGEX - {#FSNAME} MATCHESREGEX - {#FSNAME} NOTMATCHESREGEX Overrides: Skip metadata collection for dynamic FS |
zfs)$<br> - ITEM_PROTOTYPE LIKE inode`- NO_DISCOVER |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
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] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#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 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]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Linux filesystems 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 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]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} 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 |
{#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 filesystems 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 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 |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$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 |
{$SWAP.PFREE.MIN.WARN} | - |
50 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
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] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
High memory utilization | 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 |
Lack of available memory | - |
max(/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 | If there is no swap configured, this trigger is ignored. |
max(/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 - Lack of available memory |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Install Zabbix agent on Linux OS according to Zabbix documentation.
No specific Zabbix configuration is required.
Name | Description | Default | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
{$VFS.DEV.DEVNAME.MATCHES} | This macro is used for a discovery of block devices. It can be overridden on host level or its linked template level. |
.+ |
||||||||||
{$VFS.DEV.DEVNAME.NOT_MATCHES} | This macro is used for a discovery of block devices. It can be overridden on host level or its linked template level. |
`^(loop[0-9]* | sd[a-z][0-9]+ | nbd[0-9]+ | sr[0-9]+ | fd[0-9]+ | dm-[0-9]+ | ram[0-9]+ | ploop[a-z0-9]+ | md[0-9]* | hcp[0-9]* | zram[0-9]*)` |
{$VFS.DEV.READ.AWAIT.WARN} | The average response time (in ms) of disk read before the trigger would fire. |
20 |
||||||||||
{$VFS.DEV.WRITE.AWAIT.WARN} | The average response time (in ms) of disk write before the trigger would fire. |
20 |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Block devices discovery | - |
ZABBIX_PASSIVE | vfs.dev.discovery Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: Filter: AND- {#DEVTYPE} MATCHESREGEX - {#DEVNAME} MATCHESREGEX - {#DEVNAME} NOTMATCHESREGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
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: - CHANGEPERSECOND |
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: - CHANGEPERSECOND |
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.queuesize[{#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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - MULTIPLIER: |
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 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: 6.2 and higher.
Install Zabbix agent on Linux OS according to Zabbix 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 the interface utilization trigger. |
90 |
|||||||
{$IFCONTROL} | - |
1 |
|||||||
{$NET.IF.IFNAME.MATCHES} | - |
^.*$ |
|||||||
{$NET.IF.IFNAME.NOT_MATCHES} | It filters out loopbacks, nulls, docker veth links and docker0 bridge by default. |
`(^Software Loopback Interface | ^NULL[0-9.]*$ | ^[Ll]o[0-9.]*$ | ^[Ss]ystem$ | ^Nu[0-9.]*$ | ^veth[0-9A-z]+$ | docker[0-9]+ | br-[a-z0-9]{12})` |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Network interface discovery | The discovery of network interfaces. |
ZABBIX_PASSIVE | net.if.discovery Filter: AND- {#IFNAME} MATCHESREGEX - {#IFNAME} NOTMATCHES_REGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Network interfaces | Interface {#IFNAME}: Bits received | - |
ZABBIX_PASSIVE | net.if.in["{#IFNAME}"] Preprocessing: - CHANGEPERSECOND - MULTIPLIER: |
Network interfaces | Interface {#IFNAME}: Bits sent | - |
ZABBIX_PASSIVE | net.if.out["{#IFNAME}"] Preprocessing: - CHANGEPERSECOND - MULTIPLIER: |
Network interfaces | Interface {#IFNAME}: Outbound packets with errors | - |
ZABBIX_PASSIVE | net.if.out["{#IFNAME}",errors] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}: Inbound packets with errors | - |
ZABBIX_PASSIVE | net.if.in["{#IFNAME}",errors] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}: Outbound packets discarded | - |
ZABBIX_PASSIVE | net.if.out["{#IFNAME}",dropped] Preprocessing: - CHANGEPERSECOND |
Network interfaces | Interface {#IFNAME}: Inbound packets discarded | - |
ZABBIX_PASSIVE | net.if.in["{#IFNAME}",dropped] Preprocessing: - CHANGEPERSECOND |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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 getlinkksettings 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: - DISCARDUNCHANGEDHEARTBEAT: |
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 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"])>0 Recovery 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 | It recovers when it is below 80% of the {$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. 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 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. Acknowledge (Ack) to close the problem manually. |
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: 6.2 and higher.
Install Zabbix agent on Linux OS according to Zabbix 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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
General | System description | The information as normally returned by 'uname -a'. |
ZABBIX_PASSIVE | system.uname Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
Inventory | Operating system architecture | The architecture of the host's operating system. |
ZABBIX_PASSIVE | system.sw.arch Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Inventory | Software installed | - |
ZABBIX_PASSIVE | system.sw.packages Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Security | Checksum of /etc/passwd | - |
ZABBIX_PASSIVE | vfs.file.cksum[/etc/passwd,sha256] Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Status | System uptime | The system uptime expressed in the following format:'N days, hh:mm:ss'. |
ZABBIX_PASSIVE | system.uptime |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
System time is out of sync | The host's system time is different from Zabbix server time. |
fuzzytime(/Linux generic 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 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 | - |
last(/Linux generic by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN} |
INFO | |
Configured max number of processes is too low | - |
last(/Linux generic by Zabbix agent/kernel.maxproc)<{$KERNEL.MAXPROC.MIN} |
INFO | Depends on: - Getting closer to process limit |
Getting closer to process limit | - |
last(/Linux generic by Zabbix agent/proc.num)/last(/Linux generic 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 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 |
/etc/passwd has been changed | - |
last(/Linux generic by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#1)<>last(/Linux generic 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 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: 6.2 and higher. Special version of interfaces template that is required for Windows OS. Since MS doesn't support 64 bit counters but supports ifAlias and ifHighSpeed.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{$IF.ERRORS.WARN} | - |
2 |
|||||||||||
{$IF.UTIL.MAX} | - |
90 |
|||||||||||
{$IFCONTROL} | - |
1 |
|||||||||||
{$NET.IF.IFADMINSTATUS.MATCHES} | - |
^.*$ |
|||||||||||
{$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} | - |
`Miniport | Virtual | Teredo | Kernel | Loopback | Bluetooth | HTTPS | 6to4 | QoS | Layer | isatap | ISATAP` |
{$NET.IF.IFNAME.MATCHES} | - |
^.*$ |
|||||||||||
{$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
`(^Software Loopback Interface | ^NULL[0-9.]*$ | ^[Ll]o[0-9.]*$ | ^[Ss]ystem$ | ^Nu[0-9.]*$ | ^veth[0-9a-z]+$ | docker[0-9]+ | br-[a-z0-9]{12})` | ||||
{$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 |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Network interfaces discovery | Discovering interfaces from IF-MIB. |
SNMP | net.if.discovery Filter: AND- {#IFADMINSTATUS} MATCHESREGEX - {#IFADMINSTATUS} NOTMATCHESREGEX - {#IFOPERSTATUS} MATCHESREGEX - {#IFOPERSTATUS} NOTMATCHESREGEX - {#IFNAME} MATCHESREGEX - {#IFNAME} NOTMATCHESREGEX - {#IFDESCR} MATCHESREGEX - {#IFDESCR} NOTMATCHESREGEX - {#IFALIAS} MATCHESREGEX - {#IFALIAS} NOTMATCHESREGEX - {#IFTYPE} MATCHESREGEX - {#IFTYPE} NOTMATCHESREGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
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. Discontinuities in the value of this counter can occur at re-initialization of the management system, and atother times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP | net.if.in[ifInOctets.{#SNMPINDEX}] Preprocessing: - CHANGEPERSECOND - MULTIPLIER: |
Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | MIB: IF-MIB The total number of octets transmitted out of the interface, including framing characters. 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[ifOutOctets.{#SNMPINDEX}] Preprocessing: - CHANGEPERSECOND - 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: - CHANGEPERSECOND |
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: - CHANGEPERSECOND |
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: - CHANGEPERSECOND |
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: - CHANGEPERSECOND |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
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(/Interfaces Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) Recovery expression: last(/Interfaces Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The network interface utilization is close to its estimated maximum bandwidth. |
(avg(/Interfaces Windows by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Interfaces Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Interfaces Windows by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Interfaces Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Interfaces Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 Recovery expression: avg(/Interfaces Windows by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Interfaces Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and avg(/Interfaces Windows by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Interfaces Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
Interface {#IFNAME}({#IFALIAS}): High error rate | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
min(/Interfaces Windows by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Interfaces Windows by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} Recovery expression: max(/Interfaces Windows by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Interfaces Windows 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. Ack to close. |
change(/Interfaces Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Interfaces Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Interfaces Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Interfaces Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Interfaces Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Interfaces Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Interfaces Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Interfaces Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Interfaces Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) Recovery expression: (change(/Interfaces Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/Interfaces Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or (last(/Interfaces Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default | |||||||
---|---|---|---|---|---|---|---|---|---|
{$IF.ERRORS.WARN} | - |
2 |
|||||||
{$IF.UTIL.MAX} | - |
90 |
|||||||
{$IFCONTROL} | - |
1 |
|||||||
{$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 | ^NULL[0-9.]*$ | ^[Ll]o[0-9.]*$ | ^[Ss]ystem$ | ^Nu[0-9.]*$ | ^veth[0-9a-z]+$ | docker[0-9]+ | br-[a-z0-9]{12})` |
{$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 |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Network interfaces discovery | Discovering interfaces from IF-MIB. |
SNMP | net.if.discovery Filter: AND- {#IFADMINSTATUS} MATCHESREGEX - {#IFADMINSTATUS} NOTMATCHESREGEX - {#IFOPERSTATUS} MATCHESREGEX - {#IFOPERSTATUS} NOTMATCHESREGEX - {#IFNAME} MATCHESREGEX - {#IFNAME} NOTMATCHESREGEX - {#IFDESCR} MATCHESREGEX - {#IFDESCR} NOTMATCHESREGEX - {#IFALIAS} MATCHESREGEX - {#IFALIAS} NOTMATCHESREGEX - {#IFTYPE} MATCHESREGEX - {#IFTYPE} NOTMATCHESREGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND - 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: - CHANGEPERSECOND |
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: - CHANGEPERSECOND |
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: - CHANGEPERSECOND |
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: - CHANGEPERSECOND |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
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(/Interfaces by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) Recovery expression: last(/Interfaces by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The network interface utilization is close to its estimated maximum bandwidth. |
(avg(/Interfaces by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Interfaces by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Interfaces by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Interfaces by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Interfaces by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 Recovery expression: avg(/Interfaces by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Interfaces by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and avg(/Interfaces by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Interfaces by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
Interface {#IFNAME}({#IFALIAS}): High error rate | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
min(/Interfaces by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Interfaces by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} Recovery expression: max(/Interfaces by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Interfaces 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. Ack to close. |
change(/Interfaces by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Interfaces by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Interfaces by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Interfaces by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Interfaces by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Interfaces by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Interfaces by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Interfaces by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Interfaces by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) Recovery expression: (change(/Interfaces by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/Interfaces by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or (last(/Interfaces by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default | |||||||
---|---|---|---|---|---|---|---|---|---|
{$IF.ERRORS.WARN} | - |
2 |
|||||||
{$IF.UTIL.MAX} | - |
95 |
|||||||
{$IFCONTROL} | - |
1 |
|||||||
{$NET.IF.IFADMINSTATUS.MATCHES} | Ignore notPresent(6) |
^.* |
|||||||
{$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.IFNAME.MATCHES} | - |
^.*$ |
|||||||
{$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
`(^Software Loopback Interface | ^NULL[0-9.]*$ | ^[Ll]o[0-9.]*$ | ^[Ss]ystem$ | ^Nu[0-9.]*$ | ^veth[0-9a-z]+$ | docker[0-9]+ | br-[a-z0-9]{12})` |
{$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 |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Network interfaces discovery | Discovering interfaces from IF-MIB. |
SNMP | net.if.discovery Filter: AND- {#IFADMINSTATUS} MATCHESREGEX - {#IFADMINSTATUS} NOTMATCHESREGEX - {#IFOPERSTATUS} MATCHESREGEX - {#IFOPERSTATUS} NOTMATCHESREGEX - {#IFNAME} MATCHESREGEX - {#IFNAME} NOTMATCHESREGEX - {#IFDESCR} MATCHESREGEX - {#IFDESCR} NOTMATCHESREGEX - {#IFTYPE} MATCHESREGEX - {#IFTYPE} NOTMATCHES_REGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Network interfaces | Interface {#IFDESCR}: 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 {#IFDESCR}: Bits received | MIB: IF-MIB The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and atother times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP | net.if.in[ifInOctets.{#SNMPINDEX}] Preprocessing: - CHANGEPERSECOND - MULTIPLIER: |
Network interfaces | Interface {#IFDESCR}: Bits sent | MIB: IF-MIB The total number of octets transmitted out of the interface, including framing characters. 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[ifOutOctets.{#SNMPINDEX}] Preprocessing: - CHANGEPERSECOND - MULTIPLIER: |
Network interfaces | Interface {#IFDESCR}: 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: - CHANGEPERSECOND |
Network interfaces | Interface {#IFDESCR}: 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: - CHANGEPERSECOND |
Network interfaces | Interface {#IFDESCR}: 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: - CHANGEPERSECOND |
Network interfaces | Interface {#IFDESCR}: 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: - CHANGEPERSECOND |
Network interfaces | Interface {#IFDESCR}: 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: - DISCARDUNCHANGEDHEARTBEAT: |
Network interfaces | Interface {#IFDESCR}: Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in bits per second. 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. If the bandwidth of the interface is greater than the maximum value reportable by this object then this object should report its maximum value (4,294,967,295) and ifHighSpeed must be used to report the interface's speed. For a sub-layer which has no concept of bandwidth, this object should be zero. |
SNMP | net.if.speed[ifSpeed.{#SNMPINDEX}] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Interface {#IFDESCR}: 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(/Interfaces Simple by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces Simple by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces Simple by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) Recovery expression: last(/Interfaces Simple by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
Interface {#IFDESCR}: High bandwidth usage | The network interface utilization is close to its estimated maximum bandwidth. |
(avg(/Interfaces Simple by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Interfaces Simple by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}]) or avg(/Interfaces Simple by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Interfaces Simple by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])) and last(/Interfaces Simple by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])>0 Recovery expression: avg(/Interfaces Simple by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Interfaces Simple by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}]) and avg(/Interfaces Simple by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Interfaces Simple by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}]) |
WARNING | Manual close: YES Depends on: - Interface {#IFDESCR}: Link down |
Interface {#IFDESCR}: High error rate | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
min(/Interfaces Simple by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Interfaces Simple by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} Recovery expression: max(/Interfaces Simple by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Interfaces Simple by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 |
WARNING | Manual close: YES Depends on: - Interface {#IFDESCR}: Link down |
Interface {#IFDESCR}: 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(/Interfaces Simple by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])<0 and last(/Interfaces Simple by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])>0 and ( last(/Interfaces Simple by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Interfaces Simple by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Interfaces Simple by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Interfaces Simple by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Interfaces Simple by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Interfaces Simple by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Interfaces Simple by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) Recovery expression: (change(/Interfaces Simple by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])>0 and last(/Interfaces Simple by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}],#2)>0) or (last(/Interfaces Simple by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2) |
INFO | Manual close: YES Depends on: - Interface {#IFDESCR}: Link down |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$ICMPLOSSWARN} | - |
20 |
{$ICMPRESPONSETIME_WARN} | - |
0.15 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Status | ICMP ping | - |
SIMPLE | icmpping |
Status | ICMP loss | - |
SIMPLE | icmppingloss |
Status | ICMP response time | - |
SIMPLE | icmppingsec |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/ICMP Ping/icmpping,#3)=0 |
HIGH | |
High ICMP ping loss | - |
min(/ICMP Ping/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/ICMP Ping/icmppingloss,5m)<100 |
WARNING | Depends on: - Unavailable by ICMP ping |
High ICMP ping response time | - |
avg(/ICMP Ping/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
WARNING | Depends on: - High ICMP ping loss - Unavailable by ICMP ping |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 6.2 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 | /sys | /run | /proc | .+/shm$)` |
{$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.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
||||
{$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 |
---|---|---|---|
Storage discovery | HOST-RESOURCES-MIB::hrStorage discovery with storage filter. |
SNMP | vfs.fs.discovery[snmp] Filter: AND- {#FSTYPE} MATCHESREGEX - {#FSTYPE} NOTMATCHESREGEX - {#FSNAME} MATCHESREGEX - {#FSNAME} NOTMATCHESREGEX |
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 |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#FSNAME}: Disk space is critically low | 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. |
last(/HOST-RESOURCES-MIB storage by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/HOST-RESOURCES-MIB storage by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/HOST-RESOURCES-MIB storage by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/HOST-RESOURCES-MIB storage by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) |
AVERAGE | Manual close: YES |
{#FSNAME}: Disk space is low | 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. |
last(/HOST-RESOURCES-MIB storage by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/HOST-RESOURCES-MIB storage by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/HOST-RESOURCES-MIB storage by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/HOST-RESOURCES-MIB storage by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default | |
---|---|---|---|
{$MEMORY.NAME.MATCHES} | This macro is used in memory discovery. Can be overridden on the host or linked template level. |
.* |
|
{$MEMORY.NAME.NOT_MATCHES} | This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results. |
CHANGE_IF_NEEDED |
|
{$MEMORY.TYPE.MATCHES} | This macro is used in memory discovery. Can be overridden on the host or linked template level. |
`.*(.2 | hrStorageRam)$` |
{$MEMORY.TYPE.NOT_MATCHES} | This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results. |
CHANGE_IF_NEEDED |
|
{$MEMORY.UTIL.MAX} | The warning threshold of the "Physical memory: Memory utilization" item. |
90 |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Memory discovery | HOST-RESOURCES-MIB::hrStorage discovery with memory filter |
SNMP | vm.memory.discovery Filter: AND- {#MEMTYPE} MATCHESREGEX - {#MEMTYPE} NOTMATCHESREGEX - {#MEMNAME} MATCHESREGEX - {#MEMNAME} NOTMATCHESREGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Memory | {#MEMNAME}: Used memory | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
SNMP | vm.memory.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing: - MULTIPLIER: |
Memory | {#MEMNAME}: Total memory | 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 memory allocated to a buffer pool might be modified or the amount of disk space allocated to virtual memory might be modified. |
SNMP | vm.memory.total[hrStorageSize.{#SNMPINDEX}] Preprocessing: - MULTIPLIER: |
Memory | {#MEMNAME}: Memory utilization | Memory utilization in %. |
CALCULATED | vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}] Expression: last(//vm.memory.used[hrStorageUsed.{#SNMPINDEX}])/last(//vm.memory.total[hrStorageSize.{#SNMPINDEX}])*100 |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#MEMNAME}: High memory utilization | The system is running out of free memory. |
min(/HOST-RESOURCES-MIB memory by SNMP/vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX} |
AVERAGE |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$CPU.UTIL.CRIT} | - |
90 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
CPU | CPU utilization | MIB: HOST-RESOURCES-MIB The average, over the last minute, of the percentage of time that processors was not idle. Implementations may approximate this one minute smoothing period if necessary. |
SNMP | system.cpu.util Preprocessing: - JSONPATH: |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/HOST-RESOURCES-MIB CPU by SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
WARNING |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default | ||||
---|---|---|---|---|---|---|
{$CPU.UTIL.CRIT} | - |
90 |
||||
{$MEMORY.NAME.MATCHES} | This macro is used in memory discovery. Can be overridden on the host or linked template level. |
.* |
||||
{$MEMORY.NAME.NOT_MATCHES} | This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results. |
CHANGE_IF_NEEDED |
||||
{$MEMORY.TYPE.MATCHES} | This macro is used in memory discovery. Can be overridden on the host or linked template level. |
`.*(.2 | hrStorageRam)$` | |||
{$MEMORY.TYPE.NOT_MATCHES} | This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results. |
CHANGE_IF_NEEDED |
||||
{$MEMORY.UTIL.MAX} | The warning threshold of the "Physical memory: Memory utilization" item. |
90 |
||||
{$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 | /sys | /run | /proc | .+/shm$)` |
{$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.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
||||
{$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 |
---|---|---|---|
Memory discovery | HOST-RESOURCES-MIB::hrStorage discovery with memory filter |
SNMP | vm.memory.discovery Filter: AND- {#MEMTYPE} MATCHESREGEX - {#MEMTYPE} NOTMATCHESREGEX - {#MEMNAME} MATCHESREGEX - {#MEMNAME} NOTMATCHESREGEX |
Storage discovery | HOST-RESOURCES-MIB::hrStorage discovery with storage filter. |
SNMP | vfs.fs.discovery[snmp] Filter: AND- {#FSTYPE} MATCHESREGEX - {#FSTYPE} NOTMATCHESREGEX - {#FSNAME} MATCHESREGEX - {#FSNAME} NOTMATCHESREGEX |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
CPU | CPU utilization | MIB: HOST-RESOURCES-MIB The average, over the last minute, of the percentage of time that processors was not idle. Implementations may approximate this one minute smoothing period if necessary. |
SNMP | system.cpu.util Preprocessing: - JSONPATH: |
Memory | {#MEMNAME}: Used memory | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
SNMP | vm.memory.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing: - MULTIPLIER: |
Memory | {#MEMNAME}: Total memory | 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 memory allocated to a buffer pool might be modified or the amount of disk space allocated to virtual memory might be modified. |
SNMP | vm.memory.total[hrStorageSize.{#SNMPINDEX}] Preprocessing: - MULTIPLIER: |
Memory | {#MEMNAME}: Memory utilization | Memory utilization in %. |
CALCULATED | vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}] Expression: last(//vm.memory.used[hrStorageUsed.{#SNMPINDEX}])/last(//vm.memory.total[hrStorageSize.{#SNMPINDEX}])*100 |
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 |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/HOST-RESOURCES-MIB by SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
WARNING | |
{#MEMNAME}: High memory utilization | The system is running out of free memory. |
min(/HOST-RESOURCES-MIB by SNMP/vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | |
{#FSNAME}: Disk space is critically low | 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. |
last(/HOST-RESOURCES-MIB by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/HOST-RESOURCES-MIB by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/HOST-RESOURCES-MIB by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/HOST-RESOURCES-MIB by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) |
AVERAGE | Manual close: YES |
{#FSNAME}: Disk space is low | 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. |
last(/HOST-RESOURCES-MIB by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/HOST-RESOURCES-MIB by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/HOST-RESOURCES-MIB by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/HOST-RESOURCES-MIB by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$ICMPLOSSWARN} | - |
20 |
{$ICMPRESPONSETIME_WARN} | - |
0.15 |
{$SNMP.TIMEOUT} | - |
5m |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - DISCARDUNCHANGEDHEARTBEAT: |
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: - CHECKNOTSUPPORTED ⛔️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 |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
System name has changed | System name has changed. Ack to close. |
last(/Generic by SNMP/system.name,#1)<>last(/Generic by SNMP/system.name,#2) and length(last(/Generic by SNMP/system.name))>0 |
INFO | Manual close: YES |
Host has been restarted | Uptime is less than 10 minutes. |
(last(/Generic by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Generic by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Generic by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Generic 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(/Generic 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(/Generic by SNMP/icmpping,#3)=0 |
HIGH | |
High ICMP ping loss | - |
min(/Generic by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Generic by SNMP/icmppingloss,5m)<100 |
WARNING | Depends on: - Unavailable by ICMP ping |
High ICMP ping response time | - |
avg(/Generic by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
WARNING | Depends on: - High ICMP ping loss - Unavailable by ICMP ping |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
There are no template links in this template.
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 | net.if.duplex.discovery Preprocessing: - JAVASCRIPT: Filter: AND- {#IFOPERSTATUS} MATCHESREGEX - {#SNMPVALUE} MATCHESREGEX `(2 |
3)` |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
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}] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Interface {#IFNAME}({#IFALIAS}): In half-duplex mode | Please check autonegotiation settings and cabling |
last(/EtherLike-MIB by SNMP/net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2 |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$MEMORY.UTIL.MAX} | - |
90 |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Memory Discovery | Discovery of ciscoMemoryPoolTable, a table of memory pool monitoring entries. http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html |
SNMP | memory.discovery |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Memory | {#SNMPVALUE}: Used memory | MIB: CISCO-MEMORY-POOL-MIB Indicates the number of bytes from the memory pool that are currently in use by applications on the managed device. Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html |
SNMP | vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}] |
Memory | {#SNMPVALUE}: Free memory | MIB: CISCO-MEMORY-POOL-MIB Indicates the number of bytes from the memory pool that are currently unused on the managed device. Note that the sum of ciscoMemoryPoolUsed and ciscoMemoryPoolFree is the total amount of memory in the pool Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html |
SNMP | vm.memory.free[ciscoMemoryPoolFree.{#SNMPINDEX}] |
Memory | {#SNMPVALUE}: Memory utilization | Memory utilization in %. |
CALCULATED | vm.memory.util[vm.memory.util.{#SNMPINDEX}] Expression: last(//vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}])/(last(//vm.memory.free[ciscoMemoryPoolFree.{#SNMPINDEX}])+last(//vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}]))*100 |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#SNMPVALUE}: High memory utilization | The system is running out of free memory. |
min(/Cisco CISCO-MEMORY-POOL-MIB by SNMP/vm.memory.util[vm.memory.util.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX} |
AVERAGE |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$CPU.UTIL.CRIT} | - |
90 |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
CPU Discovery | If your IOS device has several CPUs, you must use CISCO-PROCESS-MIB and its object cpmCPUTotal5minRev from the table called cpmCPUTotalTable, indexed with cpmCPUTotalIndex. This table allows CISCO-PROCESS-MIB to keep CPU statistics for different physical entities in the router, like different CPU chips, group of CPUs, or CPUs in different modules/cards. In case of a single CPU, cpmCPUTotalTable has only one entry. |
SNMP | cpu.discovery |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
CPU | #{#SNMPINDEX}: CPU utilization | MIB: CISCO-PROCESS-MIB The cpmCPUTotal5minRev MIB object provides a more accurate view of the performance of the router over time than the MIB objects cpmCPUTotal1minRev and cpmCPUTotal5secRev . These MIB objects are not accurate because they look at CPU at one minute and five second intervals, respectively. These MIBs enable you to monitor the trends and plan the capacity of your network. The recommended baseline rising threshold for cpmCPUTotal5minRev is 90 percent. Depending on the platform, some routers that run at 90 percent, for example, 2500s, can exhibit performance degradation versus a high-end router, for example, the 7500 series, which can operate fine. Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15215-collect-cpu-util-snmp.html |
SNMP | system.cpu.util[cpmCPUTotal5minRev.{#SNMPINDEX}] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
#{#SNMPINDEX}: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Cisco CISCO-PROCESS-MIB by SNMP/system.cpu.util[cpmCPUTotal5minRev.{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT} |
WARNING |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$CPU.UTIL.CRIT} | - |
90 |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
CPU Discovery | If your IOS device has several CPUs, you must use CISCO-PROCESS-MIB and its object cpmCPUTotal5minRev from the table called cpmCPUTotalTable, indexed with cpmCPUTotalIndex. This table allows CISCO-PROCESS-MIB to keep CPU statistics for different physical entities in the router, like different CPU chips, group of CPUs, or CPUs in different modules/cards. In case of a single CPU, cpmCPUTotalTable has only one entry. |
SNMP | cpu.discovery |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
CPU | {#SNMPVALUE}: CPU utilization | MIB: CISCO-PROCESS-MIB The overall CPU busy percentage in the last 5 minute period. This object deprecates the avgBusy5 object from the OLD-CISCO-SYSTEM-MIB. This object is deprecated by cpmCPUTotal5minRev which has the changed range of value (0..100). Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15215-collect-cpu-util-snmp.html |
SNMP | system.cpu.util[cpmCPUTotal5min.{#SNMPINDEX}] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#SNMPVALUE}: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 by SNMP/system.cpu.util[cpmCPUTotal5min.{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT} |
WARNING |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$CPU.UTIL.CRIT} | - |
90 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
CPU | CPU utilization | MIB: OLD-CISCO-CPU-MIB 5 minute exponentially-decayed moving average of the CPU busy percentage. Reference: http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15215-collect-cpu-util-snmp.html |
SNMP | system.cpu.util[avgBusy5] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Cisco OLD-CISCO-CPU-MIB by SNMP/system.cpu.util[avgBusy5],5m)>{$CPU.UTIL.CRIT} |
WARNING |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Entity Serial Numbers Discovery | - |
SNMP | entitysn.discovery Filter: AND- {#ENT SN} MATCHESREGEX.+ - {#ENT CLASS} MATCHES_REGEX^3$ |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Inventory | Hardware model name | MIB: ENTITY-MIB |
SNMP | system.hw.model Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Inventory | Hardware serial number | MIB: ENTITY-MIB |
SNMP | system.hw.serialnumber Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Inventory | Operating system | MIB: SNMPv2-MIB |
SNMP | system.sw.os[sysDescr.0] Preprocessing: - REGEX: - DISCARDUNCHANGEDHEARTBEAT: |
Inventory | {#ENT_NAME}: Hardware serial number | MIB: ENTITY-MIB |
SNMP | system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}] Preprocessing: - DISCARDUNCHANGEDHEARTBEAT: |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
Device has been replaced | Device serial number has changed. Ack to close |
last(/Cisco Inventory by SNMP/system.hw.serialnumber,#1)<>last(/Cisco Inventory by SNMP/system.hw.serialnumber,#2) and length(last(/Cisco Inventory by SNMP/system.hw.serialnumber))>0 |
INFO | Manual close: YES |
Operating system description has changed | Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close. |
last(/Cisco Inventory by SNMP/system.sw.os[sysDescr.0],#1)<>last(/Cisco Inventory by SNMP/system.sw.os[sysDescr.0],#2) and length(last(/Cisco Inventory by SNMP/system.sw.os[sysDescr.0]))>0 |
INFO | Manual close: YES |
{#ENT_NAME}: Device has been replaced | Device serial number has changed. Ack to close |
last(/Cisco Inventory by SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#1)<>last(/Cisco Inventory by SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#2) and length(last(/Cisco Inventory by SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]))>0 |
INFO | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$FANCRITSTATUS:"critical"} | - |
3 |
{$FANCRITSTATUS:"shutdown"} | - |
4 |
{$FANWARNSTATUS:"notFunctioning"} | - |
6 |
{$FANWARNSTATUS:"warning"} | - |
2 |
{$PSUCRITSTATUS:"critical"} | - |
3 |
{$PSUCRITSTATUS:"shutdown"} | - |
4 |
{$PSUWARNSTATUS:"notFunctioning"} | - |
6 |
{$PSUWARNSTATUS:"warning"} | - |
2 |
{$TEMP_CRIT:"CPU"} | - |
75 |
{$TEMPCRITLOW} | - |
5 |
{$TEMPCRITSTATUS} | - |
3 |
{$TEMP_CRIT} | - |
60 |
{$TEMPDISASTERSTATUS} | - |
4 |
{$TEMP_WARN:"CPU"} | - |
70 |
{$TEMPWARNSTATUS} | - |
2 |
{$TEMP_WARN} | - |
50 |
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
FAN Discovery | The table of fan status maintained by the environmental monitor. |
SNMP | fan.discovery |
PSU Discovery | The table of power supply status maintained by the environmental monitor card. |
SNMP | psu.discovery |
Temperature Discovery | Discovery of ciscoEnvMonTemperatureTable (ciscoEnvMonTemperatureDescr), a table of ambient temperature status maintained by the environmental monitor. |
SNMP | temperature.discovery |
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
Fans | {#SENSOR_INFO}: Fan status | MIB: CISCO-ENVMON-MIB |
SNMP | sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}] |
Power supply | {#SENSOR_INFO}: Power supply status | MIB: CISCO-ENVMON-MIB |
SNMP | sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}] |
Temperature | {#SNMPVALUE}: Temperature | MIB: CISCO-ENVMON-MIB The current measurement of the test point being instrumented. |
SNMP | sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}] |
Temperature | {#SNMPVALUE}: Temperature status | MIB: CISCO-ENVMON-MIB The current state of the test point being instrumented. |
SNMP | sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
{#SENSOR_INFO}: Fan is in critical state | Please check the fan unit |
count(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"critical\"}")=1 or count(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"shutdown\"}")=1 |
AVERAGE | |
{#SENSOR_INFO}: Fan is in warning state | Please check the fan unit |
count(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}],#1,"eq","{$FAN_WARN_STATUS:\"warning\"}")=1 or count(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}],#1,"eq","{$FAN_WARN_STATUS:\"notFunctioning\"}")=1 |
WARNING | Depends on: - {#SENSOR_INFO}: Fan is in critical state |
{#SENSOR_INFO}: Power supply is in critical state | Please check the power supply unit for errors |
count(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"critical\"}")=1 or count(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"shutdown\"}")=1 |
AVERAGE | |
{#SENSOR_INFO}: Power supply is in warning state | Please check the power supply unit for errors |
count(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}],#1,"eq","{$PSU_WARN_STATUS:\"warning\"}")=1 or count(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}],#1,"eq","{$PSU_WARN_STATUS:\"notFunctioning\"}")=1 |
WARNING | Depends on: - {#SENSOR_INFO}: Power supply is in critical state |
{#SNMPVALUE}: Temperature is above warning threshold | This trigger uses temperature sensor values as well as temperature sensor status if available |
avg(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)>{$TEMP_WARN:"{#SNMPVALUE}"} or last(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}])={$TEMP_WARN_STATUS} Recovery expression: max(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)<{$TEMP_WARN:"{#SNMPVALUE}"}-3 |
WARNING | Depends on: - {#SNMPVALUE}: Temperature is above critical threshold |
{#SNMPVALUE}: Temperature is above critical threshold | This trigger uses temperature sensor values as well as temperature sensor status if available |
avg(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"} or last(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}])={$TEMP_CRIT_STATUS} or last(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}])={$TEMP_DISASTER_STATUS} Recovery expression: max(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3 |
HIGH | |
{#SNMPVALUE}: Temperature is too low | - |
avg(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"} Recovery expression: min(/Cisco CISCO-ENVMON-MIB by SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3 |
AVERAGE |
Please report any issues with the template at https://support.zabbix.com.
For Zabbix version: 6.2 and higher.
Refer to the vendor documentation.
No specific Zabbix configuration is required.
Name | Description | Default |
---|---|---|
{$CPU.UTIL.CRIT} | - |
90 |
{$MEMORY.UTIL.MAX} | - |
90 |
There are no template links in this template.
Group | Name | Description | Type | Key and additional info |
---|---|---|---|---|
CPU | CPU utilization | MIB: FOUNDRY-SN-AGENT-MIB The statistics collection of 1 minute CPU utilization. |
SNMP | system.cpu.util[snAgGblCpuUtil1MinAvg.0] |
Memory | Memory utilization | MIB: FOUNDRY-SN-AGENT-MIB The system dynamic memory utilization, in unit of percentage. Deprecated: Refer to snAgSystemDRAMUtil. For NI platforms, refer to snAgentBrdMemoryUtil100thPercent. |
SNMP | vm.memory.util[snAgGblDynMemUtil.0] |
Name | Description | Expression | Severity | Dependencies and additional info |
---|---|---|---|---|
High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Brocade_Foundry Performance by SNMP/system.cpu.util[snAgGblCpuUtil1MinAvg.0],5m)>{$CPU.UTIL.CRIT} |
WARNING | |
High memory utilization | The system is running out of free memory. |
min(/Brocade_Foundry Performance by SNMP/vm.memory.util[snAgGblDynMemUtil.0],5m)>{$MEMORY.UTIL.MAX} |
AVERAGE |
Please report any issues with the template at https://support.zabbix.com.