10 利用WMI查询执行自动发现

概述

WMI 是一种Windows中的接口,功能强大,可用于获取各种信息,比如Windows组件、服务、状态和安装的软件。

WMI可用于物理硬盘的自动发现和相关性能数据的采集、网络接口的自动发现、Hyper-V guest的自动发现、监控Windows操作系统中的服务和其它实体。

此类低级别 自动发现 通过使用WQL查询实现,其结果会自动转换成一个匹配低级别自动发现的JSON格式的JSON对象。

监控项的键

自动发现规则中使用的监控项是

  1. wmi.getall[<命名空间>,<查询>]

监控项 将查询结果转换成一个JSON数组. 比如:

  1. select * from Win32_DiskDrive where Name like '%PHYSICALDRIVE%'

会转换成下面的数据:

  1. [
  2. {
  3. "DeviceID" : "\\.\PHYSICALDRIVE0",
  4. "BytesPerSector" : 512,
  5. "Capabilities" : [
  6. 3,
  7. 4
  8. ],
  9. "CapabilityDescriptions" : [
  10. "Random Access",
  11. "Supports Writing"
  12. ],
  13. "Caption" : "VBOX HARDDISK ATA Device",
  14. "ConfigManagerErrorCode" : "0",
  15. "ConfigManagerUserConfig" : "false",
  16. "CreationClassName" : "Win32_DiskDrive",
  17. "Description" : "Disk drive",
  18. "FirmwareRevision" : "1.0",
  19. "Index" : 0,
  20. "InterfaceType" : "IDE"
  21. },
  22. {
  23. "DeviceID" : "\\.\PHYSICALDRIVE1",
  24. "BytesPerSector" : 512,
  25. "Capabilities" : [
  26. 3,
  27. 4
  28. ],
  29. "CapabilityDescriptions" : [
  30. "Random Access",
  31. "Supports Writing"
  32. ],
  33. "Caption" : "VBOX HARDDISK ATA Device",
  34. "ConfigManagerErrorCode" : "0",
  35. "ConfigManagerUserConfig" : "false",
  36. "CreationClassName" : "Win32_DiskDrive",
  37. "Description" : "Disk drive",
  38. "FirmwareRevision" : "1.0",
  39. "Index" : 1,
  40. "InterfaceType" : "IDE"
  41. }
  42. ]

从Zabbix Windows agent 4.4起支持此监控项。

低级别自动发现的宏

就算低级别自动发现返回的JSON数组中未创建任何宏,也可以使用一个额外步骤来定义宏,通过使用 自定义LLD 宏,将JSONPath指向返回的JSON值。

然后这些宏就可用于创建监控项、触发器等原型。