2022 Zabbix中国峰会
2022 Zabbix中国峰会

6 Windows性能计数器

概览

你可以使用 perf_counter[] 这个key有效的监控Windows性能计数器。

例如:

perf_counter["\Processor(0)\Interrupts/sec"]

perf_counter["\Processor(0)\Interrupts/sec", 10]

有关使用此key的更多信息请参阅Windows专用监控项

为了获取可用于监控的新能计数器完整列表,你可以运行:

typeperf -qx

数字表示

由于性能计数器的命名在不同的Windows服务器上可能不同,这取决于服务器的地区设置。因此,在创建用于监控具有不同地区设置的多台Windows设备的模板时,会引发一定的问题。

同时,每个新能计数器也可以通过其数字形式来引用,无论如何,数字形式都是唯一的,因此你可以使用数字表示而不是字符串。

为了找到同义的数字,需要运行 regedit ,然后找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009这个注册表。

注册表中包含形如下面所示的信息:

1
       1847
       2
       System
       4
       Memory
       6
       % Processor Time
       10
       File Read Operations/sec
       12
       File Write Operations/sec
       14
       File Control Operations/sec
       16
       File Read Bytes/sec
       18
       File Write Bytes/sec
       ....

这样你就可以找到性能计数器每个字符串对应的数字,例如:

System → 2
       % Processor Time → 6

然后你就可以使用这些数字来表示性能计数器路径:

\2\6

性能计数器参数

你可以部署一些PerfCounter参数,来完成通过Windows性能计数器监控。

例如,你可以将下面的内容添加到ZABBIX代理配置文件中:

   PerfCounter=UserPerfCounter1,"\Memory\Page Reads/sec",30
          or
          PerfCounter=UserPerfCounter2,"\4\24",30

配置了这些参数后,你就可以简单的使用 UserPerfCounter1UserPerfCounter2 作为key来创建相应的监控项。

当然,别忘了在更改了配置文件后重新启动ZABBIX Agent。

故障处理

有时ZABBIX Agent 不能再基于Windows 2000的系统中检索性能计数器的值,因为pdh.dll文件已过时。这个错误会在ZABBIX Agent和Server的日志文件中会有失败信息。在这种情况下,phd.dll应当被更新到更新的 5.0.2195.2668 版本。