Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_agent?at=release/7.4
This is an official Windows template. It requires Zabbix agent 7.4 or newer.
Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Windows OS according to Zabbix documentation.
| Name | Description | Default |
|---|---|---|
| {$AGENT.TIMEOUT} | Timeout after which agent is considered unavailable. Works only for agents reachable from Zabbix server/proxy (passive mode). |
3m |
| {$CPU.UTIL.CRIT} | The critical threshold of the CPU utilization expressed in %. |
90 |
| {$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 |
| {$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 |
| {$MEM.PAGE_TABLE_CRIT.MIN} | The warning threshold of the Free System Page Table Entries counter. |
5000 |
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(?:/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDRIVETYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
fixed |
| {$VFS.FS.FSDRIVETYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.DEV.UTIL.MAX.WARN} | The warning threshold of disk time utilization in percent. |
95 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in s) before the trigger fires. |
0.02 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in s) before the trigger fires. |
0.02 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
_Total |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$IFCONTROL} | Macro for the interface operational state for the "link down" trigger. Can be used with interface name as context. |
1 |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$NET.IF.IFNAME.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFNAME.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$NET.IF.IFALIAS.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$NET.IF.IFDESCR.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$SERVICE.NAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$SERVICE.NAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$SERVICE.STARTUPNAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:automatic|automatic delayed)$ |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:manual|disabled)$ |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version of Zabbix agent running | Zabbix agent | agent.version Preprocessing
|
|
| Host name of Zabbix agent running | Zabbix agent | agent.hostname Preprocessing
|
|
| Zabbix agent ping | The agent always returns "1" for this item. May be used in combination with |
Zabbix agent | agent.ping |
| Zabbix agent availability | Used for monitoring the availability status of the agent. |
Zabbix internal | zabbix[host,agent,available] |
| CPU utilization | CPU utilization expressed in %. |
Zabbix agent | system.cpu.util |
| CPU interrupt time | The processor information |
Zabbix agent | perf_counter_en["\Processor Information(_total)% Interrupt Time"] |
| 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 agent | perf_counter_en["\System\Context Switches/sec"] |
| CPU privileged time | The processor information |
Zabbix agent | perf_counter_en["\Processor Information(_total)% Privileged Time"] |
| 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. |
Zabbix agent | perf_counter_en["\Processor Information(_total)% DPC Time"] |
| CPU user time | The processor information |
Zabbix agent | perf_counter_en["\Processor Information(_total)% User Time"] |
| Number of cores | The number of logical processors available on the computer. |
Zabbix agent | wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"] |
| 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 agent | perf_counter_en["\System\Processor Queue Length"] |
| Used memory | Used memory in bytes. |
Zabbix agent | vm.memory.size[used] |
| Total memory | Total memory expressed in bytes. |
Zabbix agent | vm.memory.size[total] |
| Memory utilization | Memory utilization in %. |
Calculated | vm.memory.util |
| 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 agent | perf_counter_en["\Memory\Cache Bytes"] |
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Calculated | system.swap.free |
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Dependent item | system.swap.pfree Preprocessing
|
| Used swap space in % | The used space of swap volume/file in percent. |
Zabbix agent | perf_counter_en["\Paging file(_Total)% Usage"] |
| Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,total] |
| 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 be a memory leak or you running out of memory. |
Zabbix agent | perf_counter_en["\Memory\Free System Page Table Entries"] |
| 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 agent | perf_counter_en["\Memory\Page Faults/sec"] |
| 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 agent | perf_counter_en["\Memory\Pages/sec"] |
| 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). Consequently, Event ID 2019 is recorded in the system event log. |
Zabbix agent | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Get filesystems | The |
Zabbix agent | vfs.fs.get |
| Uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent | system.uptime |
| System local time | The local system time of the host. |
Zabbix agent | system.localtime |
| System name | The host name of the system. |
Zabbix agent | system.hostname Preprocessing
|
| System description | System description of the host. |
Zabbix agent | system.uname Preprocessing
|
| Number of processes | The number of processes. |
Zabbix agent | proc.num[] |
| Number of threads | The number of threads used by all running processes. |
Zabbix agent | perf_counter_en["\System\Threads"] |
| Operating system architecture | The architecture of the operating system. |
Zabbix agent | system.sw.arch Preprocessing
|
| Operating system | Zabbix agent | system.sw.os Preprocessing
|
|
| Windows: Network interfaces WMI get | Raw data of |
Zabbix agent | wmi.getall[root\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Zabbix agent is not available | For passive agents only, host availability is used with |
max(/Windows by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 |
Average | Manual close: Yes |
| Windows: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning | |
| Windows: CPU interrupt time is too high | The CPU Interrupt Time in the last 5 minutes exceeds |
min(/Windows by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU privileged time is too high | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
min(/Windows by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU queue length is too high | The CPU Queue Length in the last 5 minutes exceeds |
min(/Windows by Zabbix agent/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows by Zabbix agent/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
Warning | Depends on:
|
| Windows: High memory utilization | The system is running out of free memory. |
min(/Windows by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | |
| Windows: High swap space usage | This trigger is ignored, if there is no swap configured |
max(/Windows by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent/system.swap.size[,total])>0 |
Warning | Depends on:
|
| Windows: Number of free system page table entries is too low |
|
max(/Windows by Zabbix agent/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN} |
Warning | Depends on:
|
| Windows: The Memory Pages/sec is too high | The Memory Pages/sec in the last 5 minutes exceeds |
min(/Windows by Zabbix agent/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
Warning | Depends on:
|
| Windows: Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows by Zabbix agent/system.uptime)<10m |
Warning | Manual close: Yes |
| Windows: System time is out of sync | The host's system time is different from Zabbix server time. |
fuzzytime(/Windows by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0 |
Warning | Manual close: Yes |
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/system.hostname) and length(last(/Windows by Zabbix agent/system.hostname))>0 |
Info | Manual close: Yes |
| Windows: Operating system description has changed | The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/system.sw.os) and length(last(/Windows by Zabbix agent/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of filesystems of different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSLABEL}({#FSNAME})]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: FS [{#FSLABEL}({#FSNAME})]: Space is critically low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSLABEL}({#FSNAME})"} |
Average | Manual close: Yes |
| Windows: FS [{#FSLABEL}({#FSNAME})]: Space is low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSLABEL}({#FSNAME})"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Physical disks discovery | Discovery of installed physical disks. |
Zabbix agent | perf_instance_en.discovery[PhysicalDisk] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60] |
| {#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. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})% Idle Time",60] Preprocessing
|
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: {#DEVNAME}: Disk is overloaded | The disk appears to be under heavy load. |
min(/Windows by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\% Idle Time",60],15m)>{$VFS.DEV.UTIL.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
| Windows: {#DEVNAME}: Disk read request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
| Windows: {#DEVNAME}: Disk write request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovery of installed network interfaces. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | The number of incoming packets dropped on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | The number of outgoing packets dropped on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | The number of incoming packets with errors on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | The number of outgoing packets with errors on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
Dependent item | net.if.speed["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
Dependent item | net.if.type["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
Dependent item | net.if.status["{#IFGUID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by Zabbix agent/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by Zabbix agent/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by Zabbix agent/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])<0 and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0 and last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"])=2 |
Info | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"])<>2 and (last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"],#1)<>last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows services discovery | Used for the discovery of Windows services of different types as defined in the template's macros. |
Zabbix agent | service.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | Zabbix agent | service.info["{#SERVICE.NAME}",state] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running | The service has a state other than "Running" for the last three times. |
min(/Windows by Zabbix agent/service.info["{#SERVICE.NAME}",state],#3)<>0 |
Average |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_agent?at=release/7.2
This is an official Windows template. It requires Zabbix agent 7.2 or newer.
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Windows OS according to Zabbix documentation.
| Name | Description | Default |
|---|---|---|
| {$AGENT.TIMEOUT} | Timeout after which agent is considered unavailable. Works only for agents reachable from Zabbix server/proxy (passive mode). |
3m |
| {$CPU.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 expressed in %. |
90 |
| {$MEM.PAGE_TABLE_CRIT.MIN} | The warning threshold of the Free System Page Table Entries counter. |
5000 |
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$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 |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(?:/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDRIVETYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
fixed |
| {$VFS.FS.FSDRIVETYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
_Total |
| {$VFS.DEV.UTIL.MAX.WARN} | The warning threshold of disk time utilization in percent. |
95 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in s) before the trigger fires. |
0.02 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in s) before the trigger fires. |
0.02 |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$IFCONTROL} | Macro for the interface operational state for the "link down" trigger. Can be used with interface name as context. |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFNAME.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$NET.IF.IFALIAS.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$NET.IF.IFDESCR.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$SERVICE.NAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$SERVICE.NAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$SERVICE.STARTUPNAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:automatic|automatic delayed)$ |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:manual|disabled)$ |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version of Zabbix agent running | Zabbix agent | agent.version Preprocessing
|
|
| Host name of Zabbix agent running | Zabbix agent | agent.hostname Preprocessing
|
|
| Zabbix agent ping | The agent always returns "1" for this item. May be used in combination with |
Zabbix agent | agent.ping |
| Zabbix agent availability | Used for monitoring the availability status of the agent. |
Zabbix internal | zabbix[host,agent,available] |
| CPU utilization | CPU utilization expressed in %. |
Zabbix agent | system.cpu.util |
| CPU interrupt time | The processor information |
Zabbix agent | perf_counter_en["\Processor Information(_total)% Interrupt Time"] |
| 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 agent | perf_counter_en["\System\Context Switches/sec"] |
| CPU privileged time | The processor information |
Zabbix agent | perf_counter_en["\Processor Information(_total)% Privileged Time"] |
| 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. |
Zabbix agent | perf_counter_en["\Processor Information(_total)% DPC Time"] |
| CPU user time | The processor information |
Zabbix agent | perf_counter_en["\Processor Information(_total)% User Time"] |
| Number of cores | The number of logical processors available on the computer. |
Zabbix agent | wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"] |
| 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 agent | perf_counter_en["\System\Processor Queue Length"] |
| Used memory | Used memory in bytes. |
Zabbix agent | vm.memory.size[used] |
| Total memory | Total memory expressed in bytes. |
Zabbix agent | vm.memory.size[total] |
| Memory utilization | Memory utilization in %. |
Calculated | vm.memory.util |
| 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 agent | perf_counter_en["\Memory\Cache Bytes"] |
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Calculated | system.swap.free |
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Dependent item | system.swap.pfree Preprocessing
|
| Used swap space in % | The used space of swap volume/file in percent. |
Zabbix agent | perf_counter_en["\Paging file(_Total)% Usage"] |
| Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,total] |
| 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 be a memory leak or you running out of memory. |
Zabbix agent | perf_counter_en["\Memory\Free System Page Table Entries"] |
| 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 agent | perf_counter_en["\Memory\Page Faults/sec"] |
| 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 agent | perf_counter_en["\Memory\Pages/sec"] |
| 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). Consequently, Event ID 2019 is recorded in the system event log. |
Zabbix agent | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Get filesystems | The |
Zabbix agent | vfs.fs.get |
| Uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent | system.uptime |
| System local time | The local system time of the host. |
Zabbix agent | system.localtime |
| System name | The host name of the system. |
Zabbix agent | system.hostname Preprocessing
|
| System description | System description of the host. |
Zabbix agent | system.uname Preprocessing
|
| Number of processes | The number of processes. |
Zabbix agent | proc.num[] |
| Number of threads | The number of threads used by all running processes. |
Zabbix agent | perf_counter_en["\System\Threads"] |
| Operating system architecture | The architecture of the operating system. |
Zabbix agent | system.sw.arch Preprocessing
|
| Operating system | Zabbix agent | system.sw.os Preprocessing
|
|
| Windows: Network interfaces WMI get | Raw data of |
Zabbix agent | wmi.getall[root\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Zabbix agent is not available | For passive agents only, host availability is used with |
max(/Windows by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 |
Average | Manual close: Yes |
| Windows: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning | |
| Windows: CPU interrupt time is too high | The CPU Interrupt Time in the last 5 minutes exceeds |
min(/Windows by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU privileged time is too high | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
min(/Windows by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU queue length is too high | The CPU Queue Length in the last 5 minutes exceeds |
min(/Windows by Zabbix agent/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows by Zabbix agent/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
Warning | Depends on:
|
| Windows: High memory utilization | The system is running out of free memory. |
min(/Windows by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | |
| Windows: High swap space usage | This trigger is ignored, if there is no swap configured |
max(/Windows by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent/system.swap.size[,total])>0 |
Warning | Depends on:
|
| Windows: Number of free system page table entries is too low |
|
max(/Windows by Zabbix agent/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN} |
Warning | Depends on:
|
| Windows: The Memory Pages/sec is too high | The Memory Pages/sec in the last 5 minutes exceeds |
min(/Windows by Zabbix agent/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
Warning | Depends on:
|
| Windows: Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows by Zabbix agent/system.uptime)<10m |
Warning | Manual close: Yes |
| Windows: System time is out of sync | The host's system time is different from Zabbix server time. |
fuzzytime(/Windows by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0 |
Warning | Manual close: Yes |
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/system.hostname) and length(last(/Windows by Zabbix agent/system.hostname))>0 |
Info | Manual close: Yes |
| Windows: Operating system description has changed | The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/system.sw.os) and length(last(/Windows by Zabbix agent/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of filesystems of different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSLABEL}({#FSNAME})]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: FS [{#FSLABEL}({#FSNAME})]: Space is critically low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSLABEL}({#FSNAME})"} |
Average | Manual close: Yes |
| Windows: FS [{#FSLABEL}({#FSNAME})]: Space is low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSLABEL}({#FSNAME})"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Physical disks discovery | Discovery of installed physical disks. |
Zabbix agent | perf_instance_en.discovery[PhysicalDisk] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60] |
| {#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. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})% Idle Time",60] Preprocessing
|
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: {#DEVNAME}: Disk is overloaded | The disk appears to be under heavy load. |
min(/Windows by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\% Idle Time",60],15m)>{$VFS.DEV.UTIL.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
| Windows: {#DEVNAME}: Disk read request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
| Windows: {#DEVNAME}: Disk write request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovery of installed network interfaces. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | The number of incoming packets dropped on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | The number of outgoing packets dropped on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | The number of incoming packets with errors on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | The number of outgoing packets with errors on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
Dependent item | net.if.speed["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
Dependent item | net.if.type["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
Dependent item | net.if.status["{#IFGUID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by Zabbix agent/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by Zabbix agent/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by Zabbix agent/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])<0 and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0 and last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"])=2 |
Info | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"])<>2 and (last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"],#1)<>last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows services discovery | Used for the discovery of Windows services of different types as defined in the template's macros. |
Zabbix agent | service.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | Zabbix agent | service.info["{#SERVICE.NAME}",state] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running | The service has a state other than "Running" for the last three times. |
min(/Windows by Zabbix agent/service.info["{#SERVICE.NAME}",state],#3)<>0 |
Average |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_agent?at=release/7.0
This is an official Windows template. It requires Zabbix agent 7.0 or newer.
Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Windows OS according to Zabbix documentation.
| Name | Description | Default |
|---|---|---|
| {$AGENT.TIMEOUT} | Timeout after which agent is considered unavailable. Works only for agents reachable from Zabbix server/proxy (passive mode). |
3m |
| {$CPU.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 expressed in %. |
90 |
| {$MEM.PAGE_TABLE_CRIT.MIN} | The warning threshold of the Free System Page Table Entries counter. |
5000 |
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$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 |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(?:/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDRIVETYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
fixed |
| {$VFS.FS.FSDRIVETYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
_Total |
| {$VFS.DEV.UTIL.MAX.WARN} | The warning threshold of disk time utilization in percent. |
95 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in s) before the trigger fires. |
0.02 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in s) before the trigger fires. |
0.02 |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$IFCONTROL} | Macro for the interface operational state for the "link down" trigger. Can be used with interface name as context. |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFNAME.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$NET.IF.IFALIAS.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$NET.IF.IFDESCR.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$SERVICE.NAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$SERVICE.NAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$SERVICE.STARTUPNAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:automatic|automatic delayed)$ |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:manual|disabled)$ |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version of Zabbix agent running | Zabbix agent | agent.version Preprocessing
|
|
| Host name of Zabbix agent running | Zabbix agent | agent.hostname Preprocessing
|
|
| Zabbix agent ping | The agent always returns "1" for this item. May be used in combination with |
Zabbix agent | agent.ping |
| Zabbix agent availability | Used for monitoring the availability status of the agent. |
Zabbix internal | zabbix[host,agent,available] |
| CPU utilization | CPU utilization expressed in %. |
Zabbix agent | system.cpu.util |
| CPU interrupt time | The processor information |
Zabbix agent | perf_counter_en["\Processor Information(_total)% Interrupt Time"] |
| 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 agent | perf_counter_en["\System\Context Switches/sec"] |
| CPU privileged time | The processor information |
Zabbix agent | perf_counter_en["\Processor Information(_total)% Privileged Time"] |
| 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. |
Zabbix agent | perf_counter_en["\Processor Information(_total)% DPC Time"] |
| CPU user time | The processor information |
Zabbix agent | perf_counter_en["\Processor Information(_total)% User Time"] |
| Number of cores | The number of logical processors available on the computer. |
Zabbix agent | wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"] |
| 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 agent | perf_counter_en["\System\Processor Queue Length"] |
| Used memory | Used memory in bytes. |
Zabbix agent | vm.memory.size[used] |
| Total memory | Total memory expressed in bytes. |
Zabbix agent | vm.memory.size[total] |
| Memory utilization | Memory utilization in %. |
Calculated | vm.memory.util |
| 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 agent | perf_counter_en["\Memory\Cache Bytes"] |
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Calculated | system.swap.free |
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Dependent item | system.swap.pfree Preprocessing
|
| Used swap space in % | The used space of swap volume/file in percent. |
Zabbix agent | perf_counter_en["\Paging file(_Total)% Usage"] |
| Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,total] |
| 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 be a memory leak or you running out of memory. |
Zabbix agent | perf_counter_en["\Memory\Free System Page Table Entries"] |
| 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 agent | perf_counter_en["\Memory\Page Faults/sec"] |
| 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 agent | perf_counter_en["\Memory\Pages/sec"] |
| 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). Consequently, Event ID 2019 is recorded in the system event log. |
Zabbix agent | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Get filesystems | The |
Zabbix agent | vfs.fs.get |
| Uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent | system.uptime |
| System local time | The local system time of the host. |
Zabbix agent | system.localtime |
| System name | The host name of the system. |
Zabbix agent | system.hostname Preprocessing
|
| System description | System description of the host. |
Zabbix agent | system.uname Preprocessing
|
| Number of processes | The number of processes. |
Zabbix agent | proc.num[] |
| Number of threads | The number of threads used by all running processes. |
Zabbix agent | perf_counter_en["\System\Threads"] |
| Operating system architecture | The architecture of the operating system. |
Zabbix agent | system.sw.arch Preprocessing
|
| Operating system | Zabbix agent | system.sw.os Preprocessing
|
|
| Windows: Network interfaces WMI get | Raw data of |
Zabbix agent | wmi.getall[root\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Zabbix agent is not available | For passive agents only, host availability is used with |
max(/Windows by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 |
Average | Manual close: Yes |
| Windows: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning | |
| Windows: CPU interrupt time is too high | The CPU Interrupt Time in the last 5 minutes exceeds |
min(/Windows by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU privileged time is too high | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
min(/Windows by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU queue length is too high | The CPU Queue Length in the last 5 minutes exceeds |
min(/Windows by Zabbix agent/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows by Zabbix agent/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
Warning | Depends on:
|
| Windows: High memory utilization | The system is running out of free memory. |
min(/Windows by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | |
| Windows: High swap space usage | This trigger is ignored, if there is no swap configured |
max(/Windows by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent/system.swap.size[,total])>0 |
Warning | Depends on:
|
| Windows: Number of free system page table entries is too low |
|
max(/Windows by Zabbix agent/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN} |
Warning | Depends on:
|
| Windows: The Memory Pages/sec is too high | The Memory Pages/sec in the last 5 minutes exceeds |
min(/Windows by Zabbix agent/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
Warning | Depends on:
|
| Windows: Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows by Zabbix agent/system.uptime)<10m |
Warning | Manual close: Yes |
| Windows: System time is out of sync | The host's system time is different from Zabbix server time. |
fuzzytime(/Windows by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0 |
Warning | Manual close: Yes |
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/system.hostname) and length(last(/Windows by Zabbix agent/system.hostname))>0 |
Info | Manual close: Yes |
| Windows: Operating system description has changed | The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/system.sw.os) and length(last(/Windows by Zabbix agent/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of filesystems of different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSLABEL}({#FSNAME})]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: FS [{#FSLABEL}({#FSNAME})]: Space is critically low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSLABEL}({#FSNAME})"} |
Average | Manual close: Yes |
| Windows: FS [{#FSLABEL}({#FSNAME})]: Space is low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSLABEL}({#FSNAME})"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Physical disks discovery | Discovery of installed physical disks. |
Zabbix agent | perf_instance_en.discovery[PhysicalDisk] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60] |
| {#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. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})% Idle Time",60] Preprocessing
|
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: {#DEVNAME}: Disk is overloaded | The disk appears to be under heavy load. |
min(/Windows by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\% Idle Time",60],15m)>{$VFS.DEV.UTIL.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
| Windows: {#DEVNAME}: Disk read request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
| Windows: {#DEVNAME}: Disk write request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovery of installed network interfaces. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | The number of incoming packets dropped on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | The number of outgoing packets dropped on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | The number of incoming packets with errors on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | The number of outgoing packets with errors on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
Dependent item | net.if.speed["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
Dependent item | net.if.type["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
Dependent item | net.if.status["{#IFGUID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by Zabbix agent/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by Zabbix agent/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by Zabbix agent/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])<0 and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0 and last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"])=2 |
Info | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"])<>2 and (last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"],#1)<>last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows services discovery | Used for the discovery of Windows services of different types as defined in the template's macros. |
Zabbix agent | service.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | Zabbix agent | service.info["{#SERVICE.NAME}",state] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running | The service has a state other than "Running" for the last three times. |
min(/Windows by Zabbix agent/service.info["{#SERVICE.NAME}",state],#3)<>0 |
Average |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_agent?at=release/6.4
This is an official Windows template. It requires Zabbix agent 6.4 or newer.
Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Windows OS according to Zabbix documentation.
| Name | Description | Default |
|---|---|---|
| {$AGENT.TIMEOUT} | Timeout after which agent is considered unavailable. Works only for agents reachable from Zabbix server/proxy (passive mode). |
3m |
| {$CPU.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 expressed in %. |
90 |
| {$MEM.PAGE_TABLE_CRIT.MIN} | The warning threshold of the Free System Page Table Entries counter. |
5000 |
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$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 |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(?:/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDRIVETYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
fixed |
| {$VFS.FS.FSDRIVETYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
_Total |
| {$VFS.DEV.UTIL.MAX.WARN} | The warning threshold of disk time utilization in percent. |
95 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in s) before the trigger fires. |
0.02 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in s) before the trigger fires. |
0.02 |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$IFCONTROL} | Macro for the interface operational state for the "link down" trigger. Can be used with interface name as context. |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFNAME.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$NET.IF.IFALIAS.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$NET.IF.IFDESCR.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$SERVICE.NAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$SERVICE.NAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$SERVICE.STARTUPNAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:automatic|automatic delayed)$ |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:manual|disabled)$ |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows: Version of Zabbix agent running | Zabbix agent | agent.version Preprocessing
|
|
| Windows: Host name of Zabbix agent running | Zabbix agent | agent.hostname Preprocessing
|
|
| Windows: Zabbix agent ping | The agent always returns 1 for this item. It could be used in combination with nodata() for availability check. |
Zabbix agent | agent.ping |
| Windows: Zabbix agent availability | Monitoring the availability status of the agent. |
Zabbix internal | zabbix[host,agent,available] |
| Windows: CPU utilization | CPU utilization expressed in %. |
Zabbix agent | system.cpu.util |
| Windows: CPU interrupt time | The processor information |
Zabbix agent | perf_counter_en["\Processor Information(_total)% Interrupt Time"] |
| Windows: 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 agent | perf_counter_en["\System\Context Switches/sec"] |
| Windows: CPU privileged time | The processor information |
Zabbix agent | perf_counter_en["\Processor Information(_total)% Privileged Time"] |
| Windows: 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. |
Zabbix agent | perf_counter_en["\Processor Information(_total)% DPC Time"] |
| Windows: CPU user time | The processor information |
Zabbix agent | perf_counter_en["\Processor Information(_total)% User Time"] |
| Windows: Number of cores | The number of logical processors available on the computer. |
Zabbix agent | wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"] |
| Windows: 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 agent | perf_counter_en["\System\Processor Queue Length"] |
| Windows: Used memory | Used memory in bytes. |
Zabbix agent | vm.memory.size[used] |
| Windows: Total memory | Total memory expressed in bytes. |
Zabbix agent | vm.memory.size[total] |
| Windows: Memory utilization | Memory utilization in %. |
Calculated | vm.memory.util |
| Windows: 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 agent | perf_counter_en["\Memory\Cache Bytes"] |
| Windows: Free swap space | The free space of the swap volume/file expressed in bytes. |
Calculated | system.swap.free |
| Windows: Free swap space in % | The free space of the swap volume/file expressed in %. |
Dependent item | system.swap.pfree Preprocessing
|
| Windows: Used swap space in % | The used space of swap volume/file in percent. |
Zabbix agent | perf_counter_en["\Paging file(_Total)% Usage"] |
| Windows: Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,total] |
| Windows: 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 be a memory leak or you running out of memory. |
Zabbix agent | perf_counter_en["\Memory\Free System Page Table Entries"] |
| Windows: 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 agent | perf_counter_en["\Memory\Page Faults/sec"] |
| Windows: 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 agent | perf_counter_en["\Memory\Pages/sec"] |
| Windows: 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). Consequently, Event ID 2019 is recorded in the system event log. |
Zabbix agent | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Windows: Get filesystems | The |
Zabbix agent | vfs.fs.get |
| Windows: Uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent | system.uptime |
| Windows: System local time | The local system time of the host. |
Zabbix agent | system.localtime |
| Windows: System name | The host name of the system. |
Zabbix agent | system.hostname Preprocessing
|
| Windows: System description | System description of the host. |
Zabbix agent | system.uname Preprocessing
|
| Windows: Number of processes | The number of processes. |
Zabbix agent | proc.num[] |
| Windows: Number of threads | The number of threads used by all running processes. |
Zabbix agent | perf_counter_en["\System\Threads"] |
| Windows: Operating system architecture | The architecture of the operating system. |
Zabbix agent | system.sw.arch Preprocessing
|
| Windows: Operating system | Zabbix agent | system.sw.os Preprocessing
|
|
| Windows: Network interfaces WMI get | Raw data of |
Zabbix agent | wmi.getall[root\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Zabbix agent is not available | For passive only agents, host availability is used with {$AGENT.TIMEOUT} as time threshold. |
max(/Windows by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 |
Average | Manual close: Yes |
| Windows: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning | |
| Windows: CPU interrupt time is too high | The CPU Interrupt Time in the last 5 minutes exceeds |
min(/Windows by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU privileged time is too high | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
min(/Windows by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU queue length is too high | The CPU Queue Length in the last 5 minutes exceeds |
min(/Windows by Zabbix agent/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows by Zabbix agent/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
Warning | Depends on:
|
| Windows: High memory utilization | The system is running out of free memory. |
min(/Windows by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | |
| Windows: High swap space usage | This trigger is ignored, if there is no swap configured |
max(/Windows by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent/system.swap.size[,total])>0 |
Warning | Depends on:
|
| Windows: Number of free system page table entries is too low |
|
max(/Windows by Zabbix agent/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN} |
Warning | Depends on:
|
| Windows: The Memory Pages/sec is too high | The Memory Pages/sec in the last 5 minutes exceeds |
min(/Windows by Zabbix agent/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
Warning | Depends on:
|
| Windows: Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows by Zabbix agent/system.uptime)<10m |
Warning | Manual close: Yes |
| Windows: System time is out of sync | The host's system time is different from Zabbix server time. |
fuzzytime(/Windows by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0 |
Warning | Manual close: Yes |
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/system.hostname) and length(last(/Windows by Zabbix agent/system.hostname))>0 |
Info | Manual close: Yes |
| Windows: Operating system description has changed | The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/system.sw.os) and length(last(/Windows by Zabbix agent/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of filesystems of different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSLABEL}({#FSNAME})]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| FS [{#FSLABEL}({#FSNAME})]: Space is critically low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSLABEL}({#FSNAME})"} |
Average | Manual close: Yes |
| FS [{#FSLABEL}({#FSNAME})]: Space is low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSLABEL}({#FSNAME})"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Physical disks discovery | Discovery of installed physical disks. |
Zabbix agent | perf_instance_en.discovery[PhysicalDisk] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60] |
| {#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. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})% Idle Time",60] Preprocessing
|
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60] |
| {#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 agent | perf_counter_en["\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 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 | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows 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 the disk {#DEVNAME} saturation. |
min(/Windows by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovery of installed network interfaces. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | The number of incoming packets dropped on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | The number of outgoing packets dropped on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | The number of incoming packets with errors on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | The number of outgoing packets with errors on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
Dependent item | net.if.speed["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
Dependent item | net.if.type["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
Dependent item | net.if.status["{#IFGUID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by Zabbix agent/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by Zabbix agent/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by Zabbix agent/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])<0 and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0 and last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"])=2 |
Info | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"])<>2 and (last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"],#1)<>last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows services discovery | Used for the discovery of Windows services of different types as defined in the template's macros. |
Zabbix agent | service.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | Zabbix agent | 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 by Zabbix agent/service.info["{#SERVICE.NAME}",state],#3)<>0 |
Average |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_agent?at=release/6.2
For Zabbix version: 6.2 and higher. New official Windows template. Requires agent of Zabbix 4.4 and newer.
This template was tested on:
Install Zabbix agent on Windows OS according to Zabbix documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$AGENT.TIMEOUT} | Timeout after which agent is considered unavailable. Works only for agents reachable from Zabbix server/proxy (passive mode). |
3m |
| {$CPU.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 |
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | - |
90 |
| {$IFCONTROL} | - |
1 |
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$MEM.PAGE_TABLE_CRIT.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 |
| {$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 |
| {$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 |
| {$SERVICE.STARTUPNAME.MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:automatic |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:manual |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
20 |
| {$SYSTEM.FUZZYTIME.MAX} | The threshold for difference of system time in seconds. |
60 |
| {$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 |
| {$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 |
| {$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} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX - {#FSDRIVETYPE} MATCHES_REGEX - {#FSDRIVETYPE} NOT_MATCHES_REGEX |
| Network interfaces discovery | Discovery of installed network interfaces. |
DEPENDENT | net.if.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX - {#IFDESCR} MATCHES_REGEX - {#IFDESCR} NOT_MATCHES_REGEX - {#IFALIAS} MATCHES_REGEX - {#IFALIAS} NOT_MATCHES_REGEX |
| Physical disks discovery | Discovery of installed physical disks. |
ZABBIX_PASSIVE | perf_instance_en.discovery[PhysicalDisk] Preprocessing: - STR_REPLACE: Filter: AND- {#DEVNAME} MATCHES_REGEX - {#DEVNAME} NOT_MATCHES_REGEX |
| Windows services discovery | Discovery of Windows services of different types as defined in template's macros. |
ZABBIX_PASSIVE | service.discovery Filter: AND- {#SERVICE.NAME} MATCHES_REGEX - {#SERVICE.NAME} NOT_MATCHES_REGEX - {#SERVICE.STARTUPNAME} MATCHES_REGEX - {#SERVICE.STARTUPNAME} NOT_MATCHES_REGEX |
| 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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\System\Processor Queue Length"] |
| 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] |
| General | System local time | System local time of the host. |
ZABBIX_PASSIVE | system.localtime |
| General | System name | System host name. |
ZABBIX_PASSIVE | system.hostname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | System description of the host. |
ZABBIX_PASSIVE | system.uname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 | perf_counter_en["\System\Threads"] |
| Inventory | Operating system architecture | Operating system architecture of the host. |
ZABBIX_PASSIVE | system.sw.arch Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Monitoring agent | Version of Zabbix agent running | - |
ZABBIX_PASSIVE | agent.version Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Monitoring agent | Host name of Zabbix agent running | - |
ZABBIX_PASSIVE | agent.hostname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Monitoring agent | Zabbix agent ping | The agent always returns 1 for this item. It could be used in combination with nodata() for availability check. |
ZABBIX_PASSIVE | agent.ping |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
ZABBIX_PASSIVE | net.if.in["{#IFGUID}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
ZABBIX_PASSIVE | net.if.out["{#IFGUID}"] Preprocessing: - CHANGE_PER_SECOND - 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
DEPENDENT | net.if.speed["{#IFGUID}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
DEPENDENT | net.if.type["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
DEPENDENT | net.if.status["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Services | State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | - |
ZABBIX_PASSIVE | service.info["{#SERVICE.NAME}",state] |
| Status | Uptime | System uptime in 'N days, hh:mm:ss' format. |
ZABBIX_PASSIVE | system.uptime |
| Status | Zabbix agent availability | Monitoring agent availability status |
INTERNAL | zabbix[host,agent,available] |
| Storage | {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
ZABBIX_PASSIVE | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| Storage | {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
ZABBIX_PASSIVE | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
| 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 win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 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 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 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 by Zabbix agent/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows by Zabbix agent/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
WARNING | Depends on: - High CPU utilization |
| {#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 by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Windows by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Windows by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Windows 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 by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Windows by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Windows by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Windows by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
WARNING | Manual close: YES Depends on: - {#FSLABEL}({#FSNAME}): Disk space is critically low |
| System time is out of sync | The host system time is different from the Zabbix server time. |
fuzzytime(/Windows 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 by Zabbix agent/system.hostname,#1)<>last(/Windows by Zabbix agent/system.hostname,#2) and length(last(/Windows by Zabbix agent/system.hostname))>0 |
INFO | Manual close: YES |
| High memory utilization | The system is running out of free memory. |
min(/Windows 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 by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows 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.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak. |
max(/Windows 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 by Zabbix agent/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
WARNING | Depends on: - High memory utilization |
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The network interface utilization is close to its estimated maximum bandwidth. |
(avg(/Windows by Zabbix agent/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0Recovery expression: avg(/Windows by Zabbix agent/net.if.in["{#IFGUID}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"]) and avg(/Windows by Zabbix agent/net.if.out["{#IFGUID}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows 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 by Zabbix agent/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by Zabbix agent/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} Recovery expression: max(/Windows by Zabbix agent/net.if.in["{#IFGUID}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Windows 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 by Zabbix agent/net.if.speed["{#IFGUID}"])<0 and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0 and last(/Windows 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 by Zabbix agent/net.if.status["{#IFGUID}"])<>2 and (last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"],#1)<>last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"],#2))Recovery expression: last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"])=2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
| "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running | The service has a state other than "Running" for the last three times. |
min(/Windows by Zabbix agent/service.info["{#SERVICE.NAME}",state],#3)<>0 |
AVERAGE | |
| Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows by Zabbix agent/system.uptime)<10m |
WARNING | Manual close: YES |
| Zabbix agent is not available | For passive only agents, host availability is used with {$AGENT.TIMEOUT} as time threshold. |
max(/Windows by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 |
AVERAGE | Manual close: YES |
| {#DEVNAME}: Disk is overloaded | The disk appears to be under heavy load |
min(/Windows 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 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 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.
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_agent?at=release/6.0
New official Windows template. Requires agent of Zabbix 6.0 and newer.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Windows OS according to Zabbix documentation.
| Name | Description | Default |
|---|---|---|
| {$AGENT.TIMEOUT} | Timeout after which agent is considered unavailable. Works only for agents reachable from Zabbix server/proxy (passive mode). |
3m |
| {$CPU.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 expressed in %. |
90 |
| {$MEM.PAGE_TABLE_CRIT.MIN} | The warning threshold of the Free System Page Table Entries counter. |
5000 |
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$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 |
| {$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.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.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 |
| {$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.UTIL.MAX.WARN} | The warning threshold of disk time utilization in percent. |
95 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in s) before the trigger would fire. |
0.02 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in s) before the trigger would fire. |
0.02 |
| {$SYSTEM.FUZZYTIME.MAX} | The upper threshold for difference of system time. |
60s |
| {$SYSTEM.FUZZYTIME.MIN} | The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping. |
10s |
| {$IFCONTROL} | 1 |
|
| {$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. |
Macro too long. Please see the template. |
| {$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 |
| {$IF.UTIL.MAX} | 90 |
|
| {$IF.ERRORS.WARN} | 2 |
|
| {$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. |
Macro too long. Please see the template. |
| {$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)$ |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows: Version of Zabbix agent running | Zabbix agent | agent.version Preprocessing
|
|
| Windows: Host name of Zabbix agent running | Zabbix agent | agent.hostname Preprocessing
|
|
| Windows: Zabbix agent ping | The agent always returns 1 for this item. It could be used in combination with nodata() for availability check. |
Zabbix agent | agent.ping |
| Windows: Zabbix agent availability | Monitoring the availability status of the agent. |
Zabbix internal | zabbix[host,agent,available] |
| Windows: CPU utilization | The CPU utilization expressed in %. |
Zabbix agent | system.cpu.util |
| Windows: 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 agent | perf_counter_en["\Processor Information(_total)% Interrupt Time"] |
| Windows: 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 agent | perf_counter_en["\System\Context Switches/sec"] |
| Windows: 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 agent | perf_counter_en["\Processor Information(_total)% Privileged Time"] |
| Windows: 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 agent | perf_counter_en["\Processor Information(_total)% DPC Time"] |
| Windows: 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 agent | perf_counter_en["\Processor Information(_total)% User Time"] |
| Windows: Number of cores | The number of logical processors available on the computer. |
Zabbix agent | wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"] |
| Windows: 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 agent | perf_counter_en["\System\Processor Queue Length"] |
| Windows: Used memory | Used memory in bytes. |
Zabbix agent | vm.memory.size[used] |
| Windows: Total memory | The total memory expressed in bytes. |
Zabbix agent | vm.memory.size[total] |
| Windows: Memory utilization | Memory utilization in %. |
Calculated | vm.memory.util |
| Windows: 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 agent | perf_counter_en["\Memory\Cache Bytes"] |
| Windows: Free swap space | The free space of the swap volume/file expressed in bytes. |
Calculated | system.swap.free |
| Windows: Free swap space in % | The free space of the swap volume/file expressed in %. |
Dependent item | system.swap.pfree Preprocessing
|
| Windows: Used swap space in % | The used space of swap volume/file in percent. |
Zabbix agent | perf_counter_en["\Paging file(_Total)% Usage"] |
| Windows: Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent | system.swap.size[,total] |
| Windows: 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 agent | perf_counter_en["\Memory\Free System Page Table Entries"] |
| Windows: 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 agent | perf_counter_en["\Memory\Page Faults/sec"] |
| Windows: 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 agent | perf_counter_en["\Memory\Pages/sec"] |
| Windows: 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 agent | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Windows: Uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent | system.uptime |
| Windows: System local time | The local system time of the host. |
Zabbix agent | system.localtime |
| Windows: System name | The host name of the system. |
Zabbix agent | system.hostname Preprocessing
|
| Windows: System description | System description of the host. |
Zabbix agent | system.uname Preprocessing
|
| Windows: Number of processes | The number of processes. |
Zabbix agent | proc.num[] |
| Windows: Number of threads | The number of threads used by all running processes. |
Zabbix agent | perf_counter_en["\System\Threads"] |
| Windows: Operating system architecture | The architecture of the operating system. |
Zabbix agent | system.sw.arch Preprocessing
|
| Windows: Network interfaces WMI get | Raw data of win32_networkadapter. |
Zabbix agent | wmi.getall[root\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Zabbix agent is not available | For passive only agents, host availability is used with {$AGENT.TIMEOUT} as time threshold. |
max(/Windows by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 |
Average | Manual close: Yes |
| Windows: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/Windows by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning | |
| Windows: CPU interrupt time is too high | "The CPU Interrupt Time in the last 5 minutes exceeds {$CPU.INTERRUPT.CRIT.MAX}%." |
min(/Windows by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU privileged time is too high | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
min(/Windows by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX} |
Warning | Depends on:
|
| Windows: 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 by Zabbix agent/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows by Zabbix agent/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
Warning | Depends on:
|
| Windows: High memory utilization | The system is running out of free memory. |
min(/Windows by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | |
| Windows: High swap space usage | This trigger is ignored, if there is no swap configured |
max(/Windows by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent/system.swap.size[,total])>0 |
Warning | Depends on:
|
| Windows: Number of free system page table entries is too low | The Memory Free System Page Table Entries is less than {$MEM.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak. |
max(/Windows by Zabbix agent/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN} |
Warning | Depends on:
|
| Windows: 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 by Zabbix agent/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
Warning | Depends on:
|
| Windows: Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows by Zabbix agent/system.uptime)<10m |
Warning | Manual close: Yes |
| Windows: System time is out of sync | The host's system time is different from Zabbix server time. |
fuzzytime(/Windows by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0 |
Warning | Manual close: Yes |
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/system.hostname) and length(last(/Windows by Zabbix agent/system.hostname))>0 |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of file systems of different types. |
Zabbix agent | vfs.fs.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FSLABEL}({#FSNAME}): Used space | Used storage in bytes |
Zabbix agent | vfs.fs.size[{#FSNAME},used] |
| {#FSLABEL}({#FSNAME}): Total space | Total space in bytes |
Zabbix agent | vfs.fs.size[{#FSNAME},total] |
| {#FSLABEL}({#FSNAME}): Space utilization | Space utilization in % for {#FSNAME} |
Zabbix agent | vfs.fs.size[{#FSNAME},pused] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSLABEL}({#FSNAME}): Disk space is critically low | The volume's space usage exceeds the |
last(/Windows by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| {#FSLABEL}({#FSNAME}): Disk space is low | The volume's space usage exceeds the |
last(/Windows by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Physical disks discovery | Discovery of installed physical disks. |
Zabbix agent | perf_instance_en.discovery[PhysicalDisk] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60] |
| {#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. |
Zabbix agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})% Idle Time",60] Preprocessing
|
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60] |
| {#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 agent | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60] |
| {#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 agent | perf_counter_en["\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 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 | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows 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 the disk {#DEVNAME} saturation. |
min(/Windows by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
Warning | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovery of installed network interfaces. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | The number of incoming packets dropped on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | The number of outgoing packets dropped on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | The number of incoming packets with errors on the network interface. |
Zabbix agent | net.if.in["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | The number of outgoing packets with errors on the network interface. |
Zabbix agent | net.if.out["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
Dependent item | net.if.speed["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
Dependent item | net.if.type["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
Dependent item | net.if.status["{#IFGUID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by Zabbix agent/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by Zabbix agent/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by Zabbix agent/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])<0 and last(/Windows by Zabbix agent/net.if.speed["{#IFGUID}"])>0 and last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"])=2 |
Info | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"])<>2 and (last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"],#1)<>last(/Windows by Zabbix agent/net.if.status["{#IFGUID}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows services discovery | Discovery of Windows services of different types as defined in template's macros. |
Zabbix agent | service.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | Zabbix agent | 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 by Zabbix agent/service.info["{#SERVICE.NAME}",state],#3)<>0 |
Average |
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_agent?at=release/5.4
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\System\Processor Queue Length"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | 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 (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m) | "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 (over {$CPU.UTIL.CRIT}% for 5m) |
| CPU privileged time is too high (over {$CPU.PRIV.CRIT.MAX}% for 5m) | 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 (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m) - High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |
| CPU queue length is too high (over {$CPU.QUEUE.CRIT.MAX} for 5m) | 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 (over {$CPU.UTIL.CRIT}% for 5m) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$MEM.PAGE_TABLE_CRIT.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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) | The system is running out of free memory. |
min(/Windows memory by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | |
| High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free) | This trigger is ignored, if there is no swap configured |
min(/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 (>{$MEMORY.UTIL.MAX}% for 5m) |
| Number of free system page table entries is too low (less {$MEM.PAGE_TABLE_CRIT.MIN} for 5m) | The Memory Free System Page Table Entries is less than {$MEM.PAGE_TABLE_CRIT.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 (>{$MEMORY.UTIL.MAX}% for 5m) |
| The Memory Pages/sec is too high (over {$MEM.PAGE_SEC.CRIT.MAX} for 5m) | 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 (>{$MEMORY.UTIL.MAX}% for 5m) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.FS.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 |
| {$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} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX - {#FSDRIVETYPE} MATCHES_REGEX - {#FSDRIVETYPE} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Filesystems | {#FSNAME}: Used space | Used storage in Bytes |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},used] |
| Filesystems | {#FSNAME}: Total space | Total space in Bytes |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},total] |
| Filesystems | {#FSNAME}: Space utilization | Space utilization in % for {#FSNAME} |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},pused] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than 5G. - The disk will be full in less than 24 hours. |
last(/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]))<5G or timeleft(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than 10G. - The disk will be full in less than 24 hours. |
last(/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]))<10G or timeleft(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in 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 | perf_instance_en.discovery[PhysicalDisk] Preprocessing: - STR_REPLACE: Filter: AND- {#DEVNAME} MATCHES_REGEX - {#DEVNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Storage | {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
ZABBIX_PASSIVE | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| Storage | {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
ZABBIX_PASSIVE | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DEVNAME}: Disk is overloaded (util > {$VFS.DEV.UTIL.MAX.WARN}% for 15m) | 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 (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}s for 15m - {#DEVNAME}: Disk write request responses are too high (write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}s for 15m) |
| {#DEVNAME}: Disk read request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}s for 15m | 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 (write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}s for 15m) | 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: 5.4 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: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | System description of the host. |
ZABBIX_PASSIVE | system.uname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 | perf_counter_en["\System\Threads"] |
| Inventory | Operating system architecture | Operating system architecture of the host. |
ZABBIX_PASSIVE | system.sw.arch Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s) | 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 (new name: {ITEM.VALUE}) | 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 (uptime < 10m) | 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: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | - |
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 |
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: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX - {#IFDESCR} MATCHES_REGEX - {#IFDESCR} NOT_MATCHES_REGEX - {#IFALIAS} MATCHES_REGEX - {#IFALIAS} NOT_MATCHES_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: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
ZABBIX_PASSIVE | net.if.out["{#IFGUID}"] Preprocessing: - CHANGE_PER_SECOND - 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
DEPENDENT | net.if.speed["{#IFGUID}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
DEPENDENT | net.if.type["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
DEPENDENT | net.if.status["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%) | 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}"])>0Recovery 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 (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) | 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: 5.4 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 |
| {$SERVICE.STARTUPNAME.MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:automatic |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:manual |
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} MATCHES_REGEX - {#SERVICE.NAME} NOT_MATCHES_REGEX - {#SERVICE.STARTUPNAME} MATCHES_REGEX - {#SERVICE.STARTUPNAME} NOT_MATCHES_REGEX |
| 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 (startup type {#SERVICE.STARTUPNAME}) | 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: 5.4 and higher
New official Windows template. Requires agent of Zabbix 4.4 and newer.
This template was tested on:
Install Zabbix agent on Windows OS according to Zabbix documentation.
No specific Zabbix configuration is required.
| Name |
|---|
| Windows CPU by Zabbix agent |
| Windows filesystems by Zabbix agent |
| Windows generic by Zabbix agent |
| Windows memory by Zabbix agent |
| Windows network by Zabbix agent |
| Windows physical disks by Zabbix agent |
| Windows services by Zabbix agent |
| Zabbix agent |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_agent?at=release/5.0
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$CPU.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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\System\Processor Queue Length"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | CPU utilization is too high. The system might be slow to respond. |
{TEMPLATE_NAME:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT} |
WARNING | |
| CPU interrupt time is too high (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m) | "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%. |
{TEMPLATE_NAME:perf_counter_en["\Processor Information(_total)\% Interrupt Time"].min(5m)}>{$CPU.INTERRUPT.CRIT.MAX} |
WARNING | Depends on: - High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |
| CPU privileged time is too high (over {$CPU.PRIV.CRIT.MAX}% for 5m) | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
{TEMPLATE_NAME:perf_counter_en["\Processor Information(_total)\% Privileged Time"].min(5m)}>{$CPU.PRIV.CRIT.MAX} |
WARNING | Depends on: - CPU interrupt time is too high (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m) - High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |
| CPU queue length is too high (over {$CPU.QUEUE.CRIT.MAX} for 5m) | 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 }. |
{TEMPLATE_NAME:perf_counter_en["\System\Processor Queue Length"].min(5m)} - {TEMPLATE_NAME:wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"].last()} * 2 > {$CPU.QUEUE.CRIT.MAX} |
WARNING | Depends on: - High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$MEM.PAGE_TABLE_CRIT.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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) | The system is running out of free memory. |
{TEMPLATE_NAME:vm.memory.util.min(5m)}>{$MEMORY.UTIL.MAX} |
AVERAGE | |
| High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free) | This trigger is ignored, if there is no swap configured. |
{TEMPLATE_NAME:system.swap.pfree.max(5m)}<{$SWAP.PFREE.MIN.WARN} and {TEMPLATE_NAME:system.swap.size[,total].last()}>0 |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) |
| Number of free system page table entries is too low (less {$MEM.PAGE_TABLE_CRIT.MIN} for 5m) | The Memory Free System Page Table Entries is less than {$MEM.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak. |
{TEMPLATE_NAME:perf_counter_en["\Memory\Free System Page Table Entries"].max(5m)}<{$MEM.PAGE_TABLE_CRIT.MIN} |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) |
| The Memory Pages/sec is too high (over {$MEM.PAGE_SEC.CRIT.MAX} for 5m) | 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. |
{TEMPLATE_NAME:perf_counter_en["\Memory\Pages/sec"].min(5m)}>{$MEM.PAGE_SEC.CRIT.MAX} |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.FS.FREE.MIN.CRIT} | The critical threshold of the filesystem utilization. |
5G |
| {$VFS.FS.FREE.MIN.WARN} | The warning threshold of the filesystem utilization. |
10G |
| {$VFS.FS.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 |
| {$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- A: {#FSTYPE} MATCHES_REGEX - B: {#FSTYPE} NOT_MATCHES_REGEX - C: {#FSNAME} MATCHES_REGEX - D: {#FSNAME} NOT_MATCHES_REGEX - E: {#FSDRIVETYPE} MATCHES_REGEX - F: {#FSDRIVETYPE} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Filesystems | {#FSNAME}: Used space | Used storage in Bytes |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},used] |
| Filesystems | {#FSNAME}: Total space | Total space in Bytes |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},total] |
| Filesystems | {#FSNAME}: Space utilization | Space utilization in % for {#FSNAME} |
ZABBIX_PASSIVE | vfs.fs.size[{#FSNAME},pused] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than {$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}. - The disk will be full in less than 24 hours. |
{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and (({TEMPLATE_NAME:vfs.fs.size[{#FSNAME},total].last()}-{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},used].last()})<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or {TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than {$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"}. - The disk will be full in less than 24 hours. |
{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and (({TEMPLATE_NAME:vfs.fs.size[{#FSNAME},total].last()}-{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},used].last()})<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or {TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in 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 | perf_instance_en.discovery[PhysicalDisk] Preprocessing: - STR_REPLACE: Filter: AND- A: {#DEVNAME} MATCHES_REGEX - B: {#DEVNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Storage | {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
ZABBIX_PASSIVE | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| Storage | {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
ZABBIX_PASSIVE | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DEVNAME}: Disk is overloaded (util > {$VFS.DEV.UTIL.MAX.WARN}% for 15m) | The disk appears to be under heavy load |
{TEMPLATE_NAME:perf_counter_en["\PhysicalDisk({#DEVNAME})\% Idle Time",60].min(15m)}>{$VFS.DEV.UTIL.MAX.WARN} |
WARNING | Manual close: YES Depends on: - {#DEVNAME}: Disk read request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}s for 15m - {#DEVNAME}: Disk write request responses are too high (write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}s for 15m) |
| {#DEVNAME}: Disk read request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}s for 15m | This trigger might indicate disk {#DEVNAME} saturation. |
{TEMPLATE_NAME:perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60].min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
| {#DEVNAME}: Disk write request responses are too high (write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}s for 15m) | This trigger might indicate disk {#DEVNAME} saturation. |
{TEMPLATE_NAME:perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60].min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$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: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | System description of the host. |
ZABBIX_PASSIVE | system.uname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 | perf_counter_en["\System\Threads"] |
| Inventory | Operating system architecture | Operating system architecture of the host. |
ZABBIX_PASSIVE | system.sw.arch Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s) | The host system time is different from the Zabbix server time. |
{TEMPLATE_NAME:system.localtime.fuzzytime({$SYSTEM.FUZZYTIME.MAX})}=0 |
WARNING | Manual close: YES |
| System name has changed (new name: {ITEM.VALUE}) | System name has changed. Ack to close. |
{TEMPLATE_NAME:system.hostname.diff()}=1 and {TEMPLATE_NAME:system.hostname.strlen()}>0 |
INFO | Manual close: YES |
| Host has been restarted (uptime < 10m) | The device uptime is less than 10 minutes. |
{TEMPLATE_NAME:system.uptime.last()}<10m |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
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 |
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: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- C: {#IFNAME} MATCHES_REGEX - D: {#IFNAME} NOT_MATCHES_REGEX - E: {#IFDESCR} MATCHES_REGEX - F: {#IFDESCR} NOT_MATCHES_REGEX - G: {#IFALIAS} MATCHES_REGEX - H: {#IFALIAS} NOT_MATCHES_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: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
ZABBIX_PASSIVE | net.if.out["{#IFGUID}"] Preprocessing: - CHANGE_PER_SECOND - 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
DEPENDENT | net.if.speed["{#IFGUID}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
DEPENDENT | net.if.type["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
DEPENDENT | net.if.status["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%) | The network interface utilization is close to its estimated maximum bandwidth. |
({TEMPLATE_NAME:net.if.in["{#IFGUID}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{TEMPLATE_NAME:net.if.speed["{#IFGUID}"].last()} or {TEMPLATE_NAME:net.if.out["{#IFGUID}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{TEMPLATE_NAME:net.if.speed["{#IFGUID}"].last()}) and {TEMPLATE_NAME:net.if.speed["{#IFGUID}"].last()}>0Recovery expression: {TEMPLATE_NAME:net.if.in["{#IFGUID}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{TEMPLATE_NAME:net.if.speed["{#IFGUID}"].last()} and {TEMPLATE_NAME:net.if.out["{#IFGUID}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{TEMPLATE_NAME:net.if.speed["{#IFGUID}"].last()} |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
{TEMPLATE_NAME:net.if.in["{#IFGUID}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {TEMPLATE_NAME:net.if.out["{#IFGUID}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}Recovery expression: {TEMPLATE_NAME:net.if.in["{#IFGUID}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {TEMPLATE_NAME:net.if.out["{#IFGUID}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close. |
{TEMPLATE_NAME:net.if.speed["{#IFGUID}"].change()}<0 and {TEMPLATE_NAME:net.if.speed["{#IFGUID}"].last()}>0 and {TEMPLATE_NAME:net.if.status["{#IFGUID}"].last()}=2 |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: 1. Can be triggered if operations status is down. 2. {$IFCONTROL:"{#IFNAME}"}=1 - user can redefine Context macro to value - 0. That marks this interface as not important. No new trigger will be fired if this interface is down. 3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status is different from Connected(2). WARNING: if closed manually - won't fire again on next poll, because of .diff. |
{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:net.if.status["{#IFGUID}"].last()}<>2 and {TEMPLATE_NAME:net.if.status["{#IFGUID}"].diff()}=1)Recovery expression: {TEMPLATE_NAME:net.if.status["{#IFGUID}"].last()}=2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 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.EXTENDED} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(CDPUserSvc_.+ |
| {$SERVICE.NAME.NOT_MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:RemoteRegistry |
| {$SERVICE.STARTUPNAME.MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:automatic |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:manual |
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- A: {#SERVICE.NAME} MATCHES_REGEX - B: {#SERVICE.NAME} NOT_MATCHES_REGEX - C: {#SERVICE.NAME} NOT_MATCHES_REGEX - D: {#SERVICE.STARTUPNAME} MATCHES_REGEX - E: {#SERVICE.STARTUPNAME} NOT_MATCHES_REGEX |
| 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 (startup type {#SERVICE.STARTUPNAME}) | The service has a state other than "Running" for the last three times. |
{TEMPLATE_NAME:service.info["{#SERVICE.NAME}",state].min(#3)}<>0 |
AVERAGE |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
New official Windows template. Requires agent of Zabbix 4.4 and newer.
This template was tested on:
Install Zabbix agent on Windows OS according to Zabbix documentation.
No specific Zabbix configuration is required.
| Name |
|---|
| Windows CPU by Zabbix agent |
| Windows filesystems by Zabbix agent |
| Windows generic by Zabbix agent |
| Windows memory by Zabbix agent |
| Windows network by Zabbix agent |
| Windows physical disks by Zabbix agent |
| Windows services by Zabbix agent |
| Zabbix agent |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
This is an official Windows template. It requires Zabbix agent 7.4 or newer.
Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Windows OS according to Zabbix documentation.
| Name | Description | Default |
|---|---|---|
| {$AGENT.NODATA_TIMEOUT} | No data timeout for active agents. Consider to keep it relatively high. |
30m |
| {$AGENT.TIMEOUT} | Timeout after which agent is considered unavailable. |
5m |
| {$CPU.UTIL.CRIT} | The critical threshold of the CPU utilization expressed in %. |
90 |
| {$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 |
| {$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 |
| {$MEM.PAGE_TABLE_CRIT.MIN} | The warning threshold of the Free System Page Table Entries counter. |
5000 |
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(?:/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDRIVETYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
fixed |
| {$VFS.FS.FSDRIVETYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.DEV.UTIL.MAX.WARN} | The warning threshold of disk time utilization in percent. |
95 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in s) before the trigger fires. |
0.02 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in s) before the trigger fires. |
0.02 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
_Total |
| {$IFCONTROL} | Macro for the interface operational state for the "link down" trigger. Can be used with interface name as context. |
1 |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$NET.IF.IFNAME.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFNAME.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$NET.IF.IFALIAS.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$NET.IF.IFDESCR.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$SERVICE.NAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$SERVICE.NAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$SERVICE.STARTUPNAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:automatic|automatic delayed)$ |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:manual|disabled)$ |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version of Zabbix agent running | Zabbix agent (active) | agent.version Preprocessing
|
|
| Host name of Zabbix agent running | Zabbix agent (active) | agent.hostname Preprocessing
|
|
| Zabbix agent ping | The agent always returns "1" for this item. May be used in combination with |
Zabbix agent (active) | agent.ping |
| Active agent availability | Availability of active checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - unknown 1 - available 2 - not available |
Zabbix internal | zabbix[host,active_agent,available] |
| CPU utilization | CPU utilization expressed in %. |
Zabbix agent (active) | system.cpu.util |
| CPU interrupt time | The processor information |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% Interrupt Time"] |
| 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 agent (active) | perf_counter_en["\System\Context Switches/sec"] |
| CPU privileged time | The processor information |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% Privileged Time"] |
| 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. |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% DPC Time"] |
| CPU user time | The processor information |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% User Time"] |
| Number of cores | The number of logical processors available on the computer. |
Zabbix agent (active) | wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"] |
| 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 agent (active) | perf_counter_en["\System\Processor Queue Length"] |
| Used memory | Used memory in bytes. |
Zabbix agent (active) | vm.memory.size[used] |
| Total memory | Total memory expressed in bytes. |
Zabbix agent (active) | vm.memory.size[total] |
| Memory utilization | Memory utilization in %. |
Calculated | vm.memory.util |
| 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 agent (active) | perf_counter_en["\Memory\Cache Bytes"] |
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Calculated | system.swap.free |
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Dependent item | system.swap.pfree Preprocessing
|
| Used swap space in % | The used space of swap volume/file in percent. |
Zabbix agent (active) | perf_counter_en["\Paging file(_Total)% Usage"] |
| Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent (active) | system.swap.size[,total] |
| 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 be a memory leak or you running out of memory. |
Zabbix agent (active) | perf_counter_en["\Memory\Free System Page Table Entries"] |
| 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 agent (active) | perf_counter_en["\Memory\Page Faults/sec"] |
| 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 agent (active) | perf_counter_en["\Memory\Pages/sec"] |
| 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). Consequently, Event ID 2019 is recorded in the system event log. |
Zabbix agent (active) | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Get filesystems | The |
Zabbix agent (active) | vfs.fs.get |
| Uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent (active) | system.uptime |
| System local time | The local system time of the host. |
Zabbix agent (active) | system.localtime |
| System name | The host name of the system. |
Zabbix agent (active) | system.hostname Preprocessing
|
| System description | System description of the host. |
Zabbix agent (active) | system.uname Preprocessing
|
| Number of processes | The number of processes. |
Zabbix agent (active) | proc.num[] |
| Number of threads | The number of threads used by all running processes. |
Zabbix agent (active) | perf_counter_en["\System\Threads"] |
| Operating system architecture | The architecture of the operating system. |
Zabbix agent (active) | system.sw.arch Preprocessing
|
| Operating system | Zabbix agent (active) | system.sw.os Preprocessing
|
|
| Windows: Network interfaces WMI get | Raw data of |
Zabbix agent (active) | wmi.getall[root\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Zabbix agent is not available | For active agents, |
nodata(/Windows by Zabbix agent active/agent.ping,{$AGENT.NODATA_TIMEOUT})=1 |
Average | Manual close: Yes |
| Windows: Active checks are not available | Active checks are considered unavailable. Agent has not sent a heartbeat for a prolonged time. |
min(/Windows by Zabbix agent active/zabbix[host,active_agent,available],{$AGENT.TIMEOUT})=2 |
High | |
| Windows: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning | |
| Windows: CPU interrupt time is too high | The CPU Interrupt Time in the last 5 minutes exceeds |
min(/Windows by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU privileged time is too high | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
min(/Windows by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU queue length is too high | The CPU Queue Length in the last 5 minutes exceeds |
min(/Windows by Zabbix agent active/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows by Zabbix agent active/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
Warning | Depends on:
|
| Windows: High memory utilization | The system is running out of free memory. |
min(/Windows by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | |
| Windows: High swap space usage | This trigger is ignored, if there is no swap configured |
max(/Windows by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent active/system.swap.size[,total])>0 |
Warning | Depends on:
|
| Windows: Number of free system page table entries is too low |
|
max(/Windows by Zabbix agent active/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN} |
Warning | Depends on:
|
| Windows: The Memory Pages/sec is too high | The Memory Pages/sec in the last 5 minutes exceeds |
min(/Windows by Zabbix agent active/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
Warning | Depends on:
|
| Windows: Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows by Zabbix agent active/system.uptime)<10m |
Warning | Manual close: Yes |
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/system.hostname) and length(last(/Windows by Zabbix agent active/system.hostname))>0 |
Info | Manual close: Yes |
| Windows: Operating system description has changed | The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/system.sw.os) and length(last(/Windows by Zabbix agent active/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of filesystems of different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSLABEL}({#FSNAME})]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: FS [{#FSLABEL}({#FSNAME})]: Space is critically low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSLABEL}({#FSNAME})"} |
Average | Manual close: Yes |
| Windows: FS [{#FSLABEL}({#FSNAME})]: Space is low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSLABEL}({#FSNAME})"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Physical disks discovery | Discovery of installed physical disks. |
Zabbix agent (active) | perf_instance_en.discovery[PhysicalDisk] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60] |
| {#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. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})% Idle Time",60] Preprocessing
|
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: {#DEVNAME}: Disk is overloaded | The disk appears to be under heavy load. |
min(/Windows by Zabbix agent active/perf_counter_en["\PhysicalDisk({#DEVNAME})\% Idle Time",60],15m)>{$VFS.DEV.UTIL.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
| Windows: {#DEVNAME}: Disk read request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows 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 |
| Windows: {#DEVNAME}: Disk write request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows 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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovery of installed network interfaces. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | The number of incoming packets dropped on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | The number of outgoing packets dropped on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | The number of incoming packets with errors on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | The number of outgoing packets with errors on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
Dependent item | net.if.speed["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
Dependent item | net.if.type["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
Dependent item | net.if.status["{#IFGUID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by Zabbix agent active/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent active/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by Zabbix agent active/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by Zabbix agent active/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])<0 and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 and last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"])=2 |
Info | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"])<>2 and (last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"],#1)<>last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows services discovery | Used for the discovery of Windows services of different types as defined in the template's macros. |
Zabbix agent (active) | service.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | Zabbix agent (active) | service.info["{#SERVICE.NAME}",state] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running | The service has a state other than "Running" for the last three times. |
min(/Windows by Zabbix agent active/service.info["{#SERVICE.NAME}",state],#3)<>0 |
Average |
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
This is an official Windows template. It requires Zabbix agent 7.2 or newer.
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Windows OS according to Zabbix documentation.
| Name | Description | Default |
|---|---|---|
| {$AGENT.NODATA_TIMEOUT} | No data timeout for active agents. Consider to keep it relatively high. |
30m |
| {$AGENT.TIMEOUT} | Timeout after which agent is considered unavailable. |
5m |
| {$CPU.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 expressed in %. |
90 |
| {$MEM.PAGE_TABLE_CRIT.MIN} | The warning threshold of the Free System Page Table Entries counter. |
5000 |
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$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 |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(?:/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDRIVETYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
fixed |
| {$VFS.FS.FSDRIVETYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
_Total |
| {$VFS.DEV.UTIL.MAX.WARN} | The warning threshold of disk time utilization in percent. |
95 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in s) before the trigger fires. |
0.02 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in s) before the trigger fires. |
0.02 |
| {$IFCONTROL} | Macro for the interface operational state for the "link down" trigger. Can be used with interface name as context. |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFNAME.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$NET.IF.IFALIAS.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$NET.IF.IFDESCR.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$SERVICE.NAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$SERVICE.NAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$SERVICE.STARTUPNAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:automatic|automatic delayed)$ |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:manual|disabled)$ |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version of Zabbix agent running | Zabbix agent (active) | agent.version Preprocessing
|
|
| Host name of Zabbix agent running | Zabbix agent (active) | agent.hostname Preprocessing
|
|
| Zabbix agent ping | The agent always returns "1" for this item. May be used in combination with |
Zabbix agent (active) | agent.ping |
| Active agent availability | Availability of active checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - unknown 1 - available 2 - not available |
Zabbix internal | zabbix[host,active_agent,available] |
| CPU utilization | CPU utilization expressed in %. |
Zabbix agent (active) | system.cpu.util |
| CPU interrupt time | The processor information |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% Interrupt Time"] |
| 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 agent (active) | perf_counter_en["\System\Context Switches/sec"] |
| CPU privileged time | The processor information |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% Privileged Time"] |
| 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. |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% DPC Time"] |
| CPU user time | The processor information |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% User Time"] |
| Number of cores | The number of logical processors available on the computer. |
Zabbix agent (active) | wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"] |
| 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 agent (active) | perf_counter_en["\System\Processor Queue Length"] |
| Used memory | Used memory in bytes. |
Zabbix agent (active) | vm.memory.size[used] |
| Total memory | Total memory expressed in bytes. |
Zabbix agent (active) | vm.memory.size[total] |
| Memory utilization | Memory utilization in %. |
Calculated | vm.memory.util |
| 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 agent (active) | perf_counter_en["\Memory\Cache Bytes"] |
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Calculated | system.swap.free |
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Dependent item | system.swap.pfree Preprocessing
|
| Used swap space in % | The used space of swap volume/file in percent. |
Zabbix agent (active) | perf_counter_en["\Paging file(_Total)% Usage"] |
| Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent (active) | system.swap.size[,total] |
| 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 be a memory leak or you running out of memory. |
Zabbix agent (active) | perf_counter_en["\Memory\Free System Page Table Entries"] |
| 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 agent (active) | perf_counter_en["\Memory\Page Faults/sec"] |
| 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 agent (active) | perf_counter_en["\Memory\Pages/sec"] |
| 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). Consequently, Event ID 2019 is recorded in the system event log. |
Zabbix agent (active) | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Get filesystems | The |
Zabbix agent (active) | vfs.fs.get |
| Uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent (active) | system.uptime |
| System local time | The local system time of the host. |
Zabbix agent (active) | system.localtime |
| System name | The host name of the system. |
Zabbix agent (active) | system.hostname Preprocessing
|
| System description | System description of the host. |
Zabbix agent (active) | system.uname Preprocessing
|
| Number of processes | The number of processes. |
Zabbix agent (active) | proc.num[] |
| Number of threads | The number of threads used by all running processes. |
Zabbix agent (active) | perf_counter_en["\System\Threads"] |
| Operating system architecture | The architecture of the operating system. |
Zabbix agent (active) | system.sw.arch Preprocessing
|
| Operating system | Zabbix agent (active) | system.sw.os Preprocessing
|
|
| Windows: Network interfaces WMI get | Raw data of |
Zabbix agent (active) | wmi.getall[root\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Zabbix agent is not available | For active agents, |
nodata(/Windows by Zabbix agent active/agent.ping,{$AGENT.NODATA_TIMEOUT})=1 |
Average | Manual close: Yes |
| Windows: Active checks are not available | Active checks are considered unavailable. Agent has not sent a heartbeat for a prolonged time. |
min(/Windows by Zabbix agent active/zabbix[host,active_agent,available],{$AGENT.TIMEOUT})=2 |
High | |
| Windows: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning | |
| Windows: CPU interrupt time is too high | The CPU Interrupt Time in the last 5 minutes exceeds |
min(/Windows by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU privileged time is too high | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
min(/Windows by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU queue length is too high | The CPU Queue Length in the last 5 minutes exceeds |
min(/Windows by Zabbix agent active/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows by Zabbix agent active/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
Warning | Depends on:
|
| Windows: High memory utilization | The system is running out of free memory. |
min(/Windows by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | |
| Windows: High swap space usage | This trigger is ignored, if there is no swap configured |
max(/Windows by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent active/system.swap.size[,total])>0 |
Warning | Depends on:
|
| Windows: Number of free system page table entries is too low |
|
max(/Windows by Zabbix agent active/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN} |
Warning | Depends on:
|
| Windows: The Memory Pages/sec is too high | The Memory Pages/sec in the last 5 minutes exceeds |
min(/Windows by Zabbix agent active/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
Warning | Depends on:
|
| Windows: Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows by Zabbix agent active/system.uptime)<10m |
Warning | Manual close: Yes |
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/system.hostname) and length(last(/Windows by Zabbix agent active/system.hostname))>0 |
Info | Manual close: Yes |
| Windows: Operating system description has changed | The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/system.sw.os) and length(last(/Windows by Zabbix agent active/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of filesystems of different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSLABEL}({#FSNAME})]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: FS [{#FSLABEL}({#FSNAME})]: Space is critically low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSLABEL}({#FSNAME})"} |
Average | Manual close: Yes |
| Windows: FS [{#FSLABEL}({#FSNAME})]: Space is low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSLABEL}({#FSNAME})"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Physical disks discovery | Discovery of installed physical disks. |
Zabbix agent (active) | perf_instance_en.discovery[PhysicalDisk] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60] |
| {#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. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})% Idle Time",60] Preprocessing
|
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: {#DEVNAME}: Disk is overloaded | The disk appears to be under heavy load. |
min(/Windows by Zabbix agent active/perf_counter_en["\PhysicalDisk({#DEVNAME})\% Idle Time",60],15m)>{$VFS.DEV.UTIL.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
| Windows: {#DEVNAME}: Disk read request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows 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 |
| Windows: {#DEVNAME}: Disk write request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows 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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovery of installed network interfaces. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | The number of incoming packets dropped on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | The number of outgoing packets dropped on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | The number of incoming packets with errors on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | The number of outgoing packets with errors on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
Dependent item | net.if.speed["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
Dependent item | net.if.type["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
Dependent item | net.if.status["{#IFGUID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by Zabbix agent active/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent active/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by Zabbix agent active/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by Zabbix agent active/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])<0 and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 and last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"])=2 |
Info | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"])<>2 and (last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"],#1)<>last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows services discovery | Used for the discovery of Windows services of different types as defined in the template's macros. |
Zabbix agent (active) | service.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | Zabbix agent (active) | service.info["{#SERVICE.NAME}",state] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running | The service has a state other than "Running" for the last three times. |
min(/Windows by Zabbix agent active/service.info["{#SERVICE.NAME}",state],#3)<>0 |
Average |
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
This is an official Windows template. It requires Zabbix agent 7.0 or newer.
Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Windows OS according to Zabbix documentation.
| Name | Description | Default |
|---|---|---|
| {$AGENT.NODATA_TIMEOUT} | No data timeout for active agents. Consider to keep it relatively high. |
30m |
| {$AGENT.TIMEOUT} | Timeout after which agent is considered unavailable. |
5m |
| {$CPU.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 expressed in %. |
90 |
| {$MEM.PAGE_TABLE_CRIT.MIN} | The warning threshold of the Free System Page Table Entries counter. |
5000 |
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$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 |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(?:/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDRIVETYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
fixed |
| {$VFS.FS.FSDRIVETYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
_Total |
| {$VFS.DEV.UTIL.MAX.WARN} | The warning threshold of disk time utilization in percent. |
95 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in s) before the trigger fires. |
0.02 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in s) before the trigger fires. |
0.02 |
| {$IFCONTROL} | Macro for the interface operational state for the "link down" trigger. Can be used with interface name as context. |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFNAME.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$NET.IF.IFALIAS.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$NET.IF.IFDESCR.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$SERVICE.NAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$SERVICE.NAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$SERVICE.STARTUPNAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:automatic|automatic delayed)$ |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:manual|disabled)$ |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Version of Zabbix agent running | Zabbix agent (active) | agent.version Preprocessing
|
|
| Host name of Zabbix agent running | Zabbix agent (active) | agent.hostname Preprocessing
|
|
| Zabbix agent ping | The agent always returns "1" for this item. May be used in combination with |
Zabbix agent (active) | agent.ping |
| Active agent availability | Availability of active checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - unknown 1 - available 2 - not available |
Zabbix internal | zabbix[host,active_agent,available] |
| CPU utilization | CPU utilization expressed in %. |
Zabbix agent (active) | system.cpu.util |
| CPU interrupt time | The processor information |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% Interrupt Time"] |
| 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 agent (active) | perf_counter_en["\System\Context Switches/sec"] |
| CPU privileged time | The processor information |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% Privileged Time"] |
| 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. |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% DPC Time"] |
| CPU user time | The processor information |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% User Time"] |
| Number of cores | The number of logical processors available on the computer. |
Zabbix agent (active) | wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"] |
| 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 agent (active) | perf_counter_en["\System\Processor Queue Length"] |
| Used memory | Used memory in bytes. |
Zabbix agent (active) | vm.memory.size[used] |
| Total memory | Total memory expressed in bytes. |
Zabbix agent (active) | vm.memory.size[total] |
| Memory utilization | Memory utilization in %. |
Calculated | vm.memory.util |
| 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 agent (active) | perf_counter_en["\Memory\Cache Bytes"] |
| Free swap space | The free space of the swap volume/file expressed in bytes. |
Calculated | system.swap.free |
| Free swap space in % | The free space of the swap volume/file expressed in %. |
Dependent item | system.swap.pfree Preprocessing
|
| Used swap space in % | The used space of swap volume/file in percent. |
Zabbix agent (active) | perf_counter_en["\Paging file(_Total)% Usage"] |
| Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent (active) | system.swap.size[,total] |
| 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 be a memory leak or you running out of memory. |
Zabbix agent (active) | perf_counter_en["\Memory\Free System Page Table Entries"] |
| 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 agent (active) | perf_counter_en["\Memory\Page Faults/sec"] |
| 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 agent (active) | perf_counter_en["\Memory\Pages/sec"] |
| 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). Consequently, Event ID 2019 is recorded in the system event log. |
Zabbix agent (active) | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Get filesystems | The |
Zabbix agent (active) | vfs.fs.get |
| Uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent (active) | system.uptime |
| System local time | The local system time of the host. |
Zabbix agent (active) | system.localtime |
| System name | The host name of the system. |
Zabbix agent (active) | system.hostname Preprocessing
|
| System description | System description of the host. |
Zabbix agent (active) | system.uname Preprocessing
|
| Number of processes | The number of processes. |
Zabbix agent (active) | proc.num[] |
| Number of threads | The number of threads used by all running processes. |
Zabbix agent (active) | perf_counter_en["\System\Threads"] |
| Operating system architecture | The architecture of the operating system. |
Zabbix agent (active) | system.sw.arch Preprocessing
|
| Operating system | Zabbix agent (active) | system.sw.os Preprocessing
|
|
| Windows: Network interfaces WMI get | Raw data of |
Zabbix agent (active) | wmi.getall[root\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Zabbix agent is not available | For active agents, |
nodata(/Windows by Zabbix agent active/agent.ping,{$AGENT.NODATA_TIMEOUT})=1 |
Average | Manual close: Yes |
| Windows: Active checks are not available | Active checks are considered unavailable. Agent has not sent a heartbeat for a prolonged time. |
min(/Windows by Zabbix agent active/zabbix[host,active_agent,available],{$AGENT.TIMEOUT})=2 |
High | |
| Windows: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning | |
| Windows: CPU interrupt time is too high | The CPU Interrupt Time in the last 5 minutes exceeds |
min(/Windows by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU privileged time is too high | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
min(/Windows by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU queue length is too high | The CPU Queue Length in the last 5 minutes exceeds |
min(/Windows by Zabbix agent active/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows by Zabbix agent active/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
Warning | Depends on:
|
| Windows: High memory utilization | The system is running out of free memory. |
min(/Windows by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | |
| Windows: High swap space usage | This trigger is ignored, if there is no swap configured |
max(/Windows by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent active/system.swap.size[,total])>0 |
Warning | Depends on:
|
| Windows: Number of free system page table entries is too low |
|
max(/Windows by Zabbix agent active/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN} |
Warning | Depends on:
|
| Windows: The Memory Pages/sec is too high | The Memory Pages/sec in the last 5 minutes exceeds |
min(/Windows by Zabbix agent active/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
Warning | Depends on:
|
| Windows: Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows by Zabbix agent active/system.uptime)<10m |
Warning | Manual close: Yes |
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/system.hostname) and length(last(/Windows by Zabbix agent active/system.hostname))>0 |
Info | Manual close: Yes |
| Windows: Operating system description has changed | The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/system.sw.os) and length(last(/Windows by Zabbix agent active/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of filesystems of different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSLABEL}({#FSNAME})]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: FS [{#FSLABEL}({#FSNAME})]: Space is critically low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSLABEL}({#FSNAME})"} |
Average | Manual close: Yes |
| Windows: FS [{#FSLABEL}({#FSNAME})]: Space is low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSLABEL}({#FSNAME})"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Physical disks discovery | Discovery of installed physical disks. |
Zabbix agent (active) | perf_instance_en.discovery[PhysicalDisk] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60] |
| {#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. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})% Idle Time",60] Preprocessing
|
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: {#DEVNAME}: Disk is overloaded | The disk appears to be under heavy load. |
min(/Windows by Zabbix agent active/perf_counter_en["\PhysicalDisk({#DEVNAME})\% Idle Time",60],15m)>{$VFS.DEV.UTIL.MAX.WARN} |
Warning | Manual close: Yes Depends on:
|
| Windows: {#DEVNAME}: Disk read request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows 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 |
| Windows: {#DEVNAME}: Disk write request responses are too high | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows 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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovery of installed network interfaces. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | The number of incoming packets dropped on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | The number of outgoing packets dropped on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | The number of incoming packets with errors on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | The number of outgoing packets with errors on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
Dependent item | net.if.speed["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
Dependent item | net.if.type["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
Dependent item | net.if.status["{#IFGUID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by Zabbix agent active/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent active/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by Zabbix agent active/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by Zabbix agent active/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])<0 and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 and last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"])=2 |
Info | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"])<>2 and (last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"],#1)<>last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows services discovery | Used for the discovery of Windows services of different types as defined in the template's macros. |
Zabbix agent (active) | service.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | Zabbix agent (active) | service.info["{#SERVICE.NAME}",state] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running | The service has a state other than "Running" for the last three times. |
min(/Windows by Zabbix agent active/service.info["{#SERVICE.NAME}",state],#3)<>0 |
Average |
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
This is an official Windows template. It requires Zabbix agent 6.4 or newer.
Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Windows OS according to Zabbix documentation.
| Name | Description | Default |
|---|---|---|
| {$AGENT.NODATA_TIMEOUT} | No data timeout for active agents. Consider to keep it relatively high. |
30m |
| {$AGENT.TIMEOUT} | Timeout after which agent is considered unavailable. |
5m |
| {$CPU.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 expressed in %. |
90 |
| {$MEM.PAGE_TABLE_CRIT.MIN} | The warning threshold of the Free System Page Table Entries counter. |
5000 |
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$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 |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(?:/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.FSDRIVETYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
fixed |
| {$VFS.FS.FSDRIVETYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^\s$ |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.DEV.DEVNAME.MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
.* |
| {$VFS.DEV.DEVNAME.NOT_MATCHES} | Used in physical disk discovery. Can be overridden on the host or linked template level. |
_Total |
| {$VFS.DEV.UTIL.MAX.WARN} | The warning threshold of disk time utilization in percent. |
95 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in s) before the trigger fires. |
0.02 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in s) before the trigger fires. |
0.02 |
| {$IFCONTROL} | Macro for the interface operational state for the "link down" trigger. Can be used with interface name as context. |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFNAME.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$NET.IF.IFALIAS.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$NET.IF.IFDESCR.MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in Network interface discovery. Can be overridden on the host or linked template level. |
CHANGE_THIS |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$SERVICE.NAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$SERVICE.NAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
Macro too long. Please see the template. |
| {$SERVICE.STARTUPNAME.MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:automatic|automatic delayed)$ |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | Used in Service discovery. Can be overridden on the host or linked template level. |
^(?:manual|disabled)$ |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows: Version of Zabbix agent running | Zabbix agent (active) | agent.version Preprocessing
|
|
| Windows: Host name of Zabbix agent running | Zabbix agent (active) | agent.hostname Preprocessing
|
|
| Windows: Zabbix agent ping | The agent always returns 1 for this item. It could be used in combination with nodata() for availability check. |
Zabbix agent (active) | agent.ping |
| Windows: Active agent availability | Availability of active checks on the host. The value of this item corresponds to availability icons in the host list. Possible value: 0 - unknown 1 - available 2 - not available |
Zabbix internal | zabbix[host,active_agent,available] |
| Windows: CPU utilization | CPU utilization expressed in %. |
Zabbix agent (active) | system.cpu.util |
| Windows: CPU interrupt time | The processor information |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% Interrupt Time"] |
| Windows: 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 agent (active) | perf_counter_en["\System\Context Switches/sec"] |
| Windows: CPU privileged time | The processor information |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% Privileged Time"] |
| Windows: 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. |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% DPC Time"] |
| Windows: CPU user time | The processor information |
Zabbix agent (active) | perf_counter_en["\Processor Information(_total)% User Time"] |
| Windows: Number of cores | The number of logical processors available on the computer. |
Zabbix agent (active) | wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"] |
| Windows: 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 agent (active) | perf_counter_en["\System\Processor Queue Length"] |
| Windows: Used memory | Used memory in bytes. |
Zabbix agent (active) | vm.memory.size[used] |
| Windows: Total memory | Total memory expressed in bytes. |
Zabbix agent (active) | vm.memory.size[total] |
| Windows: Memory utilization | Memory utilization in %. |
Calculated | vm.memory.util |
| Windows: 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 agent (active) | perf_counter_en["\Memory\Cache Bytes"] |
| Windows: Free swap space | The free space of the swap volume/file expressed in bytes. |
Calculated | system.swap.free |
| Windows: Free swap space in % | The free space of the swap volume/file expressed in %. |
Dependent item | system.swap.pfree Preprocessing
|
| Windows: Used swap space in % | The used space of swap volume/file in percent. |
Zabbix agent (active) | perf_counter_en["\Paging file(_Total)% Usage"] |
| Windows: Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent (active) | system.swap.size[,total] |
| Windows: 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 be a memory leak or you running out of memory. |
Zabbix agent (active) | perf_counter_en["\Memory\Free System Page Table Entries"] |
| Windows: 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 agent (active) | perf_counter_en["\Memory\Page Faults/sec"] |
| Windows: 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 agent (active) | perf_counter_en["\Memory\Pages/sec"] |
| Windows: 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). Consequently, Event ID 2019 is recorded in the system event log. |
Zabbix agent (active) | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Windows: Get filesystems | The |
Zabbix agent (active) | vfs.fs.get |
| Windows: Uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent (active) | system.uptime |
| Windows: System local time | The local system time of the host. |
Zabbix agent (active) | system.localtime |
| Windows: System name | The host name of the system. |
Zabbix agent (active) | system.hostname Preprocessing
|
| Windows: System description | System description of the host. |
Zabbix agent (active) | system.uname Preprocessing
|
| Windows: Number of processes | The number of processes. |
Zabbix agent (active) | proc.num[] |
| Windows: Number of threads | The number of threads used by all running processes. |
Zabbix agent (active) | perf_counter_en["\System\Threads"] |
| Windows: Operating system architecture | The architecture of the operating system. |
Zabbix agent (active) | system.sw.arch Preprocessing
|
| Windows: Operating system | Zabbix agent (active) | system.sw.os Preprocessing
|
|
| Windows: Network interfaces WMI get | Raw data of |
Zabbix agent (active) | wmi.getall[root\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Zabbix agent is not available | For active agents, nodata() with agent.ping is used with {$AGENT.NODATA_TIMEOUT} as time threshold. |
nodata(/Windows by Zabbix agent active/agent.ping,{$AGENT.NODATA_TIMEOUT})=1 |
Average | Manual close: Yes |
| Windows: Active checks are not available | Active checks are considered unavailable. Agent is not sending heartbeat for prolonged time. |
min(/Windows by Zabbix agent active/zabbix[host,active_agent,available],{$AGENT.TIMEOUT})=2 |
High | |
| Windows: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning | |
| Windows: CPU interrupt time is too high | The CPU Interrupt Time in the last 5 minutes exceeds |
min(/Windows by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU privileged time is too high | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
min(/Windows by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU queue length is too high | The CPU Queue Length in the last 5 minutes exceeds |
min(/Windows by Zabbix agent active/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows by Zabbix agent active/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
Warning | Depends on:
|
| Windows: High memory utilization | The system is running out of free memory. |
min(/Windows by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | |
| Windows: High swap space usage | This trigger is ignored, if there is no swap configured |
max(/Windows by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent active/system.swap.size[,total])>0 |
Warning | Depends on:
|
| Windows: Number of free system page table entries is too low |
|
max(/Windows by Zabbix agent active/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN} |
Warning | Depends on:
|
| Windows: The Memory Pages/sec is too high | The Memory Pages/sec in the last 5 minutes exceeds |
min(/Windows by Zabbix agent active/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
Warning | Depends on:
|
| Windows: Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows by Zabbix agent active/system.uptime)<10m |
Warning | Manual close: Yes |
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/system.hostname) and length(last(/Windows by Zabbix agent active/system.hostname))>0 |
Info | Manual close: Yes |
| Windows: Operating system description has changed | The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/system.sw.os) and length(last(/Windows by Zabbix agent active/system.sw.os))>0 |
Info | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of filesystems of different types. |
Dependent item | vfs.fs.dependent.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSLABEL}({#FSNAME})]: Get data | Intermediate data of |
Dependent item | vfs.fs.dependent[{#FSNAME},data] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used | Used storage expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},used] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Total | Total space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},total] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Used, in % | Calculated as the percentage of currently used space compared to the maximum available space. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},pused] Preprocessing
|
| FS [{#FSLABEL}({#FSNAME})]: Space: Available | Available storage space expressed in bytes. |
Dependent item | vfs.fs.dependent.size[{#FSNAME},free] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| FS [{#FSLABEL}({#FSNAME})]: Space is critically low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSLABEL}({#FSNAME})"} |
Average | Manual close: Yes |
| FS [{#FSLABEL}({#FSNAME})]: Space is low | The volume's space usage exceeds the |
min(/Windows by Zabbix agent active/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSLABEL}({#FSNAME})"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Physical disks discovery | Discovery of installed physical disks. |
Zabbix agent (active) | perf_instance_en.discovery[PhysicalDisk] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60] |
| {#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. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})% Idle Time",60] Preprocessing
|
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60] |
| {#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 agent (active) | perf_counter_en["\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 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 | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows 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 the disk {#DEVNAME} saturation. |
min(/Windows 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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovery of installed network interfaces. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | The number of incoming packets dropped on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | The number of outgoing packets dropped on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | The number of incoming packets with errors on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | The number of outgoing packets with errors on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
Dependent item | net.if.speed["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
Dependent item | net.if.type["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
Dependent item | net.if.status["{#IFGUID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by Zabbix agent active/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent active/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by Zabbix agent active/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by Zabbix agent active/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])<0 and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 and last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"])=2 |
Info | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"])<>2 and (last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"],#1)<>last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows services discovery | Used for the discovery of Windows services of different types as defined in the template's macros. |
Zabbix agent (active) | service.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | Zabbix agent (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 by Zabbix agent active/service.info["{#SERVICE.NAME}",state],#3)<>0 |
Average |
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. New official Windows template. Requires agent of Zabbix 4.4 and newer.
This template was tested on:
Install Zabbix agent on Windows OS according to Zabbix documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$AGENT.NODATA_TIMEOUT} | No data timeout for active agents. Consider to keep it relatively high. |
30m |
| {$AGENT.TIMEOUT} | Timeout after which agent is considered unavailable. |
5m |
| {$CPU.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 |
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | - |
90 |
| {$IFCONTROL} | - |
1 |
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$MEM.PAGE_TABLE_CRIT.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 |
| {$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 |
| {$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 |
| {$SERVICE.STARTUPNAME.MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:automatic |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:manual |
| {$SWAP.PFREE.MIN.WARN} | The warning threshold of the minimum free swap. |
20 |
| {$SYSTEM.FUZZYTIME.MAX} | The threshold for difference of system time in seconds. |
60 |
| {$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 |
| {$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 |
| {$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} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX - {#FSDRIVETYPE} MATCHES_REGEX - {#FSDRIVETYPE} NOT_MATCHES_REGEX |
| Network interfaces discovery | Discovery of installed network interfaces. |
DEPENDENT | net.if.discovery Preprocessing: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX - {#IFDESCR} MATCHES_REGEX - {#IFDESCR} NOT_MATCHES_REGEX - {#IFALIAS} MATCHES_REGEX - {#IFALIAS} NOT_MATCHES_REGEX |
| Physical disks discovery | Discovery of installed physical disks. |
ZABBIX_ACTIVE | perf_instance_en.discovery[PhysicalDisk] Preprocessing: - STR_REPLACE: Filter: AND- {#DEVNAME} MATCHES_REGEX - {#DEVNAME} NOT_MATCHES_REGEX |
| Windows services discovery | Discovery of Windows services of different types as defined in template's macros. |
ZABBIX_ACTIVE | service.discovery Filter: AND- {#SERVICE.NAME} MATCHES_REGEX - {#SERVICE.NAME} NOT_MATCHES_REGEX - {#SERVICE.STARTUPNAME} MATCHES_REGEX - {#SERVICE.STARTUPNAME} NOT_MATCHES_REGEX |
| 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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\System\Processor Queue Length"] |
| 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] |
| General | System local time | System local time of the host. |
ZABBIX_ACTIVE | system.localtime |
| General | System name | System host name. |
ZABBIX_ACTIVE | system.hostname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | System description of the host. |
ZABBIX_ACTIVE | system.uname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 | perf_counter_en["\System\Threads"] |
| Inventory | Operating system architecture | Operating system architecture of the host. |
ZABBIX_ACTIVE | system.sw.arch Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Monitoring agent | Version of Zabbix agent running | - |
ZABBIX_ACTIVE | agent.version Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Monitoring agent | Host name of Zabbix agent running | - |
ZABBIX_ACTIVE | agent.hostname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Monitoring agent | Active agent availability | Availability of active checks on the host. The value of this item corresponds to availability icons in the host list. Possible value: 0 - unknown 1 - available 2 - not available |
INTERNAL | zabbix[host,active_agent,available] |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
ZABBIX_ACTIVE | net.if.in["{#IFGUID}"] Preprocessing: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
ZABBIX_ACTIVE | net.if.out["{#IFGUID}"] Preprocessing: - CHANGE_PER_SECOND - 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
DEPENDENT | net.if.speed["{#IFGUID}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
DEPENDENT | net.if.type["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
DEPENDENT | net.if.status["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Services | State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | - |
ZABBIX_ACTIVE | service.info["{#SERVICE.NAME}",state] |
| Status | Uptime | System uptime in 'N days, hh:mm:ss' format. |
ZABBIX_ACTIVE | system.uptime |
| Status | Zabbix agent ping | The agent always returns 1 for this item. It could be used in combination with nodata() for availability check. |
ZABBIX_ACTIVE | agent.ping |
| Storage | {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
ZABBIX_ACTIVE | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| Storage | {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
ZABBIX_ACTIVE | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
| 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 win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 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 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 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 by Zabbix agent active/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows by Zabbix agent active/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
WARNING | Depends on: - High CPU utilization |
| {#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 by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Windows by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Windows by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Windows 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 by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Windows by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Windows by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Windows 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 |
| System time is out of sync | The host system time is different from the Zabbix server time. |
fuzzytime(/Windows 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 by Zabbix agent active/system.hostname,#1)<>last(/Windows by Zabbix agent active/system.hostname,#2) and length(last(/Windows by Zabbix agent active/system.hostname))>0 |
INFO | Manual close: YES |
| High memory utilization | The system is running out of free memory. |
min(/Windows 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 by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows 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.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak. |
max(/Windows 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 by Zabbix agent active/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
WARNING | Depends on: - High memory utilization |
| Zabbix agent: active checks are not available | Active checks are considered unavailable. Agent is not sending heartbeat for prolonged time. |
min(/Windows by Zabbix agent active/zabbix[host,active_agent,available],{$AGENT.TIMEOUT})=2 |
HIGH | |
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The network interface utilization is close to its estimated maximum bandwidth. |
(avg(/Windows by Zabbix agent active/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent active/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0Recovery expression: avg(/Windows by Zabbix agent active/net.if.in["{#IFGUID}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"]) and avg(/Windows by Zabbix agent active/net.if.out["{#IFGUID}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows 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 by Zabbix agent active/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by Zabbix agent active/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} Recovery expression: max(/Windows by Zabbix agent active/net.if.in["{#IFGUID}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Windows 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 by Zabbix agent active/net.if.speed["{#IFGUID}"])<0 and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 and last(/Windows 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 by Zabbix agent active/net.if.status["{#IFGUID}"])<>2 and (last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"],#1)<>last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"],#2))Recovery expression: last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"])=2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
| "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running | The service has a state other than "Running" for the last three times. |
min(/Windows by Zabbix agent active/service.info["{#SERVICE.NAME}",state],#3)<>0 |
AVERAGE | |
| Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows by Zabbix agent active/system.uptime)<10m |
WARNING | Manual close: YES |
| Zabbix agent is not available | For active agents, nodata() with agent.ping is used with {$AGENT.NODATA_TIMEOUT} as time threshold. |
nodata(/Windows by Zabbix agent active/agent.ping,{$AGENT.NODATA_TIMEOUT})=1 |
AVERAGE | Manual close: YES |
| {#DEVNAME}: Disk is overloaded | The disk appears to be under heavy load |
min(/Windows 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 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 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.
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums.
New official Windows template. Requires agent of Zabbix 6.0 and newer.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Install Zabbix agent on Windows OS according to Zabbix documentation.
| Name | Description | Default |
|---|---|---|
| {$AGENT.NODATA_TIMEOUT} | No data timeout for active agents. Consider to keep it relatively high. |
30m |
| {$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 expressed in %. |
90 |
| {$MEM.PAGE_TABLE_CRIT.MIN} | The warning threshold of the Free System Page Table Entries counter. |
5000 |
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$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 |
| {$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.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.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 |
| {$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.UTIL.MAX.WARN} | The warning threshold of disk time utilization in percent. |
95 |
| {$VFS.DEV.READ.AWAIT.WARN} | Disk read average response time (in s) before the trigger would fire. |
0.02 |
| {$VFS.DEV.WRITE.AWAIT.WARN} | Disk write average response time (in s) before the trigger would fire. |
0.02 |
| {$IFCONTROL} | 1 |
|
| {$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. |
Macro too long. Please see the template. |
| {$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 |
| {$IF.UTIL.MAX} | 90 |
|
| {$IF.ERRORS.WARN} | 2 |
|
| {$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. |
Macro too long. Please see the template. |
| {$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)$ |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows: Version of Zabbix agent running | Zabbix agent (active) | agent.version Preprocessing
|
|
| Windows: Host name of Zabbix agent running | Zabbix agent (active) | agent.hostname Preprocessing
|
|
| Windows: Zabbix agent ping | The agent always returns 1 for this item. It could be used in combination with nodata() for availability check. |
Zabbix agent (active) | agent.ping |
| Windows: CPU utilization | The CPU utilization expressed in %. |
Zabbix agent (active) | system.cpu.util |
| Windows: 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 agent (active) | perf_counter_en["\Processor Information(_total)% Interrupt Time"] |
| Windows: 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 agent (active) | perf_counter_en["\System\Context Switches/sec"] |
| Windows: 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 agent (active) | perf_counter_en["\Processor Information(_total)% Privileged Time"] |
| Windows: 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 agent (active) | perf_counter_en["\Processor Information(_total)% DPC Time"] |
| Windows: 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 agent (active) | perf_counter_en["\Processor Information(_total)% User Time"] |
| Windows: Number of cores | The number of logical processors available on the computer. |
Zabbix agent (active) | wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"] |
| Windows: 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 agent (active) | perf_counter_en["\System\Processor Queue Length"] |
| Windows: Used memory | Used memory in bytes. |
Zabbix agent (active) | vm.memory.size[used] |
| Windows: Total memory | The total memory expressed in bytes. |
Zabbix agent (active) | vm.memory.size[total] |
| Windows: Memory utilization | Memory utilization in %. |
Calculated | vm.memory.util |
| Windows: 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 agent (active) | perf_counter_en["\Memory\Cache Bytes"] |
| Windows: Free swap space | The free space of the swap volume/file expressed in bytes. |
Calculated | system.swap.free |
| Windows: Free swap space in % | The free space of the swap volume/file expressed in %. |
Dependent item | system.swap.pfree Preprocessing
|
| Windows: Used swap space in % | The used space of swap volume/file in percent. |
Zabbix agent (active) | perf_counter_en["\Paging file(_Total)% Usage"] |
| Windows: Total swap space | The total space of the swap volume/file expressed in bytes. |
Zabbix agent (active) | system.swap.size[,total] |
| Windows: 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 agent (active) | perf_counter_en["\Memory\Free System Page Table Entries"] |
| Windows: 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 agent (active) | perf_counter_en["\Memory\Page Faults/sec"] |
| Windows: 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 agent (active) | perf_counter_en["\Memory\Pages/sec"] |
| Windows: 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 agent (active) | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Windows: Uptime | The system uptime expressed in the following format: "N days, hh:mm:ss". |
Zabbix agent (active) | system.uptime |
| Windows: System local time | The local system time of the host. |
Zabbix agent (active) | system.localtime |
| Windows: System name | The host name of the system. |
Zabbix agent (active) | system.hostname Preprocessing
|
| Windows: System description | System description of the host. |
Zabbix agent (active) | system.uname Preprocessing
|
| Windows: Number of processes | The number of processes. |
Zabbix agent (active) | proc.num[] |
| Windows: Number of threads | The number of threads used by all running processes. |
Zabbix agent (active) | perf_counter_en["\System\Threads"] |
| Windows: Operating system architecture | The architecture of the operating system. |
Zabbix agent (active) | system.sw.arch Preprocessing
|
| Windows: Network interfaces WMI get | Raw data of win32_networkadapter. |
Zabbix agent (active) | wmi.getall[root\cimv2,"select Name,Description,NetConnectionID,Speed,AdapterTypeId,NetConnectionStatus,GUID from win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Zabbix agent is not available | For active agents, nodata() with agent.ping is used with {$AGENT.NODATA_TIMEOUT} as time threshold. |
nodata(/Windows by Zabbix agent active/agent.ping,{$AGENT.NODATA_TIMEOUT})=1 |
Average | Manual close: Yes |
| Windows: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/Windows by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning | |
| Windows: CPU interrupt time is too high | "The CPU Interrupt Time in the last 5 minutes exceeds {$CPU.INTERRUPT.CRIT.MAX}%." |
min(/Windows by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX} |
Warning | Depends on:
|
| Windows: CPU privileged time is too high | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
min(/Windows by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX} |
Warning | Depends on:
|
| Windows: 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 by Zabbix agent active/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows by Zabbix agent active/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX} |
Warning | Depends on:
|
| Windows: High memory utilization | The system is running out of free memory. |
min(/Windows by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
Average | |
| Windows: High swap space usage | This trigger is ignored, if there is no swap configured |
max(/Windows by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows by Zabbix agent active/system.swap.size[,total])>0 |
Warning | Depends on:
|
| Windows: Number of free system page table entries is too low | The Memory Free System Page Table Entries is less than {$MEM.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak. |
max(/Windows by Zabbix agent active/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN} |
Warning | Depends on:
|
| Windows: 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 by Zabbix agent active/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX} |
Warning | Depends on:
|
| Windows: Host has been restarted | The device uptime is less than 10 minutes. |
last(/Windows by Zabbix agent active/system.uptime)<10m |
Warning | Manual close: Yes |
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/system.hostname) and length(last(/Windows by Zabbix agent active/system.hostname))>0 |
Info | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | Discovery of file systems of different types. |
Zabbix agent (active) | vfs.fs.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FSLABEL}({#FSNAME}): Used space | Used storage in bytes |
Zabbix agent (active) | vfs.fs.size[{#FSNAME},used] |
| {#FSLABEL}({#FSNAME}): Total space | Total space in bytes |
Zabbix agent (active) | vfs.fs.size[{#FSNAME},total] |
| {#FSLABEL}({#FSNAME}): Space utilization | Space utilization in % for {#FSNAME} |
Zabbix agent (active) | vfs.fs.size[{#FSNAME},pused] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSLABEL}({#FSNAME}): Disk space is critically low | The volume's space usage exceeds the |
last(/Windows by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| {#FSLABEL}({#FSNAME}): Disk space is low | The volume's space usage exceeds the |
last(/Windows by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Physical disks discovery | Discovery of installed physical disks. |
Zabbix agent (active) | perf_instance_en.discovery[PhysicalDisk] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60] |
| {#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. |
Zabbix agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})% Idle Time",60] Preprocessing
|
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60] |
| {#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 agent (active) | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60] |
| {#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 agent (active) | perf_counter_en["\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 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 | This trigger might indicate the disk {#DEVNAME} saturation. |
min(/Windows 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 the disk {#DEVNAME} saturation. |
min(/Windows 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 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovery of installed network interfaces. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Bits received | Incoming traffic on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | The number of incoming packets dropped on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | The number of outgoing packets dropped on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}",dropped] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | The number of incoming packets with errors on the network interface. |
Zabbix agent (active) | net.if.in["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | The number of outgoing packets with errors on the network interface. |
Zabbix agent (active) | net.if.out["{#IFGUID}",errors] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
Dependent item | net.if.speed["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
Dependent item | net.if.type["{#IFGUID}"] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
Dependent item | net.if.status["{#IFGUID}"] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by Zabbix agent active/net.if.in["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"]) or avg(/Windows by Zabbix agent active/net.if.out["{#IFGUID}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])) and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by Zabbix agent active/net.if.in["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by Zabbix agent active/net.if.out["{#IFGUID}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])<0 and last(/Windows by Zabbix agent active/net.if.speed["{#IFGUID}"])>0 and last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"])=2 |
Info | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"])<>2 and (last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"],#1)<>last(/Windows by Zabbix agent active/net.if.status["{#IFGUID}"],#2)) |
Average | Manual close: Yes |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows services discovery | Discovery of Windows services of different types as defined in template's macros. |
Zabbix agent (active) | service.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) | Zabbix agent (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 by Zabbix agent active/service.info["{#SERVICE.NAME}",state],#3)<>0 |
Average |
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: 5.4 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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\System\Processor Queue Length"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | 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 (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m) | "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 (over {$CPU.UTIL.CRIT}% for 5m) |
| CPU privileged time is too high (over {$CPU.PRIV.CRIT.MAX}% for 5m) | 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 (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m) - High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |
| CPU queue length is too high (over {$CPU.QUEUE.CRIT.MAX} for 5m) | 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 (over {$CPU.UTIL.CRIT}% for 5m) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$MEM.PAGE_TABLE_CRIT.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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) | The system is running out of free memory. |
min(/Windows memory by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | |
| High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free) | This trigger is ignored, if there is no swap configured |
min(/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 (>{$MEMORY.UTIL.MAX}% for 5m) |
| Number of free system page table entries is too low (less {$MEM.PAGE_TABLE_CRIT.MIN} for 5m) | The Memory Free System Page Table Entries is less than {$MEM.PAGE_TABLE_CRIT.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 (>{$MEMORY.UTIL.MAX}% for 5m) |
| The Memory Pages/sec is too high (over {$MEM.PAGE_SEC.CRIT.MAX} for 5m) | 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 (>{$MEMORY.UTIL.MAX}% for 5m) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.FS.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 |
| {$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} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX - {#FSDRIVETYPE} MATCHES_REGEX - {#FSDRIVETYPE} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Filesystems | {#FSNAME}: Used space | Used storage in Bytes |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},used] |
| Filesystems | {#FSNAME}: Total space | Total space in Bytes |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},total] |
| Filesystems | {#FSNAME}: Space utilization | Space utilization in % for {#FSNAME} |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},pused] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than 5G. - The disk will be full in less than 24 hours. |
last(/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]))<5G or timeleft(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than 10G. - The disk will be full in less than 24 hours. |
last(/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]))<10G or timeleft(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in 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 | perf_instance_en.discovery[PhysicalDisk] Preprocessing: - STR_REPLACE: Filter: AND- {#DEVNAME} MATCHES_REGEX - {#DEVNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Storage | {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
ZABBIX_ACTIVE | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| Storage | {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
ZABBIX_ACTIVE | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DEVNAME}: Disk is overloaded (util > {$VFS.DEV.UTIL.MAX.WARN}% for 15m) | 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 (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}s for 15m - {#DEVNAME}: Disk write request responses are too high (write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}s for 15m) |
| {#DEVNAME}: Disk read request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}s for 15m | 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 (write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}s for 15m) | 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: 5.4 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: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | System description of the host. |
ZABBIX_ACTIVE | system.uname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 | perf_counter_en["\System\Threads"] |
| Inventory | Operating system architecture | Operating system architecture of the host. |
ZABBIX_ACTIVE | system.sw.arch Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s) | 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 (new name: {ITEM.VALUE}) | 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 (uptime < 10m) | 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: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | - |
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 |
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: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX - {#IFDESCR} MATCHES_REGEX - {#IFDESCR} NOT_MATCHES_REGEX - {#IFALIAS} MATCHES_REGEX - {#IFALIAS} NOT_MATCHES_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: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
ZABBIX_ACTIVE | net.if.out["{#IFGUID}"] Preprocessing: - CHANGE_PER_SECOND - 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
DEPENDENT | net.if.speed["{#IFGUID}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
DEPENDENT | net.if.type["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
DEPENDENT | net.if.status["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%) | 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}"])>0Recovery 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 (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) | 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: 5.4 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 |
| {$SERVICE.STARTUPNAME.MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:automatic |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:manual |
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} MATCHES_REGEX - {#SERVICE.NAME} NOT_MATCHES_REGEX - {#SERVICE.STARTUPNAME} MATCHES_REGEX - {#SERVICE.STARTUPNAME} NOT_MATCHES_REGEX |
| 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 (startup type {#SERVICE.STARTUPNAME}) | 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: 5.4 and higher
New official Windows template. Requires agent of Zabbix 4.4 and newer.
This template was tested on:
Install Zabbix agent on Windows OS according to Zabbix documentation.
No specific Zabbix configuration is required.
| Name |
|---|
| Windows CPU by Zabbix agent active |
| Windows filesystems by Zabbix agent active |
| Windows generic by Zabbix agent active |
| Windows memory by Zabbix agent active |
| Windows network by Zabbix agent active |
| Windows physical disks by Zabbix agent active |
| Windows services by Zabbix agent active |
| Zabbix agent active |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
For Zabbix version: 5.0 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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\System\Processor Queue Length"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) | CPU utilization is too high. The system might be slow to respond. |
{TEMPLATE_NAME:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT} |
WARNING | |
| CPU interrupt time is too high (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m) | "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%. |
{TEMPLATE_NAME:perf_counter_en["\Processor Information(_total)\% Interrupt Time"].min(5m)}>{$CPU.INTERRUPT.CRIT.MAX} |
WARNING | Depends on: - High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |
| CPU privileged time is too high (over {$CPU.PRIV.CRIT.MAX}% for 5m) | The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%. |
{TEMPLATE_NAME:perf_counter_en["\Processor Information(_total)\% Privileged Time"].min(5m)}>{$CPU.PRIV.CRIT.MAX} |
WARNING | Depends on: - CPU interrupt time is too high (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m) - High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |
| CPU queue length is too high (over {$CPU.QUEUE.CRIT.MAX} for 5m) | 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 }. |
{TEMPLATE_NAME:perf_counter_en["\System\Processor Queue Length"].min(5m)} - {TEMPLATE_NAME:wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"].last()} * 2 > {$CPU.QUEUE.CRIT.MAX} |
WARNING | Depends on: - High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$MEM.PAGE_SEC.CRIT.MAX} | The warning threshold of the Memory Pages/sec counter. |
1000 |
| {$MEM.PAGE_TABLE_CRIT.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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\Memory\Pool Nonpaged Bytes"] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) | The system is running out of free memory. |
{TEMPLATE_NAME:vm.memory.util.min(5m)}>{$MEMORY.UTIL.MAX} |
AVERAGE | |
| High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free) | This trigger is ignored, if there is no swap configured. |
{TEMPLATE_NAME:system.swap.pfree.max(5m)}<{$SWAP.PFREE.MIN.WARN} and {TEMPLATE_NAME:system.swap.size[,total].last()}>0 |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) |
| Number of free system page table entries is too low (less {$MEM.PAGE_TABLE_CRIT.MIN} for 5m) | The Memory Free System Page Table Entries is less than {$MEM.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak. |
{TEMPLATE_NAME:perf_counter_en["\Memory\Free System Page Table Entries"].max(5m)}<{$MEM.PAGE_TABLE_CRIT.MIN} |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) |
| The Memory Pages/sec is too high (over {$MEM.PAGE_SEC.CRIT.MAX} for 5m) | 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. |
{TEMPLATE_NAME:perf_counter_en["\Memory\Pages/sec"].min(5m)}>{$MEM.PAGE_SEC.CRIT.MAX} |
WARNING | Depends on: - High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.FS.FREE.MIN.CRIT} | The critical threshold of the filesystem utilization. |
5G |
| {$VFS.FS.FREE.MIN.WARN} | The warning threshold of the filesystem utilization. |
10G |
| {$VFS.FS.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 |
| {$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- A: {#FSTYPE} MATCHES_REGEX - B: {#FSTYPE} NOT_MATCHES_REGEX - C: {#FSNAME} MATCHES_REGEX - D: {#FSNAME} NOT_MATCHES_REGEX - E: {#FSDRIVETYPE} MATCHES_REGEX - F: {#FSDRIVETYPE} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Filesystems | {#FSNAME}: Used space | Used storage in Bytes |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},used] |
| Filesystems | {#FSNAME}: Total space | Total space in Bytes |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},total] |
| Filesystems | {#FSNAME}: Space utilization | Space utilization in % for {#FSNAME} |
ZABBIX_ACTIVE | vfs.fs.size[{#FSNAME},pused] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than {$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}. - The disk will be full in less than 24 hours. |
{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and (({TEMPLATE_NAME:vfs.fs.size[{#FSNAME},total].last()}-{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},used].last()})<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or {TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) |
AVERAGE | Manual close: YES |
| {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%) | Two conditions should match: First, space utilization should be above {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}. Second condition should be one of the following: - The disk free space is less than {$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"}. - The disk will be full in less than 24 hours. |
{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and (({TEMPLATE_NAME:vfs.fs.size[{#FSNAME},total].last()}-{TEMPLATE_NAME:vfs.fs.size[{#FSNAME},used].last()})<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or {TEMPLATE_NAME:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) |
WARNING | Manual close: YES Depends on: - {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%) |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$VFS.DEV.DEVNAME.MATCHES} | This macro is used in 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 | perf_instance_en.discovery[PhysicalDisk] Preprocessing: - STR_REPLACE: Filter: AND- A: {#DEVNAME} MATCHES_REGEX - B: {#DEVNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| Storage | {#DEVNAME}: Disk read rate | Rate of read operations on the disk. |
ZABBIX_ACTIVE | perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60] |
| Storage | {#DEVNAME}: Disk write rate | Rate of write operations on the disk. |
ZABBIX_ACTIVE | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\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 | perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#DEVNAME}: Disk is overloaded (util > {$VFS.DEV.UTIL.MAX.WARN}% for 15m) | The disk appears to be under heavy load |
{TEMPLATE_NAME:perf_counter_en["\PhysicalDisk({#DEVNAME})\% Idle Time",60].min(15m)}>{$VFS.DEV.UTIL.MAX.WARN} |
WARNING | Manual close: YES Depends on: - {#DEVNAME}: Disk read request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}s for 15m - {#DEVNAME}: Disk write request responses are too high (write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}s for 15m) |
| {#DEVNAME}: Disk read request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}s for 15m | This trigger might indicate disk {#DEVNAME} saturation. |
{TEMPLATE_NAME:perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60].min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
| {#DEVNAME}: Disk write request responses are too high (write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}s for 15m) | This trigger might indicate disk {#DEVNAME} saturation. |
{TEMPLATE_NAME:perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60].min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name | Description | Default |
|---|---|---|
| {$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: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | System description of the host. |
ZABBIX_ACTIVE | system.uname Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 | perf_counter_en["\System\Threads"] |
| Inventory | Operating system architecture | Operating system architecture of the host. |
ZABBIX_ACTIVE | system.sw.arch Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s) | The host system time is different from the Zabbix server time. |
{TEMPLATE_NAME:system.localtime.fuzzytime({$SYSTEM.FUZZYTIME.MAX})}=0 |
WARNING | Manual close: YES |
| System name has changed (new name: {ITEM.VALUE}) | System name has changed. Ack to close. |
{TEMPLATE_NAME:system.hostname.diff()}=1 and {TEMPLATE_NAME:system.hostname.strlen()}>0 |
INFO | Manual close: YES |
| Host has been restarted (uptime < 10m) | The device uptime is less than 10 minutes. |
{TEMPLATE_NAME:system.uptime.last()}<10m |
WARNING | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
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 |
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: - DISCARD_UNCHANGED_HEARTBEAT: Filter: AND- C: {#IFNAME} MATCHES_REGEX - D: {#IFNAME} NOT_MATCHES_REGEX - E: {#IFDESCR} MATCHES_REGEX - F: {#IFDESCR} NOT_MATCHES_REGEX - G: {#IFALIAS} MATCHES_REGEX - H: {#IFALIAS} NOT_MATCHES_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: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | Outgoing traffic on the network interface. |
ZABBIX_ACTIVE | net.if.out["{#IFGUID}"] Preprocessing: - CHANGE_PER_SECOND - 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| 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: - CHANGE_PER_SECOND |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | Estimated bandwidth of the network interface if any. |
DEPENDENT | net.if.speed["{#IFGUID}"] Preprocessing: - JSONPATH: ⛔️ON_FAIL: - JAVASCRIPT: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | The type of the network interface. |
DEPENDENT | net.if.type["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network_interfaces | Interface {#IFNAME}({#IFALIAS}): Operational status | The operational status of the network interface. |
DEPENDENT | net.if.status["{#IFGUID}"] Preprocessing: - JSONPATH: - DISCARD_UNCHANGED_HEARTBEAT: |
| 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 win32_networkadapter where PhysicalAdapter=True and NetConnectionStatus>0"] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%) | The network interface utilization is close to its estimated maximum bandwidth. |
({TEMPLATE_NAME:net.if.in["{#IFGUID}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{TEMPLATE_NAME:net.if.speed["{#IFGUID}"].last()} or {TEMPLATE_NAME:net.if.out["{#IFGUID}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{TEMPLATE_NAME:net.if.speed["{#IFGUID}"].last()}) and {TEMPLATE_NAME:net.if.speed["{#IFGUID}"].last()}>0Recovery expression: {TEMPLATE_NAME:net.if.in["{#IFGUID}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{TEMPLATE_NAME:net.if.speed["{#IFGUID}"].last()} and {TEMPLATE_NAME:net.if.out["{#IFGUID}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{TEMPLATE_NAME:net.if.speed["{#IFGUID}"].last()} |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m) | Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold |
{TEMPLATE_NAME:net.if.in["{#IFGUID}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} or {TEMPLATE_NAME:net.if.out["{#IFGUID}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}Recovery expression: {TEMPLATE_NAME:net.if.in["{#IFGUID}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and {TEMPLATE_NAME:net.if.out["{#IFGUID}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 |
WARNING | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Ack to close. |
{TEMPLATE_NAME:net.if.speed["{#IFGUID}"].change()}<0 and {TEMPLATE_NAME:net.if.speed["{#IFGUID}"].last()}>0 and {TEMPLATE_NAME:net.if.status["{#IFGUID}"].last()}=2 |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: 1. Can be triggered if operations status is down. 2. {$IFCONTROL:"{#IFNAME}"}=1 - user can redefine Context macro to value - 0. That marks this interface as not important. No new trigger will be fired if this interface is down. 3. {TEMPLATE_NAME:METRIC.diff()}=1) - trigger fires only if operational status is different from Connected(2). WARNING: if closed manually - won't fire again on next poll, because of .diff. |
{$IFCONTROL:"{#IFNAME}"}=1 and ({TEMPLATE_NAME:net.if.status["{#IFGUID}"].last()}<>2 and {TEMPLATE_NAME:net.if.status["{#IFGUID}"].diff()}=1)Recovery expression: {TEMPLATE_NAME:net.if.status["{#IFGUID}"].last()}=2 or {$IFCONTROL:"{#IFNAME}"}=0 |
AVERAGE | Manual close: YES |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 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.EXTENDED} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(CDPUserSvc_.+ |
| {$SERVICE.NAME.NOT_MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:RemoteRegistry |
| {$SERVICE.STARTUPNAME.MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:automatic |
| {$SERVICE.STARTUPNAME.NOT_MATCHES} | This macro is used in Service discovery. Can be overridden on the host or linked template level. |
`^(?:manual |
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- A: {#SERVICE.NAME} MATCHES_REGEX - B: {#SERVICE.NAME} NOT_MATCHES_REGEX - C: {#SERVICE.NAME} NOT_MATCHES_REGEX - D: {#SERVICE.STARTUPNAME} MATCHES_REGEX - E: {#SERVICE.STARTUPNAME} NOT_MATCHES_REGEX |
| 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 (startup type {#SERVICE.STARTUPNAME}) | The service has a state other than "Running" for the last three times. |
{TEMPLATE_NAME:service.info["{#SERVICE.NAME}",state].min(#3)}<>0 |
AVERAGE |
Please report any issues with the template at https://support.zabbix.com
For Zabbix version: 5.0 and higher
New official Windows template. Requires agent of Zabbix 4.4 and newer.
This template was tested on:
Install Zabbix agent on Windows OS according to Zabbix documentation.
No specific Zabbix configuration is required.
| Name |
|---|
| Windows CPU by Zabbix agent active |
| Windows filesystems by Zabbix agent active |
| Windows generic by Zabbix agent active |
| Windows memory by Zabbix agent active |
| Windows network by Zabbix agent active |
| Windows physical disks by Zabbix agent active |
| Windows services by Zabbix agent active |
| Zabbix agent active |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
You can also provide a feedback, discuss the template or ask for help with it at ZABBIX forums.
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_snmp?at=release/7.4
This is an official Windows template. It requires an SNMP client.
MIBs used:
64-bit I/O is not supported even though IfxTable is present.
Currently, Windows gets its interface status from MIB-2. Since these 64-bit SNMP counters (ifHCInOctets, ifHCOutOctets, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it.
ifXTable is not supported.
EtherLike MIB is not supported
HOST-RESOURCES-MIB::hrStorageSize is limited to number 2147483647.
Storage size is calculated using: hrStorageSize and hrStorageAllocationUnits.
An allocation size of 512 bytes, sets the limit of monitored device to 1TB.
| hrStorageAllocationUnits | Max size (TB) |
|---|---|
| 512 bytes | 1 |
| 1024 bytes | 2 |
| 2048 bytes | 4 |
| 64 KB | 128 |
Zabbix version: 7.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Refer to the vendor documentation.
| Name | Description | Default |
|---|---|---|
| {$SNMP.TIMEOUT} | Time interval for the SNMP availability trigger. |
5m |
| {$ICMP_LOSS_WARN} | Warning threshold of ICMP packet loss in %. |
20 |
| {$ICMP_RESPONSE_TIME_WARN} | Warning threshold of the average ICMP response time in seconds. |
0.15 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.*(\.4|\.9|hrStorageFixedDisk|hrStorageFlashMemory)$ |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$MEMORY.UTIL.MAX} | The warning threshold of the "Physical memory: Memory utilization" item. |
90 |
| {$MEMORY.TYPE.MATCHES} | Used in memory discovery. Can be overridden on the host or linked template level. |
.*(\.2|hrStorageRam)$ |
| {$MEMORY.TYPE.NOT_MATCHES} | 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.NAME.MATCHES} | Used in memory discovery. Can be overridden on the host or linked template level. |
.* |
| {$MEMORY.NAME.NOT_MATCHES} | Used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results. |
CHANGE_IF_NEEDED |
| {$CPU.UTIL.CRIT} | Critical threshold of CPU utilization expressed in %. |
90 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore |
^6$ |
| {$NET.IF.IFADMINSTATUS.MATCHES} | Used in network interface discovery rule filters. |
^.*$ |
| {$NET.IF.IFADMINSTATUS.NOT_MATCHES} | Ignore |
^2$ |
| {$NET.IF.IFDESCR.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in network interface discovery rule filters. |
Macro too long. Please see the template. |
| {$NET.IF.IFALIAS.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$NET.IF.IFTYPE.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFTYPE.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Uptime (network) | MIB: SNMPv2-MIB Time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| Uptime (hardware) | MIB: HOST-RESOURCES-MIB The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system. |
SNMP agent | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| System location | MIB: SNMPv2-MIB Physical location of the node (e.g., |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| System contact details | MIB: SNMPv2-MIB The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| System object ID | MIB: SNMPv2-MIB The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| System name | MIB: SNMPv2-MIB An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string. |
SNMP agent | system.name Preprocessing
|
| System description | MIB: SNMPv2-MIB A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| ICMP ping | The host accessibility by ICMP ping. 0 - ICMP ping fails; 1 - ICMP ping successful. |
Simple check | icmpping |
| ICMP loss | The percentage of lost packets. |
Simple check | icmppingloss |
| ICMP response time | The ICMP ping response time (in seconds). |
Simple check | icmppingsec |
| Windows: SNMP walk mounted filesystems | HOST-RESOURCES-MIB::hrStorage discovery. |
SNMP agent | vfs.fs.walk Preprocessing
|
| 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 agent | system.cpu.util Preprocessing
|
| Windows: SNMP walk network interfaces | Discovering interfaces from IF-MIB. |
SNMP agent | net.if.walk |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Host has been restarted | Uptime is less than 10 minutes. |
(last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Windows by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/Windows by SNMP/system.name,#1)<>last(/Windows by SNMP/system.name,#2) and length(last(/Windows by SNMP/system.name))>0 |
Info | Manual close: Yes |
| Windows: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/Windows by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| Windows: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/Windows by SNMP/icmpping,#3)=0 |
High | |
| Windows: High ICMP ping loss | ICMP packets loss detected. |
min(/Windows by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Windows by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
| Windows: High ICMP ping response time | Average ICMP response time is too high. |
avg(/Windows by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Windows: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows by SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | HOST-RESOURCES-MIB::hrStorage discovery with storage filter. |
Dependent item | vfs.fs.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | HOST-RESOURCES-MIB::hrStorage. Intermediate data for subsequent processing. |
Dependent item | vfs.fs.walk.data[hrStorage.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
Dependent item | vfs.fs.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | 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. |
Dependent item | vfs.fs.total[hrStorageSize.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | The space utilization expressed in % for {#FSNAME}. |
Dependent item | vfs.fs.pused[{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: FS [{#FSNAME}]: Space is critically low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%' limit. |
min(/Windows by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Windows: FS [{#FSNAME}]: Space is low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%' limit. |
min(/Windows by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Memory discovery | HOST-RESOURCES-MIB::hrStorage discovery with memory filter |
Dependent item | vm.memory.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#MEMNAME}: Get data | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
Dependent item | vm.memory.data[{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Used | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
Dependent item | vm.memory.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Total | 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. |
Dependent item | vm.memory.walk.data.total[hrStorageSize.{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Utilization | Memory utilization in %. |
Dependent item | vm.memory.util[{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: {#MEMNAME}: High memory utilization | The system is running out of free memory. |
min(/Windows by SNMP/vm.memory.util[{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX} |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovering interfaces from IF-MIB. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Operational status | MIB: IF-MIB The current operational state of the interface. - The testing(3) state indicates that no operational packet scan be passed - If ifAdminStatus is down(2) then ifOperStatus should be down(2) - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. |
Dependent item | net.if.status[ifOperStatus.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits received | MIB: IF-MIB The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and another times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in[ifInOctets.{#SNMPINDEX}] Preprocessing
|
| 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. |
Dependent item | net.if.out[ifOutOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.errors[ifInErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.errors[ifOutErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.discards[ifInDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | MIB: IF-MIB The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention. |
Dependent item | net.if.type[ifType.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero. |
Dependent item | net.if.speed[ifHighSpeed.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) |
Average | Manual close: Yes |
| Windows: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Windows by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) |
Info | Manual close: Yes Depends on:
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_snmp?at=release/7.2
This is an official Windows template. It requires an SNMP client.
MIBs used:
IfxTable is present.
Currently, Windows gets its interface status from MIB-2. Since these 64-bit SNMP counters (ifHCInOctets, ifHCOutOctets, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it.
https://social.technet.microsoft.com/Forums/windowsserver/en-US/07b62ff0-94f6-40ca-a99d-d129c1b33d70/windows-2008-r2-snmp-64bit-counters-support?forum=winservergen
ifXTable is not supported.
hrStorageSize and hrStorageAllocationUnits.
An allocation size of 512 bytes, sets the limit of monitored device to 1TB.
| hrStorageAllocationUnits | Max size (TB) |
|---|---|
| 512 bytes | 1 |
| 1024 bytes | 2 |
| 2048 bytes | 4 |
| 64 KB | 128 |
Zabbix version: 7.2 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Refer to the vendor documentation.
| Name | Description | Default |
|---|---|---|
| {$SNMP.TIMEOUT} | Time interval for the SNMP availability trigger. |
5m |
| {$ICMP_LOSS_WARN} | Warning threshold of ICMP packet loss in %. |
20 |
| {$ICMP_RESPONSE_TIME_WARN} | Warning threshold of the average ICMP response time in seconds. |
0.15 |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.*(\.4|\.9|hrStorageFixedDisk|hrStorageFlashMemory)$ |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$MEMORY.UTIL.MAX} | The warning threshold of the "Physical memory: Memory utilization" item. |
90 |
| {$MEMORY.TYPE.NOT_MATCHES} | 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} | Used in memory discovery. Can be overridden on the host or linked template level. |
.*(\.2|hrStorageRam)$ |
| {$MEMORY.NAME.MATCHES} | Used in memory discovery. Can be overridden on the host or linked template level. |
.* |
| {$MEMORY.NAME.NOT_MATCHES} | Used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results. |
CHANGE_IF_NEEDED |
| {$CPU.UTIL.CRIT} | Critical threshold of CPU utilization expressed in %. |
90 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore |
^6$ |
| {$NET.IF.IFADMINSTATUS.MATCHES} | Used in network interface discovery rule filters. |
^.*$ |
| {$NET.IF.IFADMINSTATUS.NOT_MATCHES} | Ignore |
^2$ |
| {$NET.IF.IFDESCR.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in network interface discovery rule filters. |
Macro too long. Please see the template. |
| {$NET.IF.IFALIAS.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$NET.IF.IFTYPE.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFTYPE.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Uptime (network) | MIB: SNMPv2-MIB Time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| Uptime (hardware) | MIB: HOST-RESOURCES-MIB The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system. |
SNMP agent | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| System location | MIB: SNMPv2-MIB Physical location of the node (e.g., |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| System contact details | MIB: SNMPv2-MIB The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| System object ID | MIB: SNMPv2-MIB The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| System name | MIB: SNMPv2-MIB An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string. |
SNMP agent | system.name Preprocessing
|
| System description | MIB: SNMPv2-MIB A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| ICMP ping | Simple check | icmpping | |
| ICMP loss | Simple check | icmppingloss | |
| ICMP response time | Simple check | icmppingsec | |
| Windows: SNMP walk mounted filesystems | HOST-RESOURCES-MIB::hrStorage discovery. |
SNMP agent | vfs.fs.walk Preprocessing
|
| 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 agent | system.cpu.util Preprocessing
|
| Windows: SNMP walk network interfaces | Discovering interfaces from IF-MIB. |
SNMP agent | net.if.walk |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Host has been restarted | Uptime is less than 10 minutes. |
(last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Windows by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/Windows by SNMP/system.name,#1)<>last(/Windows by SNMP/system.name,#2) and length(last(/Windows by SNMP/system.name))>0 |
Info | Manual close: Yes |
| Windows: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/Windows by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| Windows: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/Windows by SNMP/icmpping,#3)=0 |
High | |
| Windows: High ICMP ping loss | min(/Windows by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Windows by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
|
| Windows: High ICMP ping response time | Average ICMP response time is too high. |
avg(/Windows by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Windows: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows by SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | HOST-RESOURCES-MIB::hrStorage discovery with storage filter. |
Dependent item | vfs.fs.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | HOST-RESOURCES-MIB::hrStorage. Intermediate data for subsequent processing. |
Dependent item | vfs.fs.walk.data[hrStorage.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
Dependent item | vfs.fs.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | 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. |
Dependent item | vfs.fs.total[hrStorageSize.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | The space utilization expressed in % for {#FSNAME}. |
Dependent item | vfs.fs.pused[{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: FS [{#FSNAME}]: Space is critically low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%' limit. |
min(/Windows by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Windows: FS [{#FSNAME}]: Space is low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%' limit. |
min(/Windows by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Memory discovery | HOST-RESOURCES-MIB::hrStorage discovery with memory filter |
Dependent item | vm.memory.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#MEMNAME}: Get data | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
Dependent item | vm.memory.data[{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Used | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
Dependent item | vm.memory.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Total | 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. |
Dependent item | vm.memory.walk.data.total[hrStorageSize.{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Utilization | Memory utilization in %. |
Dependent item | vm.memory.util[{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: {#MEMNAME}: High memory utilization | The system is running out of free memory. |
min(/Windows by SNMP/vm.memory.util[{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX} |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovering interfaces from IF-MIB. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Operational status | MIB: IF-MIB The current operational state of the interface. - The testing(3) state indicates that no operational packet scan be passed - If ifAdminStatus is down(2) then ifOperStatus should be down(2) - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. |
Dependent item | net.if.status[ifOperStatus.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits received | MIB: IF-MIB The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and another times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in[ifInOctets.{#SNMPINDEX}] Preprocessing
|
| 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. |
Dependent item | net.if.out[ifOutOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.errors[ifInErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.errors[ifOutErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.discards[ifInDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | MIB: IF-MIB The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention. |
Dependent item | net.if.type[ifType.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero. |
Dependent item | net.if.speed[ifHighSpeed.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) |
Average | Manual close: Yes |
| Windows: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Windows by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) |
Info | Manual close: Yes Depends on:
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_snmp?at=release/7.0
This is an official Windows template. It requires an SNMP client.
MIBs used:
64-bit I/O is not supported even though IfxTable is present.
Currently, Windows gets its interface status from MIB-2. Since these 64-bit SNMP counters (ifHCInOctets, ifHCOutOctets, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it.
ifXTable is not supported.
EtherLike MIB is not supported
HOST-RESOURCES-MIB::hrStorageSize is limited to number 2147483647.
Storage size is calculated using: hrStorageSize and hrStorageAllocationUnits.
An allocation size of 512 bytes, sets the limit of monitored device to 1TB.
| hrStorageAllocationUnits | Max size (TB) |
|---|---|
| 512 bytes | 1 |
| 1024 bytes | 2 |
| 2048 bytes | 4 |
| 64 KB | 128 |
Zabbix version: 7.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Refer to the vendor documentation.
| Name | Description | Default |
|---|---|---|
| {$SNMP.TIMEOUT} | Time interval for the SNMP availability trigger. |
5m |
| {$ICMP_LOSS_WARN} | Warning threshold of ICMP packet loss in %. |
20 |
| {$ICMP_RESPONSE_TIME_WARN} | Warning threshold of the average ICMP response time in seconds. |
0.15 |
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.*(\.4|\.9|hrStorageFixedDisk|hrStorageFlashMemory)$ |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$MEMORY.UTIL.MAX} | The warning threshold of the "Physical memory: Memory utilization" item. |
90 |
| {$MEMORY.TYPE.NOT_MATCHES} | 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} | Used in memory discovery. Can be overridden on the host or linked template level. |
.*(\.2|hrStorageRam)$ |
| {$MEMORY.NAME.MATCHES} | Used in memory discovery. Can be overridden on the host or linked template level. |
.* |
| {$MEMORY.NAME.NOT_MATCHES} | Used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results. |
CHANGE_IF_NEEDED |
| {$CPU.UTIL.CRIT} | Critical threshold of CPU utilization expressed in %. |
90 |
| {$IFCONTROL} | Link status trigger will be fired only for interfaces where the context macro equals "1". |
1 |
| {$NET.IF.IFNAME.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filters out |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | Used for network interface discovery. Can be overridden on the host or linked template level. |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore |
^6$ |
| {$NET.IF.IFADMINSTATUS.MATCHES} | Used in network interface discovery rule filters. |
^.*$ |
| {$NET.IF.IFADMINSTATUS.NOT_MATCHES} | Ignore |
^2$ |
| {$NET.IF.IFDESCR.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFDESCR.NOT_MATCHES} | Used in network interface discovery rule filters. |
Macro too long. Please see the template. |
| {$NET.IF.IFALIAS.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFALIAS.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$NET.IF.IFTYPE.MATCHES} | Used in network interface discovery rule filters. |
.* |
| {$NET.IF.IFTYPE.NOT_MATCHES} | Used in network interface discovery rule filters. |
CHANGE_IF_NEEDED |
| {$IF.UTIL.MAX} | Used as a threshold in the interface utilization trigger. |
90 |
| {$IF.ERRORS.WARN} | Warning threshold of error packet rate. Can be used with interface name as context. |
2 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Uptime (network) | MIB: SNMPv2-MIB Time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| Uptime (hardware) | MIB: HOST-RESOURCES-MIB The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system. |
SNMP agent | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| System location | MIB: SNMPv2-MIB Physical location of the node (e.g., |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| System contact details | MIB: SNMPv2-MIB The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| System object ID | MIB: SNMPv2-MIB The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| System name | MIB: SNMPv2-MIB An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string. |
SNMP agent | system.name Preprocessing
|
| System description | MIB: SNMPv2-MIB A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible values: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| ICMP ping | The host accessibility by ICMP ping. 0 - ICMP ping fails; 1 - ICMP ping successful. |
Simple check | icmpping |
| ICMP loss | The percentage of lost packets. |
Simple check | icmppingloss |
| ICMP response time | The ICMP ping response time (in seconds). |
Simple check | icmppingsec |
| Windows: SNMP walk mounted filesystems | HOST-RESOURCES-MIB::hrStorage discovery. |
SNMP agent | vfs.fs.walk Preprocessing
|
| 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 agent | system.cpu.util Preprocessing
|
| Windows: SNMP walk network interfaces | Discovering interfaces from IF-MIB. |
SNMP agent | net.if.walk |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Host has been restarted | Uptime is less than 10 minutes. |
(last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Windows by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/Windows by SNMP/system.name,#1)<>last(/Windows by SNMP/system.name,#2) and length(last(/Windows by SNMP/system.name))>0 |
Info | Manual close: Yes |
| Windows: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/Windows by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| Windows: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/Windows by SNMP/icmpping,#3)=0 |
High | |
| Windows: High ICMP ping loss | ICMP packets loss detected. |
min(/Windows by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Windows by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
| Windows: High ICMP ping response time | Average ICMP response time is too high. |
avg(/Windows by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
| Windows: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows by SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | HOST-RESOURCES-MIB::hrStorage discovery with storage filter. |
Dependent item | vfs.fs.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | HOST-RESOURCES-MIB::hrStorage. Intermediate data for subsequent processing. |
Dependent item | vfs.fs.walk.data[hrStorage.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
Dependent item | vfs.fs.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | 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. |
Dependent item | vfs.fs.total[hrStorageSize.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | The space utilization expressed in % for {#FSNAME}. |
Dependent item | vfs.fs.pused[{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: FS [{#FSNAME}]: Space is critically low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%' limit. |
min(/Windows by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| Windows: FS [{#FSNAME}]: Space is low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%' limit. |
min(/Windows by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Memory discovery | HOST-RESOURCES-MIB::hrStorage discovery with memory filter |
Dependent item | vm.memory.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#MEMNAME}: Get data | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
Dependent item | vm.memory.data[{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Used | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
Dependent item | vm.memory.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Total | 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. |
Dependent item | vm.memory.walk.data.total[hrStorageSize.{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Utilization | Memory utilization in %. |
Dependent item | vm.memory.util[{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: {#MEMNAME}: High memory utilization | The system is running out of free memory. |
min(/Windows by SNMP/vm.memory.util[{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX} |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovering interfaces from IF-MIB. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Operational status | MIB: IF-MIB The current operational state of the interface. - The testing(3) state indicates that no operational packet scan be passed - If ifAdminStatus is down(2) then ifOperStatus should be down(2) - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. |
Dependent item | net.if.status[ifOperStatus.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits received | MIB: IF-MIB The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and another times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in[ifInOctets.{#SNMPINDEX}] Preprocessing
|
| 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. |
Dependent item | net.if.out[ifOutOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.errors[ifInErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.errors[ifOutErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.discards[ifInDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | MIB: IF-MIB The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention. |
Dependent item | net.if.type[ifType.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero. |
Dependent item | net.if.speed[ifHighSpeed.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) |
Average | Manual close: Yes |
| Windows: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Windows by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Windows: Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) |
Info | Manual close: Yes Depends on:
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_snmp?at=release/6.4
This is an official Windows template. It requires an SNMP client.
MIBs used:
IfxTable is present.
Currently, Windows gets its interface status from MIB-2. Since these 64-bit SNMP counters (ifHCInOctets, ifHCOutOctets, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it.
https://social.technet.microsoft.com/Forums/windowsserver/en-US/07b62ff0-94f6-40ca-a99d-d129c1b33d70/windows-2008-r2-snmp-64bit-counters-support?forum=winservergen
ifXTable is not supported.
hrStorageSize and hrStorageAllocationUnits.
An allocation size of 512 bytes, sets the limit of monitored device to 1TB.
| hrStorageAllocationUnits | Max size (TB) |
|---|---|
| 512 bytes | 1 |
| 1024 bytes | 2 |
| 2048 bytes | 4 |
| 64 KB | 128 |
Zabbix version: 6.4 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Refer to the vendor documentation.
| Name | Description | Default |
|---|---|---|
| {$SNMP.TIMEOUT} | 5m |
|
| {$ICMP_LOSS_WARN} | 20 |
|
| {$ICMP_RESPONSE_TIME_WARN} | 0.15 |
|
| {$VFS.FS.FSNAME.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$VFS.FS.FSTYPE.MATCHES} | Used in filesystem discovery. Can be overridden on the host or linked template level. |
.*(\.4|\.9|hrStorageFixedDisk|hrStorageFlashMemory)$ |
| {$VFS.FS.PUSED.MAX.CRIT} | The critical threshold of the filesystem utilization. |
90 |
| {$VFS.FS.PUSED.MAX.WARN} | The warning threshold of the filesystem utilization. |
80 |
| {$MEMORY.UTIL.MAX} | The warning threshold of the "Physical memory: Memory utilization" item. |
90 |
| {$MEMORY.TYPE.NOT_MATCHES} | 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} | Used in memory discovery. Can be overridden on the host or linked template level. |
.*(\.2|hrStorageRam)$ |
| {$MEMORY.NAME.MATCHES} | Used in memory discovery. Can be overridden on the host or linked template level. |
.* |
| {$MEMORY.NAME.NOT_MATCHES} | Used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results. |
CHANGE_IF_NEEDED |
| {$CPU.UTIL.CRIT} | Critical threshold of CPU utilization expressed in %. |
90 |
| {$IFCONTROL} | 1 |
|
| {$NET.IF.IFNAME.MATCHES} | ^.*$ |
|
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | ^.*$ |
|
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore notPresent(6) |
^6$ |
| {$NET.IF.IFADMINSTATUS.MATCHES} | ^.*$ |
|
| {$NET.IF.IFADMINSTATUS.NOT_MATCHES} | Ignore down(2) administrative status |
^2$ |
| {$NET.IF.IFDESCR.MATCHES} | .* |
|
| {$NET.IF.IFDESCR.NOT_MATCHES} | Macro too long. Please see the template. |
|
| {$NET.IF.IFALIAS.MATCHES} | .* |
|
| {$NET.IF.IFALIAS.NOT_MATCHES} | CHANGE_IF_NEEDED |
|
| {$NET.IF.IFTYPE.MATCHES} | .* |
|
| {$NET.IF.IFTYPE.NOT_MATCHES} | CHANGE_IF_NEEDED |
|
| {$IF.UTIL.MAX} | 90 |
|
| {$IF.ERRORS.WARN} | 2 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows: Uptime (network) | MIB: SNMPv2-MIB The time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| Windows: Uptime (hardware) | MIB: HOST-RESOURCES-MIB The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system. |
SNMP agent | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| Windows: SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| Windows: System location | MIB: SNMPv2-MIB The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string. |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| Windows: System contact details | MIB: SNMPv2-MIB The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| Windows: System object ID | MIB: SNMPv2-MIB The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| Windows: System name | MIB: SNMPv2-MIB An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string. |
SNMP agent | system.name Preprocessing
|
| Windows: System description | MIB: SNMPv2-MIB A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| Windows: SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible value: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| Windows: ICMP ping | Simple check | icmpping | |
| Windows: ICMP loss | Simple check | icmppingloss | |
| Windows: ICMP response time | Simple check | icmppingsec | |
| Windows: SNMP walk mounted filesystems | HOST-RESOURCES-MIB::hrStorage discovery. |
SNMP agent | vfs.fs.walk Preprocessing
|
| Windows: 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 agent | system.cpu.util Preprocessing
|
| Windows: SNMP walk network interfaces | Discovering interfaces from IF-MIB. |
SNMP agent | net.if.walk |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Host has been restarted | Uptime is less than 10 minutes. |
(last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Windows by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/Windows by SNMP/system.name,#1)<>last(/Windows by SNMP/system.name,#2) and length(last(/Windows by SNMP/system.name))>0 |
Info | Manual close: Yes |
| Windows: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/Windows by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| Windows: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/Windows by SNMP/icmpping,#3)=0 |
High | |
| Windows: High ICMP ping loss | min(/Windows by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Windows by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
|
| Windows: High ICMP ping response time | avg(/Windows by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
|
| Windows: High CPU utilization | CPU utilization is too high. The system might be slow to respond. |
min(/Windows by SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Mounted filesystem discovery | HOST-RESOURCES-MIB::hrStorage discovery with storage filter. |
Dependent item | vfs.fs.discovery[snmp] Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| FS [{#FSNAME}]: Get data | HOST-RESOURCES-MIB::hrStorage. Intermediate data for subsequent processing. |
Dependent item | vfs.fs.walk.data[hrStorage.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
Dependent item | vfs.fs.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Total | 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. |
Dependent item | vfs.fs.total[hrStorageSize.{#SNMPINDEX}] Preprocessing
|
| FS [{#FSNAME}]: Space: Used, in % | The space utilization expressed in % for {#FSNAME}. |
Dependent item | vfs.fs.pused[{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| FS [{#FSNAME}]: Space is critically low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%' limit. |
min(/Windows by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| FS [{#FSNAME}]: Space is low | The storage space usage exceeds the '{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%' limit. |
min(/Windows by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Memory discovery | HOST-RESOURCES-MIB::hrStorage discovery with memory filter |
Dependent item | vm.memory.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#MEMNAME}: Get data | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
Dependent item | vm.memory.data[{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Used | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
Dependent item | vm.memory.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Total | 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. |
Dependent item | vm.memory.walk.data.total[hrStorageSize.{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Utilization | Memory utilization in %. |
Dependent item | vm.memory.util[{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#MEMNAME}: High memory utilization | The system is running out of free memory. |
min(/Windows by SNMP/vm.memory.util[{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX} |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovering interfaces from IF-MIB. |
Dependent item | net.if.discovery Preprocessing
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Operational status | MIB: IF-MIB The current operational state of the interface. - The testing(3) state indicates that no operational packet scan be passed - If ifAdminStatus is down(2) then ifOperStatus should be down(2) - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. |
Dependent item | net.if.status[ifOperStatus.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Bits received | MIB: IF-MIB The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and another times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in[ifInOctets.{#SNMPINDEX}] Preprocessing
|
| 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. |
Dependent item | net.if.out[ifOutOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.errors[ifInErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.errors[ifOutErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
Dependent item | net.if.in.discards[ifInDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | MIB: IF-MIB The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention. |
Dependent item | net.if.type[ifType.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of |
Dependent item | net.if.speed[ifHighSpeed.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) |
Average | Manual close: Yes |
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Windows by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) |
Info | Manual close: Yes Depends on:
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_snmp?at=release/6.2
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 |
| {$ICMP_LOSS_WARN} | - |
20 |
| {$ICMP_RESPONSE_TIME_WARN} | - |
0.15 |
| {$IF.ERRORS.WARN} | - |
2 |
| {$IF.UTIL.MAX} | - |
90 |
| {$IFCONTROL} | - |
1 |
| {$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 |
| {$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 |
| {$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 |
| {$NET.IF.IFNAME.MATCHES} | - |
^.*$ |
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
`(^Software Loopback Interface |
| {$NET.IF.IFOPERSTATUS.MATCHES} | - |
^.*$ |
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore notPresent(6) |
^6$ |
| {$NET.IF.IFTYPE.MATCHES} | - |
.* |
| {$NET.IF.IFTYPE.NOT_MATCHES} | - |
CHANGE_IF_NEEDED |
| {$SNMP.TIMEOUT} | - |
5m |
| {$VFS.FS.FREE.MIN.CRIT} | The critical threshold of the filesystem utilization. |
5G |
| {$VFS.FS.FREE.MIN.WARN} | The warning threshold of the filesystem utilization. |
10G |
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
`^(/dev |
| {$VFS.FS.FSTYPE.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
`.*(.4 |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
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} MATCHES_REGEX - {#MEMTYPE} NOT_MATCHES_REGEX - {#MEMNAME} MATCHES_REGEX - {#MEMNAME} NOT_MATCHES_REGEX |
| Network interfaces discovery | Discovering interfaces from IF-MIB. |
SNMP | net.if.discovery Filter: AND- {#IFADMINSTATUS} MATCHES_REGEX - {#IFADMINSTATUS} NOT_MATCHES_REGEX - {#IFOPERSTATUS} MATCHES_REGEX - {#IFOPERSTATUS} NOT_MATCHES_REGEX - {#IFNAME} MATCHES_REGEX - {#IFNAME} NOT_MATCHES_REGEX - {#IFDESCR} MATCHES_REGEX - {#IFDESCR} NOT_MATCHES_REGEX - {#IFALIAS} MATCHES_REGEX - {#IFALIAS} NOT_MATCHES_REGEX - {#IFTYPE} MATCHES_REGEX - {#IFTYPE} NOT_MATCHES_REGEX |
| Storage discovery | HOST-RESOURCES-MIB::hrStorage discovery with storage filter. |
SNMP | vfs.fs.discovery[snmp] Filter: AND- {#FSTYPE} MATCHES_REGEX - {#FSTYPE} NOT_MATCHES_REGEX - {#FSNAME} MATCHES_REGEX - {#FSNAME} NOT_MATCHES_REGEX |
| Group | Name | Description | Type | Key and additional info |
|---|---|---|---|---|
| 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: |
| General | SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP_TRAP | snmptrap.fallback |
| General | System location | MIB: SNMPv2-MIB The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string. |
SNMP | system.location[sysLocation.0] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System contact details | MIB: SNMPv2-MIB The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string. |
SNMP | system.contact[sysContact.0] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System object ID | MIB: SNMPv2-MIB The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining |
SNMP | system.objectid[sysObjectID.0] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System name | MIB: SNMPv2-MIB An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string. |
SNMP | system.name Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| General | System description | MIB: SNMPv2-MIB A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. |
SNMP | system.descr[sysDescr.0] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Memory | {#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 |
| 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: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Bits sent | MIB: IF-MIB The total number of octets transmitted out of the interface, including framing characters. 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: - CHANGE_PER_SECOND - MULTIPLIER: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP | net.if.in.errors[ifInErrors.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP | net.if.out.errors[ifOutErrors.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP | net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP | net.if.in.discards[ifInDiscards.{#SNMPINDEX}] Preprocessing: - CHANGE_PER_SECOND |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Interface type | MIB: IF-MIB The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention. |
SNMP | net.if.type[ifType.{#SNMPINDEX}] Preprocessing: - DISCARD_UNCHANGED_HEARTBEAT: |
| Network interfaces | Interface {#IFNAME}({#IFALIAS}): Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of |
SNMP | net.if.speed[ifHighSpeed.{#SNMPINDEX}] Preprocessing: - MULTIPLIER: - DISCARD_UNCHANGED_HEARTBEAT: |
| Status | Uptime (network) | MIB: SNMPv2-MIB The time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP | system.net.uptime[sysUpTime.0] Preprocessing: - MULTIPLIER: |
| Status | Uptime (hardware) | MIB: HOST-RESOURCES-MIB The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system. |
SNMP | system.hw.uptime[hrSystemUptime.0] Preprocessing: - CHECK_NOT_SUPPORTED ⛔️ON_FAIL: - MULTIPLIER: |
| Status | SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible value: 0 - not available 1 - available 2 - unknown |
INTERNAL | zabbix[host,snmp,available] |
| Status | ICMP ping | - |
SIMPLE | icmpping |
| Status | ICMP loss | - |
SIMPLE | icmppingloss |
| Status | ICMP response time | - |
SIMPLE | icmppingsec |
| Storage | {#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(/Windows by SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
WARNING | |
| System name has changed | System name has changed. Ack to close. |
last(/Windows by SNMP/system.name,#1)<>last(/Windows by SNMP/system.name,#2) and length(last(/Windows by SNMP/system.name))>0 |
INFO | Manual close: YES |
| {#MEMNAME}: High memory utilization | The system is running out of free memory. |
min(/Windows by SNMP/vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX} |
AVERAGE | |
| 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(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))Recovery expression: last(/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(/Windows by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Windows by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0Recovery expression: avg(/Windows by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and avg(/Windows by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/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(/Windows by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}Recovery expression: max(/Windows by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/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(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) Recovery expression: (change(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2) |
INFO | Manual close: YES Depends on: - Interface {#IFNAME}({#IFALIAS}): Link down |
| Host has been restarted | Uptime is less than 10 minutes. |
(last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Windows 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(/Windows 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(/Windows by SNMP/icmpping,#3)=0 |
HIGH | |
| High ICMP ping loss | - |
min(/Windows by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Windows by SNMP/icmppingloss,5m)<100 |
WARNING | Depends on: - Unavailable by ICMP ping |
| High ICMP ping response time | - |
avg(/Windows by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
WARNING | Depends on: - High ICMP ping loss - Unavailable by ICMP ping |
| {#FSNAME}: Disk space is critically low | Two conditions should match: 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 by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Windows by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Windows by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Windows 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(/Windows by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Windows by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Windows by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Windows 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.
Description: Doesn't support In/Out 64 bit counters even though IfxTable is present: Currently, Windows gets it's interface status from MIB-2. Since these 64bit SNMP counters (ifHCInOctets, ifHCOutOctets, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it. https://social.technet.microsoft.com/Forums/windowsserver/en-US/07b62ff0-94f6-40ca-a99d-d129c1b33d70/windows-2008-r2-snmp-64bit-counters-support?forum=winservergen
Description: Doesn't support ifXTable at all
Description: EtherLike MIB is not supported
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_snmp?at=release/6.0
This template is designed for the effortless deployment of Windows monitoring by Zabbix via SNMP and doesn't require any external scripts.
Zabbix version: 6.0 and higher.
This template has been tested on:
Zabbix should be configured according to the instructions in the Templates out of the box section.
Refer to the vendor documentation.
| Name | Description | Default |
|---|---|---|
| {$SNMP.TIMEOUT} | 5m |
|
| {$ICMP_LOSS_WARN} | 20 |
|
| {$ICMP_RESPONSE_TIME_WARN} | 0.15 |
|
| {$VFS.FS.FSNAME.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
^(/dev|/sys|/run|/proc|.+/shm$) |
| {$VFS.FS.FSNAME.MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
.+ |
| {$VFS.FS.FSTYPE.NOT_MATCHES} | This macro is used in filesystems discovery. Can be overridden on the host or linked template level. |
CHANGE_IF_NEEDED |
| {$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.PUSED.MAX.CRIT} | 90 |
|
| {$VFS.FS.PUSED.MAX.WARN} | 80 |
|
| {$MEMORY.UTIL.MAX} | The warning threshold of the "Physical memory: Memory utilization" item. |
90 |
| {$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.TYPE.MATCHES} | This macro is used in memory discovery. Can be overridden on the host or linked template level. |
.*(\.2|hrStorageRam)$ |
| {$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 |
| {$CPU.UTIL.CRIT} | 90 |
|
| {$IFCONTROL} | 1 |
|
| {$NET.IF.IFNAME.MATCHES} | ^.*$ |
|
| {$NET.IF.IFNAME.NOT_MATCHES} | Filter out loopbacks, nulls, docker veth links and docker0 bridge by default |
Macro too long. Please see the template. |
| {$NET.IF.IFOPERSTATUS.MATCHES} | ^.*$ |
|
| {$NET.IF.IFOPERSTATUS.NOT_MATCHES} | Ignore notPresent(6) |
^6$ |
| {$NET.IF.IFADMINSTATUS.MATCHES} | ^.*$ |
|
| {$NET.IF.IFADMINSTATUS.NOT_MATCHES} | Ignore down(2) administrative status |
^2$ |
| {$NET.IF.IFDESCR.MATCHES} | .* |
|
| {$NET.IF.IFDESCR.NOT_MATCHES} | Macro too long. Please see the template. |
|
| {$NET.IF.IFALIAS.MATCHES} | .* |
|
| {$NET.IF.IFALIAS.NOT_MATCHES} | CHANGE_IF_NEEDED |
|
| {$NET.IF.IFTYPE.MATCHES} | .* |
|
| {$NET.IF.IFTYPE.NOT_MATCHES} | CHANGE_IF_NEEDED |
|
| {$IF.UTIL.MAX} | 90 |
|
| {$IF.ERRORS.WARN} | 2 |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Windows: Uptime (network) | MIB: SNMPv2-MIB The time (in hundredths of a second) since the network management portion of the system was last re-initialized. |
SNMP agent | system.net.uptime[sysUpTime.0] Preprocessing
|
| Windows: Uptime (hardware) | MIB: HOST-RESOURCES-MIB The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system. |
SNMP agent | system.hw.uptime[hrSystemUptime.0] Preprocessing
|
| Windows: SNMP traps (fallback) | The item is used to collect all SNMP traps unmatched by other snmptrap items |
SNMP trap | snmptrap.fallback |
| Windows: System location | MIB: SNMPv2-MIB The physical location of this node (e.g., `telephone closet, 3rd floor'). If the location is unknown, the value is the zero-length string. |
SNMP agent | system.location[sysLocation.0] Preprocessing
|
| Windows: System contact details | MIB: SNMPv2-MIB The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string. |
SNMP agent | system.contact[sysContact.0] Preprocessing
|
| Windows: System object ID | MIB: SNMPv2-MIB The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining |
SNMP agent | system.objectid[sysObjectID.0] Preprocessing
|
| Windows: System name | MIB: SNMPv2-MIB An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string. |
SNMP agent | system.name Preprocessing
|
| Windows: System description | MIB: SNMPv2-MIB A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating-system, and networking software. |
SNMP agent | system.descr[sysDescr.0] Preprocessing
|
| Windows: SNMP agent availability | Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list. Possible value: 0 - not available 1 - available 2 - unknown |
Zabbix internal | zabbix[host,snmp,available] |
| Windows: ICMP ping | Simple check | icmpping | |
| Windows: ICMP loss | Simple check | icmppingloss | |
| Windows: ICMP response time | Simple check | icmppingsec | |
| Windows: 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 agent | system.cpu.util Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Windows: Host has been restarted | Uptime is less than 10 minutes. |
(last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Windows by SNMP/system.net.uptime[sysUpTime.0])<10m) |
Warning | Manual close: Yes Depends on:
|
| Windows: System name has changed | The name of the system has changed. Acknowledge to close the problem manually. |
last(/Windows by SNMP/system.name,#1)<>last(/Windows by SNMP/system.name,#2) and length(last(/Windows by SNMP/system.name))>0 |
Info | Manual close: Yes |
| Windows: No SNMP data collection | SNMP is not available for polling. Please check device connectivity and SNMP settings. |
max(/Windows by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0 |
Warning | Depends on:
|
| Windows: Unavailable by ICMP ping | Last three attempts returned timeout. Please check device connectivity. |
max(/Windows by SNMP/icmpping,#3)=0 |
High | |
| Windows: High ICMP ping loss | min(/Windows by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Windows by SNMP/icmppingloss,5m)<100 |
Warning | Depends on:
|
|
| Windows: High ICMP ping response time | avg(/Windows by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN} |
Warning | Depends on:
|
|
| Windows: High CPU utilization | The CPU utilization is too high. The system might be slow to respond. |
min(/Windows by SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT} |
Warning |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Storage discovery | HOST-RESOURCES-MIB::hrStorage discovery with storage filter. |
SNMP agent | vfs.fs.discovery[snmp] |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#FSNAME}: Used space | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
SNMP agent | vfs.fs.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing
|
| {#FSNAME}: Total space | MIB: HOST-RESOURCES-MIB The size of the storage represented by this entry, in units of hrStorageAllocationUnits. This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system. For example, the amount of main storage allocated to a buffer pool might be modified or the amount of disk space allocated to virtual storage might be modified. |
SNMP agent | vfs.fs.total[hrStorageSize.{#SNMPINDEX}] Preprocessing
|
| {#FSNAME}: Space utilization | The space utilization expressed in % for {#FSNAME}. |
Calculated | vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#FSNAME}: Disk space is critically low | The storage space usage exceeds the |
last(/Windows by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} |
Average | Manual close: Yes |
| {#FSNAME}: Disk space is low | The storage space usage exceeds the |
last(/Windows by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Memory discovery | HOST-RESOURCES-MIB::hrStorage discovery with memory filter |
SNMP agent | vm.memory.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| {#MEMNAME}: Used memory | MIB: HOST-RESOURCES-MIB The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits. |
SNMP agent | vm.memory.used[hrStorageUsed.{#SNMPINDEX}] Preprocessing
|
| {#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 agent | vm.memory.total[hrStorageSize.{#SNMPINDEX}] Preprocessing
|
| {#MEMNAME}: Memory utilization | Memory utilization in %. |
Calculated | vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}] |
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| {#MEMNAME}: High memory utilization | The system is running out of free memory. |
min(/Windows by SNMP/vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX} |
Average |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Network interfaces discovery | Discovering interfaces from IF-MIB. |
SNMP agent | net.if.discovery |
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Operational status | MIB: IF-MIB The current operational state of the interface. - The testing(3) state indicates that no operational packet scan be passed - If ifAdminStatus is down(2) then ifOperStatus should be down(2) - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection) - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components. |
SNMP agent | net.if.status[ifOperStatus.{#SNMPINDEX}] |
| Interface {#IFNAME}({#IFALIAS}): Bits received | MIB: IF-MIB The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and another times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP agent | net.if.in[ifInOctets.{#SNMPINDEX}] Preprocessing
|
| 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 agent | net.if.out[ifOutOctets.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP agent | net.if.in.errors[ifInErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors | MIB: IF-MIB For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP agent | net.if.out.errors[ifOutErrors.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded | MIB: IF-MIB The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP agent | net.if.out.discards[ifOutDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded | MIB: IF-MIB The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol. One possible reason for discarding such a packet could be to free up buffer space. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime. |
SNMP agent | net.if.in.discards[ifInDiscards.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Interface type | MIB: IF-MIB The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention. |
SNMP agent | net.if.type[ifType.{#SNMPINDEX}] Preprocessing
|
| Interface {#IFNAME}({#IFALIAS}): Speed | MIB: IF-MIB An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of |
SNMP agent | net.if.speed[ifHighSpeed.{#SNMPINDEX}] Preprocessing
|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|---|---|---|---|
| Interface {#IFNAME}({#IFALIAS}): Link down | This trigger expression works as follows: |
{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2)) |
Average | Manual close: Yes |
| Interface {#IFNAME}({#IFALIAS}): High bandwidth usage | The utilization of the network interface is close to its estimated maximum bandwidth. |
(avg(/Windows by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or avg(/Windows by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): High error rate | It recovers when it is below 80% of the |
min(/Windows by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Windows by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} |
Warning | Manual close: Yes Depends on:
|
| Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before | This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually. |
change(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) |
Info | Manual close: Yes Depends on:
|
Please report any issues with the template at https://support.zabbix.com
You can also provide feedback, discuss the template, or ask for help at ZABBIX forums
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_snmp?at=release/5.4
For Zabbix version: 5.4 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name |
|---|
| HOST-RESOURCES-MIB SNMP |
| Interfaces Windows SNMP |
| Generic SNMP |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
Description: Doesn't support In/Out 64 bit counters even though IfxTable is present: Currently, Windows gets it's interface status from MIB-2. Since these 64bit SNMP counters (ifHCInOctets, ifHCOutOctets, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it. https://social.technet.microsoft.com/Forums/windowsserver/en-US/07b62ff0-94f6-40ca-a99d-d129c1b33d70/windows-2008-r2-snmp-64bit-counters-support?forum=winservergen
Description: Doesn't support ifXTable at all
Description: EtherLike MIB is not supported
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_snmp?at=release/5.0
For Zabbix version: 5.0 and higher
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name |
|---|
| Generic SNMP |
| HOST-RESOURCES-MIB SNMP |
| Interfaces Windows SNMP |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
Description: Doesn't support In/Out 64 bit counters even though IfxTable is present: Currently, Windows gets it's interface status from MIB-2. Since these 64bit SNMP counters (ifHCInOctets, ifHCOutOctets, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it. https://social.technet.microsoft.com/Forums/windowsserver/en-US/07b62ff0-94f6-40ca-a99d-d129c1b33d70/windows-2008-r2-snmp-64bit-counters-support?forum=winservergen
Description: Doesn't support ifXTable at all
Description: EtherLike MIB is not supported
Source: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/os/windows_snmp?at=release/4.0
For Zabbix version: 4.0
Refer to the vendor documentation.
No specific Zabbix configuration is required.
| Name |
|---|
| Template Module Generic SNMPv2 |
| Template Module HOST-RESOURCES-MIB SNMPv2 |
| Template Module Interfaces Windows SNMPv2 |
| Group | Name | Description | Type | Key and additional info |
|---|
| Name | Description | Expression | Severity | Dependencies and additional info |
|---|
Please report any issues with the template at https://support.zabbix.com
Description: Doesn't support In/Out 64 bit counters even though IfxTable is present: Currently, Windows gets it’s interface status from MIB-2. Since these 64bit SNMP counters (ifHCInOctets, ifHCOutOctets, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it. https://social.technet.microsoft.com/Forums/windowsserver/en-US/07b62ff0-94f6-40ca-a99d-d129c1b33d70/windows-2008-r2-snmp-64bit-counters-support?forum=winservergen
Description: Doesn't support ifXTable at all
Description: EtherLike MIB is not supported
| Link | Source | Compatibility | Type, Technology | Created Updated | Rating |
|---|---|---|---|---|---|
| Windows ICMP Macro Discovery Active Sometimes we are faced with an infrastructure distributed over the Internet. In case there is no VPN, using zabbix active agents is a great way to configure monitoring of servers and workstations. But what if we just want to check the availability of the IP camera and other devices behind the NAT? Of ... template_windows_icmp_macro_discovery_active |
GitHub Community Templates |
5.0+ |
| ||
| OS Windows Server Baseline Zabbix template for Microsoft Windows Server.Features:Performance counters.CPU Low Level Discovery.Mounted file system Low Level Discovery.Difference from default Windows OS template:CPU´s discovery and triggers per CPU´s.Mounted file system discovery and triggers per logical disk.More items and triggers ... template_zabbix_for_microsoft_windows_server |
GitHub Community Templates |
5.0+ |
| ||
| Event Windows Backup check windows backup (wbadmin tool) event logtested on win 2012 r2 template_windows_wbadmin_log |
GitHub Community Templates |
5.0+ |
| ||
| Windows Physical Disk IOPS This template discover physical disk thrue a powershell code.As i hate myself to deploy third party scripts on my agents, the powershell code is embeded in this template macro, this mean that you don´t have to deploy any additionnal scripts to get it work.It also use "zabbix active" items to get work ... template_windows_physical_drive_iops |
GitHub Community Templates |
5.0+ |
| ||
| OS Windows Disk Space template_windows_disk_space_monitoring |
GitHub Community Templates |
5.0+ |
| ||
| Windows Defender WMI Template utilizes MSFT_MpComputerStatus class in Windows WMI to collect information about Windows Defender, such as:Antivirus Enabled/DisabledRealTimeProtection Enabled/DisabledBehaviorMonitor Enabled/DisabledOnAccessProtection Enabled/DisabledIoavProtection Enabled/DisabledAntispyware Enabled/DisabledRealTimeProtection ... template_windows_defender_wmi_monitoring |
GitHub Community Templates |
5.0+ |
| ||
| Metrics Windows Defender Collect selected events for Windows Defender (default config) or with host macro settings will work with Windows Antimalware.Uses macro {$AV_EVENTLOG} for the event log name, Windows defender uses "Microsoft-Windows-Windows Defender/Operational".Windows Antimalware uses "System", but also needs {$AV_SOURCE} ... template_windows_defender_and_antimalware_eventlog_monitoring |
GitHub Community Templates |
5.0+ |
| ||
| Event User Log Check windows event log:Create user accountUser account onUser account offUser account password resetDelete user accountUnlocked user accountchanged domain policy and cleaned security log template_windows_ad_event_log_(2008_r2-2012_r2) |
GitHub Community Templates |
5.0+ |
| ||
| TCP/UDP Stats Windows Starting from the template that they published in:https://systembash.com/track-tcp-and-udp-connections-with-zabbix/I have modified the parameters for use in Windows. For it to work, add the following lines in UserParameter of zabbix_agent.confUserParameter=sockstat.sockets, netstat -ano | find /V "hola" ... template_tcp_udp_windows_connections |
GitHub Community Templates |
5.0+ |
| ||
| Storage Мониторинг свободного места на диске С и диске D используя только SNMP.Важно не подключать диск А, меняются OID template_storage_disk_c_and_disk_d |
GitHub Community Templates |
5.0+ |
| ||
| RDPUsers RDP Logged on UsersI use this template to check Users, that are logged on RDP sessions on Windows servers. It´s not full audit, it´s only for current view of logged-on users.Template is really simple.It has only one Item and user parameter configured on monitored server.User parameter in zabbix_agentd.conf: ... template_rdp_users |
GitHub Community Templates |
5.0+ |
| ||
| OS Windows Server 2012-2016 The same as this, but with numerical designations for perf_counterAll thanks to the authorВидео про шаблон:https://youtu.be/FWqFyRu8hmQ template_os_windows_server_2012-2016_v.1.1 |
GitHub Community Templates |
5.0+ |
| ||
| OS Windows Server Данный шаблон основан на счетчиках производительности Windows. Низкоуровневое обнаружение сетевых интерфейсов и дисков используется для создания ключей "perf_counter[счетчик,]"Посетите.Группа ВК:https://vk.com/simplezabbixВидео про шаблон:https://youtu.be/FWqFyRu8hmQ template_os_windows_server |
GitHub Community Templates |
5.0+ |
| ||
| Module Windows users by Zabbix agent Attach this module with your Template OS Windows by Zabbix agent or the Template OS Windows by Zabbix agent active, and start to get the number of users that are logged in your Windows Server.This module shows the ´active users´ and the ´disconnected users´ (consuming system resources).This module works ... template_module_windows_users |
GitHub Community Templates |
5.0+ |
| ||
| Module ICMP ping from the Zabbix Windows agent Zabbix template for the ICMP ping test from the Zabbix Windows agent without any external scripts or user parameters.EditPut the comma-separated target list into user macro {$PING_LIST}at the template or host level and run the "get ICMP ping list" item.List example:8.8.8.8,www.ya.ru,10.10.10.10 template_for_icmp_ping_from_the_zabbix_windows_agent |
GitHub Community Templates |
5.0+ |
| ||
| OS Windows WMI Template for receiving stats with zbxwmi script. This method allows to retrieve stats remotely by WMI without installing agent to OS.You can get script from: https://github.com/13hakta/zbxwmi - with tips and installation manual.Requires python 3 script (check link above). template_agentless_storage_and_processor_statistics |
GitHub Community Templates |
5.0+ |
| ||
| AD DS Monitoring and Attack Detection Template based on MS document "Best Practices for Securing Active Directory"Items & TriggersA monitored security event pattern has occurred.A replay attack was detected. May be a harmless false positive due to misconfiguration error.System audit policy was changed.SID History was added to an account.An ... template_ad_ds_monitoring_and_attack_detection |
GitHub Community Templates |
5.0+ |
| ||
| AD DS Health and Performance Performance countersDRA Inbound Bytes Total/SecDRA Inbound Object Updates Remaining in PacketDRA Outbound Bytes Total/SecDRA Pending Replication SynchronizationsKerberos Authentications/SecLDAP Bind TimeLDAP Client SessionsLDAP Searches/SecLDAP Successful Binds/SecLDAP Active ThreadsLDAP Writes/SecNTLM ... template_ad_ds_health_and_performance |
GitHub Community Templates |
5.0+ |
| ||
| WSFC Miner Fetch metrics from Windows Server Failover Cluster (WSFC). github.com/zbx-sadman/WSFC |
GitHub |
template, userparameter powershell |
2016-02-25 2 y |
Popular
|
|
| Windows Zabbix scripts Collect software inventory from windows into Zabbix. Collects all printers that are installed on the print server. Monitor all windows processes. github.com/Scatty81/zabbix-windows |
GitHub |
script, userparameter visual basic |
2015-02-19 3 y |
||
| Windows 2008 and Windows 2012 R2 monitoring Solution based on Windows performance counters github.com/rodrigoluissilva/Zabbix-Microsoft-Windows-Server-Template |
GitHub |
template |
2016-10-19 3 y |
||
| MMs Zabbix Installer for Windows featuring centralised GUI deployment. Easily automate installation of Windows Zabbix agent and configuration files, for large and small domains. github.com/murraymcpherson/MMsZabbixInstaller |
GitHub |
script Microsoft Visual Studio |
2014-02-13 3 y |
||
| Zabbix agent scripts Raid discovery, check on Windows and Linux, nut check github.com/sm4sh1k/zabbix-scripts |
GitHub |
script powershell, perl |
2013-12-24 3 y |
||
| Creates Zabbix templates for Windows PDH and provides Zabbix instance LLD for counter instances. This script automates the creation of Zabbix templates based on Windows Performance Counters and the discovery of counter instances for Zabbix low-level discovery. github.com/lxndrp/pdh2zabbix |
GitHub |
script powershell |
2017-06-30 3 y |
||
| Zabbix template for Windows Storage Spaces github.com/mrgloba/template_ss |
GitHub |
Template, script powershell |
2017-04-24 2 y |
||
| Monitoring Adapcec controller in Windows (Hyper-V Core) in Zabbix github.com/sysbes/zabbix-adaptec |
GitHub |
Template, script powershell |
2017-03-01 2 y |
||
| Populate Zabbix agent on Windows github.com/mightydok/mightydok-winzabbixagent |
GitHub |
script ansible |
2017-02-27 2 y |
||
| Zabbix agent installer Distribute Zabbix agent using native windows tools. Set firewall exceptions. github.com/wf72/zabbix_windows_installer |
GitHub |
script batch file |
2015-12-10 4 y |
||
| Powershellscript for deploying Zabbix agents on Windows github.com/vetasen/ZabbixWinAgentDeploy |
GitHub |
script powershell |
2017-01-27 2 y |
||
| Zabbix Agent Puppet Module This module manages the zabbix agent for a monitored machine. It can also, optionally, manage repositories related to Zabbix on Linux github.com/genebean/genebean-zabbixagent |
GitHub |
Puppet module Ruby |
2015-01-18 3 y |
||
| Zabbix Windows Reboot github.com/alv1r/Zabbix-Windows-Reboot [ru] |
GitHub |
template, UserParameter powershell |
2016-10-27 3 y |