Windows

Microsoft Windows is a group of several graphical operating system families, all of which are developed, marketed, and sold by Microsoft.

Available solutions

Zabbix version 8.0 7.4 7.2 7.0 6.4 6.2 6.0 5.4 5.0
Download

Windows by Zabbix agent

Overview

This is an official Windows template. It requires Zabbix agent 8.0 or newer.

Requirements

Zabbix version: 8.0 and higher.

Tested versions

This template has been tested on:

  • Windows 7 and newer.
  • Windows Server 2008 R2 and newer.

Configuration

Zabbix should be configured according to the instructions in the Templates out of the box section.

Setup

Install Zabbix agent on Windows OS according to Zabbix documentation.

Macros used

Name Description Default
{$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
{$FSCONTROL}

Macro for the filesystem space triggers. Can be used with the filesystem name as context.

1
{$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.

^\s$
{$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_IF_NEEDED
{$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_IF_NEEDED
{$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)$
{$SERVICE.STARTUPTRIGGER.MATCHES}

Used in Service discovery. Can be overridden on the host or linked template level.

^.*$
{$SERVICE.STARTUPTRIGGER.NOT_MATCHES}

Used in Service discovery. Can be overridden on the host or linked template level.

^1$
{$SERVICE.FORBIDDEN.MATCHES}

Used in Service discovery to list the services that must not be running. Can be overridden on the host or linked template level.

CHANGE_IF_NEEDED
{$SERVICE.STARTUP.GRACE}

The grace period after a system boot during which the service state is not checked. Can be used with the service name as context.

10m
{$WINDOWS.TASK.NAME.MATCHES}

Used in Windows scheduled tasks discovery. Can be overridden on the host or linked template level.

CHANGE_IF_NEEDED
{$WINDOWS.TASK.NAME.NOT_MATCHES}

Used in Windows scheduled tasks discovery. Can be overridden on the host or linked template level.

^\s$
{$WINDOWS.TASK.PATH.MATCHES}

Used in Windows scheduled tasks discovery. Can be overridden on the host or linked template level.

.*
{$WINDOWS.TASK.PATH.NOT_MATCHES}

Used in Windows scheduled tasks discovery. Can be overridden on the host or linked template level.

^\s$
{$WINDOWS.TASK.CONTROL}

Macro for the scheduled task state trigger. Can be used with the task name as context.

1
{$WINDOWS.SECURITY.SECUREBOOT.IGNORE}

Set to "1" to suppress the "SecureBoot is disabled" trigger on hosts that legitimately run without UEFI Secure Boot (e.g. legacy BIOS/CSM).

0
{$WINDOWS.SECURITY.ACTIVATION.GRACE.MIN.WARN}

The minimum remaining Windows activation grace period before the trigger fires.

30d
{$WINDOWS.SECURITY.DEFENDER.SIGNATURE.MAX.WARN}

The maximum age of Microsoft Defender signatures before the trigger fires.

7d
{$WINDOWS.SECURITY.DEFENDER.FULLSCAN.MAX.WARN}

The maximum age of the last Microsoft Defender full scan before the trigger fires.

30d
{$WINDOWS.UPDATES.STALE.MAX.WARN}

The maximum number of days since the last installed update (KB) before the trigger fires.

45
{$WINDOWS.UPDATES.SECURITY.STALE.MAX.WARN}

The maximum number of days since the last installed security update (KB) before the trigger fires.

60
{$WINDOWS.SECURITY.FW.PROFILE.MATCHES}

Filter for the Windows Firewall profiles to discover, by profile name.

^(Domain|Private|Public)$
{$WINDOWS.SECURITY.FW.PROFILE.NOT_MATCHES}

Used in Windows Firewall profiles discovery. Can be overridden on the host or linked template level.

CHANGE_IF_NEEDED
{$WINDOWS.SECURITY.BITLOCKER.FSNAME.MATCHES}

Filter for the volumes to discover for BitLocker, by drive letter (e.g. "C:").

^[A-Za-z]:
{$WINDOWS.SECURITY.BITLOCKER.FSNAME.NOT_MATCHES}

Used in BitLocker volume discovery. Can be overridden on the host or linked template level.

CHANGE_IF_NEEDED
{$WINDOWS.SECURITY.BITLOCKER.ENFORCE.MATCHES}

Volumes (by drive letter, e.g. "C:") on which BitLocker is enforced. The "BitLocker is not enabled" trigger fires only for matching volumes.

^C:$

Items

Name Description Type Key and additional info
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"]
CPU interrupt time

The processor information % Interrupt Time counter indicates how much time the processor spends handling hardware interrupts during sample intervals. It reflects the activity of devices like the system clock, mouse, disk drivers, and network cards. A value above 20% suggests possible hardware issues.

Zabbix agent perf_counter_en["\Processor Information(_total)% Interrupt Time"]
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"]
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"]
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"]
CPU utilization

CPU utilization expressed in %.

Zabbix agent system.cpu.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"]
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"]
Free swap space

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

Zabbix agent system.swap.size[,free]
Free swap space in %

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

Dependent item system.swap.pfree

Preprocessing

  • JavaScript: return (100 - value)

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"]
Host name of Zabbix agent running Zabbix agent agent.hostname

Preprocessing

  • Discard unchanged with heartbeat: 1d

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"]
Memory utilization

Memory utilization in %.

Zabbix agent vm.memory.size[pused]
Number of cores

The number of logical processors available on the computer.

Zabbix agent wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]

Preprocessing

  • Regular expression: (\d+) \1

    ⛔️Custom on fail: Discard value

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 Zabbix agent system.sw.os

Preprocessing

  • Discard unchanged with heartbeat: 1d

Operating system architecture

The architecture of the operating system.

Zabbix agent system.sw.arch

Preprocessing

  • Discard unchanged with heartbeat: 1d

System description

System description of the host.

Zabbix agent system.uname

Preprocessing

  • Discard unchanged with heartbeat: 1d

System local time

The local system time of the host.

Zabbix agent system.localtime[local]
System name

The host name of the system.

Zabbix agent system.hostname

Preprocessing

  • Discard unchanged with heartbeat: 1d

Total memory

Total memory expressed in bytes.

Zabbix agent vm.memory.size[total]
Total swap space

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

Zabbix agent system.swap.size[,total]
Uptime

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

Zabbix agent system.uptime
Used memory

Used memory in bytes.

Zabbix agent vm.memory.size[used]
Used swap space in %

The used space of swap volume/file in percent.

Zabbix agent perf_counter_en["\Paging file(_Total)% Usage"]
Version of Zabbix agent running Zabbix agent agent.version

Preprocessing

  • Discard unchanged with heartbeat: 1d

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

  • Discard unchanged with heartbeat: 1h

Zabbix agent availability

Used for monitoring the availability status of the agent.

Zabbix internal zabbix[host,agent,available]
Zabbix agent ping

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

Zabbix agent agent.ping
Windows TPM: Get info

Raw TPM (Trusted Platform Module) data from the Win32_Tpm WMI class.

The classic Windows agent does not invoke WMI methods, so the current state is read from the *_InitialValue properties captured at the most recent provisioning/clear event; on a stable system this matches the actual state.

Zabbix agent wmi.getall[root\CIMV2\Security\MicrosoftTpm,"select IsEnabled_InitialValue,IsActivated_InitialValue,IsOwned_InitialValue,SpecVersion,ManufacturerVersion from Win32_Tpm"]

Preprocessing

  • Discard unchanged with heartbeat: 1d

Windows TPM: Presence

Whether a TPM chip is present on the host (derived from the number of Win32_Tpm instances returned by the master item).

Dependent item tpm.presence

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows TPM: Enabled

Whether the TPM is enabled (from IsEnabled_InitialValue).

Dependent item tpm.enabled

Preprocessing

  • JSON Path: $[0].IsEnabled_InitialValue

    ⛔️Custom on fail: Set value to: False

  • Boolean to decimal
Windows TPM: Activated

Whether the TPM is activated (from IsActivated_InitialValue).

Dependent item tpm.activated

Preprocessing

  • JSON Path: $[0].IsActivated_InitialValue

    ⛔️Custom on fail: Set value to: False

  • Boolean to decimal
Windows TPM: Owned

Whether the TPM is owned (from IsOwned_InitialValue).

Dependent item tpm.owned

Preprocessing

  • JSON Path: $[0].IsOwned_InitialValue

    ⛔️Custom on fail: Set value to: False

  • Boolean to decimal
Windows TPM: Spec version

The TPM specification version (the leading part of SpecVersion, e.g. "2.0").

Dependent item tpm.spec.version

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows TPM: Manufacturer version

The TPM firmware (manufacturer) version (from ManufacturerVersion).

Dependent item tpm.manufacturer.version

Preprocessing

  • JSON Path: $[0].ManufacturerVersion

    ⛔️Custom on fail: Set value to: ``

Windows SecureBoot: State

The UEFI Secure Boot state (0 - disabled, 1 - enabled).

On legacy BIOS/CSM hosts the registry key does not exist and the item becomes NOTSUPPORTED; set {$WINDOWS.SECURITY.SECUREBOOT.IGNORE}=1 on such hosts.

Zabbix agent registry.data[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State,UEFISecureBootEnabled]
Windows activation: Get product info

Raw Windows licensing product data from the SoftwareLicensingProduct WMI class (filtered to the active Windows OS product).

Zabbix agent wmi.getall[root\CIMV2,"select Name,Description,LicenseStatus,PartialProductKey,GracePeriodRemaining,LicenseStatusReason from SoftwareLicensingProduct where PartialProductKey is not null and ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f'"]

Preprocessing

  • Discard unchanged with heartbeat: 1d

Windows activation: Get service info

Raw Windows licensing service data from the SoftwareLicensingService WMI class (KMS configuration).

Zabbix agent wmi.getall[root\CIMV2,"select Version,KeyManagementServiceMachine,KeyManagementServicePort,ClientMachineID,IsKeyManagementServiceMachine from SoftwareLicensingService"]

Preprocessing

  • Discard unchanged with heartbeat: 1d

Windows activation: License status

The Windows license status (0 - Unlicensed, 1 - Licensed, 2 - OOB grace, 3 - OOT grace, 4 - Non-genuine grace, 5 - Notification, 6 - Extended grace).

Dependent item activation.license.status

Preprocessing

  • JSON Path: $[0].LicenseStatus

    ⛔️Custom on fail: Set value to: 0

Windows activation: Grace period remaining

The time remaining in the current licensing grace period.

Dependent item activation.grace

Preprocessing

  • JSON Path: $[0].GracePeriodRemaining

    ⛔️Custom on fail: Set value to: 0

  • Custom multiplier: 60

Windows activation: Product name

The licensed product name (from Name).

Dependent item activation.product.name

Preprocessing

  • JSON Path: $[0].Name

    ⛔️Custom on fail: Set value to: ``

Windows activation: Partial product key

The last five characters of the installed product key (from PartialProductKey).

Dependent item activation.product.key

Preprocessing

  • JSON Path: $[0].PartialProductKey

    ⛔️Custom on fail: Set value to: ``

Windows activation: Status reason code

The licensing status reason code (from LicenseStatusReason).

Dependent item activation.status.reason

Preprocessing

  • JSON Path: $[0].LicenseStatusReason

    ⛔️Custom on fail: Set value to: 0

Windows activation: KMS server

The Key Management Service (KMS) host name used for activation (from KeyManagementServiceMachine).

Dependent item activation.kms.server

Preprocessing

  • JSON Path: $[0].KeyManagementServiceMachine

    ⛔️Custom on fail: Set value to: ``

Windows activation: KMS port

The Key Management Service (KMS) port (from KeyManagementServicePort).

Dependent item activation.kms.port

Preprocessing

  • JSON Path: $[0].KeyManagementServicePort

    ⛔️Custom on fail: Set value to: 0

Windows activation: Client machine ID

The KMS client machine identifier (from ClientMachineID).

Dependent item activation.client.id

Preprocessing

  • JSON Path: $[0].ClientMachineID

    ⛔️Custom on fail: Set value to: ``

Windows activation: Is KMS host

Whether this machine is a KMS host (from IsKeyManagementServiceMachine).

Dependent item activation.kms.host

Preprocessing

  • JSON Path: $[0].IsKeyManagementServiceMachine

    ⛔️Custom on fail: Set value to: 0

Windows Defender: Get status

Raw Microsoft Defender antimalware status from the MSFT_MpComputerStatus WMI class.

Zabbix agent wmi.getall[root\Microsoft\Windows\Defender,"select AMServiceEnabled,AntispywareEnabled,AntivirusEnabled,RealTimeProtectionEnabled,AntispywareSignatureLastUpdated,AntivirusSignatureLastUpdated,QuickScanAge,FullScanAge,AntivirusSignatureVersion from MSFT_MpComputerStatus"]

Preprocessing

  • Discard unchanged with heartbeat: 1d

Windows Defender: AM service enabled

Whether the Defender antimalware service is running (from AMServiceEnabled).

Dependent item defender.amservice.enabled

Preprocessing

  • JSON Path: $[0].AMServiceEnabled

    ⛔️Custom on fail: Set value to: False

  • Boolean to decimal
Windows Defender: Real-time protection enabled

Whether real-time protection is enabled (from RealTimeProtectionEnabled).

Dependent item defender.rtp.enabled

Preprocessing

  • JSON Path: $[0].RealTimeProtectionEnabled

    ⛔️Custom on fail: Set value to: False

  • Boolean to decimal
Windows Defender: Antivirus enabled

Whether antivirus protection is enabled (from AntivirusEnabled).

Dependent item defender.av.enabled

Preprocessing

  • JSON Path: $[0].AntivirusEnabled

    ⛔️Custom on fail: Set value to: False

  • Boolean to decimal
Windows Defender: Antispyware enabled

Whether antispyware protection is enabled (from AntispywareEnabled).

Dependent item defender.as.enabled

Preprocessing

  • JSON Path: $[0].AntispywareEnabled

    ⛔️Custom on fail: Set value to: False

  • Boolean to decimal
Windows Defender: Antivirus signature age

Time since the antivirus signatures were last updated.

Dependent item defender.av.signature.age

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows Defender: Antispyware signature age

Time since the antispyware signatures were last updated.

Dependent item defender.as.signature.age

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows Defender: Quick scan age

Time since the last quick scan. Reads as "Never scanned" if no quick scan has ever run.

Dependent item defender.quickscan.age

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows Defender: Full scan age

Time since the last full scan. Reads as "Never scanned" if no full scan has ever run.

Dependent item defender.fullscan.age

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows Defender: Antivirus signature version

The antivirus signature package version (from AntivirusSignatureVersion).

Dependent item defender.av.signature.version

Preprocessing

  • JSON Path: $[0].AntivirusSignatureVersion

    ⛔️Custom on fail: Set value to: ``

Windows updates: Get installed KBs

Raw list of installed Windows updates (hotfixes) from the Win32_QuickFixEngineering WMI class.

Zabbix agent wmi.getall[root\cimv2,"select HotFixID,Description,InstalledOn,Caption from Win32_QuickFixEngineering"]

Preprocessing

  • Discard unchanged with heartbeat: 1d

Windows updates: KBs installed (total)

The total number of installed updates (KBs).

Dependent item updates.kb.total

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows updates: Security KBs installed

The number of installed updates whose description is "Security Update".

Dependent item updates.kb.security

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows updates: Last KB ID

The HotFixID of the most recently installed update.

Dependent item updates.kb.last.id

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows updates: Last KB install date

The install date of the most recently installed update.

Dependent item updates.kb.last.date

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows updates: Days since last KB

The number of whole days since the most recently installed update.

Dependent item updates.kb.days

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows updates: Last Security KB install date

The install date of the most recently installed "Security Update".

Dependent item updates.security.last.date

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows updates: Days since last Security KB

The number of whole days since the most recently installed "Security Update".

Dependent item updates.security.days

Preprocessing

  • JavaScript: The text is too long. Please see the template.

Windows Firewall: Get profiles

Raw Windows Firewall profile data from the MSFT_NetFirewallProfile WMI class.

Zabbix agent wmi.getall[root\StandardCimv2,"select Name,Enabled,DefaultInboundAction,DefaultOutboundAction from MSFT_NetFirewallProfile"]

Preprocessing

  • Discard unchanged with heartbeat: 1d

Windows BitLocker: Get encryptable volumes

Raw BitLocker volume data from the Win32_EncryptableVolume WMI class.

Zabbix agent wmi.getall[root\CIMV2\Security\MicrosoftVolumeEncryption,"select DeviceID,DriveLetter,ProtectionStatus,EncryptionMethod,ConversionStatus,VolumeType,IsVolumeInitializedForProtection from Win32_EncryptableVolume"]

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: []

  • Discard unchanged with heartbeat: 1d

Windows scheduled tasks: Get tasks

Raw Windows scheduled task data from the MSFT_ScheduledTask WMI class.

Zabbix agent wmi.getall[root\Microsoft\Windows\TaskScheduler,"select TaskName,TaskPath,State,URI from MSFT_ScheduledTask"]

Preprocessing

  • Check for not supported value: any error

    ⛔️Custom on fail: Set value to: []

  • Discard unchanged with heartbeat: 1d

Triggers

Name Description Expression Severity Dependencies and additional info
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: High CPU utilization
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 interrupt time is too high
  • Windows: High CPU utilization
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 CPU utilization
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: Number of free system page table entries is too low

Memory\Free System Page Table Entries has been less than {$MEM.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may 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: High memory utilization
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: High memory utilization
Windows: High memory utilization

The system is running out of free memory.

min(/Windows by Zabbix agent/vm.memory.size[pused],5m)>{$MEMORY.UTIL.MAX} Average
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:
  • Windows: System name has changed
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: 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: High memory utilization
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: Zabbix agent is not available

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

max(/Windows by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0 Average Manual close: Yes
Windows: TPM is not present

No TPM chip was detected on the host. A TPM is required for some security features (BitLocker, virtualization-based security, Windows 11 readiness).

last(/Windows by Zabbix agent/tpm.presence)=0 Info
Windows: SecureBoot is disabled

UEFI Secure Boot is disabled. It helps prevent malicious software from loading during the boot process. If this host legitimately runs without Secure Boot (e.g. legacy BIOS/CSM), set {$WINDOWS.SECURITY.SECUREBOOT.IGNORE}=1.

last(/Windows by Zabbix agent/registry.data[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot\State,UEFISecureBootEnabled])=0 and {$WINDOWS.SECURITY.SECUREBOOT.IGNORE}=0 Warning
Windows: Is not licensed

The Windows license status is not "Licensed". The system may be unlicensed, in a grace period, or in notification mode.

last(/Windows by Zabbix agent/activation.license.status)<>1 Warning
Windows: Activation grace period running out

The Windows activation grace period is about to expire. Activate Windows before the grace period ends.

last(/Windows by Zabbix agent/activation.grace)>0 and last(/Windows by Zabbix agent/activation.grace)<{$WINDOWS.SECURITY.ACTIVATION.GRACE.MIN.WARN} Warning
Windows: Defender real-time protection is off

Microsoft Defender real-time protection is disabled. The system is not actively protected against malware.

last(/Windows by Zabbix agent/defender.rtp.enabled)=0 Average
Windows: Defender signatures are out of date

The Microsoft Defender antivirus signatures have not been updated within the expected interval.

min(/Windows by Zabbix agent/defender.av.signature.age,5m)>{$WINDOWS.SECURITY.DEFENDER.SIGNATURE.MAX.WARN} Warning
Windows: Defender full scan overdue

A full Microsoft Defender scan has not been completed within the expected interval.

last(/Windows by Zabbix agent/defender.fullscan.age)>{$WINDOWS.SECURITY.DEFENDER.FULLSCAN.MAX.WARN} Warning
Windows updates: No KB installed recently

No Windows update (KB) has been installed within the configured number of days.

last(/Windows by Zabbix agent/updates.kb.days)>{$WINDOWS.UPDATES.STALE.MAX.WARN} Warning
Windows updates: No Security KB installed recently

No Windows security update (KB) has been installed within the configured number of days.

last(/Windows by Zabbix agent/updates.security.days)>{$WINDOWS.UPDATES.SECURITY.STALE.MAX.WARN} Average

LLD rule Windows scheduled tasks discovery

Name Description Type Key and additional info
Windows scheduled tasks discovery

Discovery of Windows scheduled tasks. No task is discovered until {$WINDOWS.TASK.NAME.MATCHES} is set, because a stock Windows installation carries about 200 tasks.

On hosts where the Task Scheduler WMI namespace is unavailable the master item returns an empty list, so no items are created instead of becoming unsupported.

Dependent item task.discovery

Preprocessing

  • Discard unchanged with heartbeat: 1h

Item prototypes for Windows scheduled tasks discovery

Name Description Type Key and additional info
Scheduled task [{#TASK.PATH}{#TASK.NAME}]: State

The current state of the "{#TASK.NAME}" scheduled task.

Dependent item task.state["{#TASK.URI}"]

Preprocessing

  • JSON Path: $[?(@.URI == "{#TASK.URI}")].State.first()

    ⛔️Custom on fail: Set value to: 0

  • Discard unchanged with heartbeat: 1d

Trigger prototypes for Windows scheduled tasks discovery

Name Description Expression Severity Dependencies and additional info
Windows: Scheduled task [{#TASK.PATH}{#TASK.NAME}] is disabled

The "{#TASK.NAME}" scheduled task is disabled and will not run.

{$WINDOWS.TASK.CONTROL:"{#TASK.NAME}"}=1 and last(/Windows by Zabbix agent/task.state["{#TASK.URI}"])=1 Warning Manual close: Yes

LLD rule Windows Firewall: Profiles discovery

Name Description Type Key and additional info
Windows Firewall: Profiles discovery

Discovery of Windows Firewall profiles.

Dependent item firewall.profiles.discovery

Preprocessing

  • Discard unchanged with heartbeat: 1h

Item prototypes for Windows Firewall: Profiles discovery

Name Description Type Key and additional info
Windows Firewall [{#FW.PROFILE}]: Enabled

Whether the "{#FW.PROFILE}" firewall profile is enabled.

Dependent item firewall.enabled["{#FW.PROFILE}"]

Preprocessing

  • JSON Path: $[?(@.Name == "{#FW.PROFILE}")].Enabled.first()

    ⛔️Custom on fail: Set value to: 0

Windows Firewall [{#FW.PROFILE}]: Default inbound action

The default inbound action of the "{#FW.PROFILE}" firewall profile.

Dependent item firewall.inbound["{#FW.PROFILE}"]

Preprocessing

  • JSON Path: $[?(@.Name == "{#FW.PROFILE}")].DefaultInboundAction.first()

    ⛔️Custom on fail: Set value to: 0

Windows Firewall [{#FW.PROFILE}]: Default outbound action

The default outbound action of the "{#FW.PROFILE}" firewall profile.

Dependent item firewall.outbound["{#FW.PROFILE}"]

Preprocessing

  • JSON Path: The text is too long. Please see the template.

    ⛔️Custom on fail: Set value to: 0

Trigger prototypes for Windows Firewall: Profiles discovery

Name Description Expression Severity Dependencies and additional info
Windows: Firewall [{#FW.PROFILE}] is disabled

The "{#FW.PROFILE}" Windows Firewall profile is not enabled.

last(/Windows by Zabbix agent/firewall.enabled["{#FW.PROFILE}"])<>1 Warning

LLD rule Mounted filesystem discovery

Name Description Type Key and additional info
Mounted filesystem discovery

Discovery of filesystems of different types.

Zabbix agent vfs.fs.get[short]

Preprocessing

  • Discard unchanged with heartbeat: 6h

Item prototypes for Mounted filesystem discovery

Name Description Type Key and additional info
FS [{#FSLABEL}({#FSNAME})]: Get data

The vfs.fs.get[full,{#FSNAME}] key acquires disk space and inode statistics for the {#FSNAME} filesystem only. Later to be extracted by preprocessing in dependent items.

Zabbix agent vfs.fs.get[full,{#FSNAME}]

Preprocessing

  • JSON Path: $[0]

FS [{#FSLABEL}({#FSNAME})]: Space: Available

Available storage space expressed in bytes.

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

Preprocessing

  • JSON Path: $.bytes.free

FS [{#FSLABEL}({#FSNAME})]: Space: Total

Total space expressed in bytes.

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

Preprocessing

  • JSON Path: $.bytes.total

FS [{#FSLABEL}({#FSNAME})]: Space: Used

Used storage expressed in bytes.

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

Preprocessing

  • JSON Path: $.bytes.used

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

  • JSON Path: $.bytes.pused

FS [{#FSLABEL}({#FSNAME})]: Space: Available, in %

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

Dependent item vfs.fs.dependent.size[{#FSNAME},pfree]

Preprocessing

  • JSON Path: $.bytes.pfree

Trigger prototypes for Mounted filesystem discovery

Name Description Expression Severity Dependencies and additional info
Windows: FS [{#FSLABEL}({#FSNAME})]: Space is critically low

The volume's space usage exceeds the {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}% limit.


The trigger expression is based on the current used and maximum available spaces.


Event name represents the total volume space, which can differ from the maximum available space, depending on the filesystem type.

{$FSCONTROL:"{#FSNAME}"}=1 and 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 {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}% limit.


The trigger expression is based on the current used and maximum available spaces.


Event name represents the total volume space, which can differ from the maximum available space, depending on the filesystem type.

{$FSCONTROL:"{#FSNAME}"}=1 and 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:
  • Windows: FS [{#FSLABEL}({#FSNAME})]: Space is critically low

LLD rule Windows BitLocker: Volume discovery

Name Description Type Key and additional info
Windows BitLocker: Volume discovery

Discovery of BitLocker encryptable volumes. On hosts where BitLocker is unavailable it returns no volumes, so the per-volume items are not created instead of becoming unsupported.

Dependent item bitlocker.volume.discovery

Preprocessing

  • Discard unchanged with heartbeat: 1h

Item prototypes for Windows BitLocker: Volume discovery

Name Description Type Key and additional info
BitLocker [{#FSNAME}]: Protection status

The BitLocker protection status of volume "{#FSNAME}".

Dependent item bitlocker.protection["{#FSNAME}"]

Preprocessing

  • JSON Path: $[?(@.DriveLetter == "{#FSNAME}")].ProtectionStatus.first()

    ⛔️Custom on fail: Set value to: 2

BitLocker [{#FSNAME}]: Encryption method

The BitLocker encryption method of volume "{#FSNAME}".

Dependent item bitlocker.method["{#FSNAME}"]

Preprocessing

  • JSON Path: $[?(@.DriveLetter == "{#FSNAME}")].EncryptionMethod.first()

    ⛔️Custom on fail: Set value to: 0

BitLocker [{#FSNAME}]: Conversion status

The BitLocker conversion (encryption/decryption progress) status of volume "{#FSNAME}".

Dependent item bitlocker.conversion["{#FSNAME}"]

Preprocessing

  • JSON Path: $[?(@.DriveLetter == "{#FSNAME}")].ConversionStatus.first()

    ⛔️Custom on fail: Set value to: 0

Trigger prototypes for Windows BitLocker: Volume discovery

Name Description Expression Severity Dependencies and additional info
Windows: BitLocker [{#FSNAME}] is not enabled on enforced volume

BitLocker protection is not enabled on volume "{#FSNAME}", which is required by {$WINDOWS.SECURITY.BITLOCKER.ENFORCE.MATCHES}.

last(/Windows by Zabbix agent/bitlocker.protection["{#FSNAME}"])<>1 Average

LLD rule Network interfaces discovery

Name Description Type Key and additional info
Network interfaces discovery

Discovery of installed network interfaces.

Dependent item net.if.discovery

Preprocessing

  • Discard unchanged with heartbeat: 1h

Item prototypes for Network interfaces discovery

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

  • Change per second:
  • Custom multiplier: 8

Interface {#IFNAME}({#IFALIAS}): Bits sent

Outgoing traffic on the network interface.

Zabbix agent net.if.out["{#IFGUID}"]

Preprocessing

  • Change per second:
  • Custom multiplier: 8

Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded

The number of incoming packets dropped on the network interface.

Zabbix agent net.if.in["{#IFGUID}",dropped]

Preprocessing

  • Change per second:
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

  • Change per second:
Interface {#IFNAME}({#IFALIAS}): Interface type

The type of the network interface.

Dependent item net.if.type["{#IFGUID}"]

Preprocessing

  • JSON Path: $[?(@.GUID == "{#IFGUID}")].AdapterTypeId.first()

  • Discard unchanged with heartbeat: 1d

Interface {#IFNAME}({#IFALIAS}): Operational status

The operational status of the network interface.

Dependent item net.if.status["{#IFGUID}"]

Preprocessing

  • JSON Path: $[?(@.GUID == "{#IFGUID}")].NetConnectionStatus.first()

  • Discard unchanged with heartbeat: 1d

Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded

The number of outgoing packets dropped on the network interface.

Zabbix agent net.if.out["{#IFGUID}",dropped]

Preprocessing

  • Change per second:
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

  • Change per second:
Interface {#IFNAME}({#IFALIAS}): Speed

Estimated bandwidth of the network interface if any.

Dependent item net.if.speed["{#IFGUID}"]

Preprocessing

  • JSON Path: $[?(@.GUID == "{#IFGUID}")].Speed.first()

    ⛔️Custom on fail: Set value to: 0

  • JavaScript: return (value=='9223372036854775807' ? 0 : value)

  • Discard unchanged with heartbeat: 1h

Trigger prototypes for Network interfaces discovery

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}): Link down
Windows: Interface {#IFNAME}({#IFALIAS}): High error rate

It recovers when it is below 80% of the {$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}"} Warning Manual close: Yes
Depends on:
  • Windows: Interface {#IFNAME}({#IFALIAS}): Link down
Windows: Interface {#IFNAME}({#IFALIAS}): Link down

This trigger expression works as follows:


1. It can be triggered if the operations status is down.


2. {$IFCONTROL:"{#IFNAME}"}=1 - a user can redefine the context macro to "0", marking this interface as not important.


No new trigger will be fired if this interface is down.


3. last(/TEMPLATE_NAME/METRIC,#1)<>last(/TEMPLATE_NAME/METRIC,#2) - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for the 'eternal off' interfaces.)



WARNING: if closed manually - it will not fire again on the 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)) Average Manual close: Yes
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

LLD rule Physical disks discovery

Name Description Type Key and additional info
Physical disks discovery

Discovery of installed physical disks.

Zabbix agent perf_instance_en.discovery[PhysicalDisk]

Preprocessing

  • Replace: {#INSTANCE} -> {#DEVNAME}

Item prototypes for Physical disks discovery

Name Description Type Key and additional info
{#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]
{#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 read rate

Rate of read operations on the disk.

Zabbix agent perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60]
{#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 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

  • JavaScript: return (100 - value)

{#DEVNAME}: Disk write rate

Rate of write operations on the disk.

Zabbix agent perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",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]

Trigger prototypes for Physical disks discovery

Name Description Expression Severity Dependencies and additional info
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 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
  • Windows: {#DEVNAME}: Disk write request responses are too high
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

LLD rule Windows services discovery

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.

Services matching {$SERVICE.FORBIDDEN.MATCHES} are discovered regardless of their startup type, so that a service which must stay stopped can be watched as well.

Zabbix agent service.discovery

Item prototypes for Windows services discovery

Name Description Type Key and additional info
State of service "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME})

{#SERVICE.DESCRIPTION}

Zabbix agent service.info["{#SERVICE.NAME}",state]

Trigger prototypes for Windows services discovery

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.


The check is suppressed until the system uptime exceeds {$SERVICE.STARTUP.GRACE}, so that services with the "automatic delayed" startup type are given time to start after a reboot.

min(/Windows by Zabbix agent/service.info["{#SERVICE.NAME}",state],#3)<>0 and last(/Windows by Zabbix agent/system.uptime)>{$SERVICE.STARTUP.GRACE:"{#SERVICE.NAME}"} Average
Windows: "{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) must not be running

The service matches {$SERVICE.FORBIDDEN.MATCHES} and is expected to stay stopped, but it has been running for the last three times.


The trigger is discovered only for the services listed in that macro.

min(/Windows by Zabbix agent/service.info["{#SERVICE.NAME}",state],#3)=0 Warning

Feedback

Please report any issues with the template at https://support.zabbix.com

You can also provide feedback, discuss the template, or ask for help at ZABBIX forums

Não encontrou a integração que vocá precisa?