[ZBXNEXT-5883] Support more built in keys in Windows agent Created: 2020 Apr 09  Updated: 2020 May 22

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: 4.4.7, 4.4.8rc1
Fix Version/s: None

Type: New Feature Request Priority: Minor
Reporter: Edgars Melveris Assignee: Michael Veksler
Resolution: Unresolved Votes: 4
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File image-2020-04-10-16-36-34-264.png     PNG File image-2020-04-10-16-37-57-073.png    
Issue Links:
Duplicate

 Description   

Currently there are some items, that are supported on Linux, but are not supported on Windows. There is a list of items supported by platform:
https://www.zabbix.com/documentation/current/manual/appendix/items/supported_by_platform
But it's possible to easily implement some of those keys also in windows.
For example, in inventory documentation we recommend using these items for populating inventory:

system.hw.chassis[full|type|vendor|model|serial] - default is [full], root permissions needed
system.hw.cpu[all|cpunum,full|maxfreq|vendor|model|curfreq] - default is [all,full]
system.hw.devices[pci|usb] - default is [pci]
system.hw.macaddr[interface,short|full] - default is [all,full], interface is regexp
system.sw.arch
system.sw.os[name|short|full] - default is [name]
system.sw.packages[package,manager,short|full] - default is [all,all,full], package is regexp

But only one of them is supported by Windows platform.
It's possible to get the same information using WMI:
https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-systemenclosure

It would be simpler and more convenient for Zabbix users if as many as possible built in keys would work the same way on all platforms.



 Comments   
Comment by Kaspars Mednis [ 2020 Apr 10 ]

Also, process monitoring can be improved, currently all metrics are not available out of box. And some processes can spawn multiple instances like (example by chrome which can be tested on every system)

SELECT Name FROM Win32_PerfFormattedData_PerfProc_Process where name like 'Chrome%'
chrome#1
chrome#2
....
chrome#22

WMI provides CPU usage by process, handle count and more, which is currently not possible with built in Zabbix agent keys.

SELECT * FROM Win32_PerfFormattedData_PerfProc_Process where Name = 'System' 
 {     
      "CreatingProcessID":0,
      "ElapsedTime":"1195352",
      "HandleCount":1258,
      "IDProcess":4,
      "IODataBytesPersec":"0",
      "IODataOperationsPersec":"0",
      "IOOtherBytesPersec":"0",
      "IOOtherOperationsPersec":"0",
      "IOReadBytesPersec":"0",
      "IOReadOperationsPersec":"0",
      "IOWriteBytesPersec":"0",
      "IOWriteOperationsPersec":"0",
      "Name":"System",
      "PageFaultsPersec":0,
      "PageFileBytes":"131072",
      "PageFileBytesPeak":"188416",
      "PercentPrivilegedTime":"0",
      "PercentProcessorTime":"0",
      "PercentUserTime":"0",
      "PoolNonpagedBytes":0,
      "PoolPagedBytes":0,
      "PriorityBase":8,
      "PrivateBytes":"131072",
      "ThreadCount":150,
      "VirtualBytes":"3559424",
      "VirtualBytesPeak":"33566720",
      "WorkingSet":"147456",
      "WorkingSetPeak":"1982464",
      "WorkingSetPrivate":"28672"
   }
] 
Comment by Kaspars Mednis [ 2020 Apr 10 ]

proc_info[process,<attribute>,<type>]

vmsize (default) - size of process virtual memory in Kbytes
wkset - size of process working set (amount of physical memory used by process) in Kbytes

Why it reports kilobytes ? I need to create additional preprocessing step to report it in Bytes and display correctly in frontend

Comment by Andy Booth [ 2020 Apr 10 ]

Zabbix guys: Love it or hate it, Windows will be widely deployed for a while yet, so there should be functional parity in the Windows Zabbix Agent with Linux etc.

This doesn't mean that you have to use the same underlying mechanisms to obtain the info, but if you expose it to the Zabbix server in the same way as other agents then it makes Zabbix config a lot easier for Zabbix admins.

A LOT of info is available from WMI.  Your docs give some basic introductory info, but they lack worked examples & clear guidance on common use cases.

An updated official Zabbix Windows template would be an easy way to boost the out of box support for Windows (e.g. using things like the example below).

examples:

items: 

dependent item: OS caption, from wmi_os:

inventory info can be pulled from the other WMI items above.

While we're here, the stock inventory fields are not that useful.  We really need the ability to customise them.

 

Generated at Mon Jul 07 09:06:25 EEST 2025 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.