zabbix通过 perf_counter[ ]监控Windows
学习此方法你就可以想怎么监控就怎么监控Windows各项指标。
说明:此文章只针对perf_counter键值对做详细的解释,如若监控其他轻参考WINDOWS的监控项键值
环境说明
Windows-server服务器说明,在此说明window服务器版本问题是因为每个版本之间的操作存在的差异,但是大体思路是一致,要学会思路和方法。
Windows安装zabbix客户端
1. 在官网下载对应zabbix-agent版本。
根据自己的需要选择对应的选项。
2. 解压zabbix-agent压缩包
正常压缩包包含以下内容,bin目录下包含三个启动文件还有一个conf目录下一个配置文件
3. 配置Windows环境变量
配置环境变量是为了方便执行命令,不用携带启动文件之前长长目录。为了方便。
- 在开始界面打开“运行”或者 “win + R” 键打开”运行“,输入 “sysdm.cpl”
- 接下来点击高级,点击高级里面的环境变量
- 最后配置环境变量
打开环境变量,找到“系统变量”里面的变量名为“Path”的环境变量。点击”编辑“,出来下图最右边的编辑框,在变量值的最后添加的zabbix-agent的bin目录。最后点击请确定。
注意:每一个变量值中间用英文的分号(;)隔开。
4. 修改配置文件
具体修改项,和其他zabbix-agent修改内容大致相同。
SourceIP=192.168.195.156 #本机的IP
Server=192.168.195.160 #在web界面配置被动监控时,此项必须配置。哪台机器来zabbix-agent机器拿数据。
ListenPort=10050 #zabbix-agent端口
ListenIP=0.0.0.0 #自己监听的地址,0.0.0.0表示本机所有地址
ServerActive=192.168.195.160 #在web界面配置主动监控时,此项必须配置,启用主动监控时需要把采集的数据发给哪台机器。有代理就填写代理机器的IP。
Hostname=Windows_host_192.168.195.156 #自己能被server端识别的名称,web界面添加主机时需要填写的主机名称。
5. 启动zabbix-agent
- 新打开一个Windows PowerShell命令行,注意这个地方一定使用管理员打开
- Windows启停zabbix-agent命令。
.\zabbix_agentd.exe --config <your_configuration_file> --start #指定配置文件启动,注意:配置文件使用绝对路径
.\zabbix_agentd.exe --config <your_configuration_file> --stop #指定配置文件停止,注意:配置文件使用绝对路径
6. 查看进程和端口是否存在
- 查看10050端口
.\netstat.exe -ano |findstr 10050
- 查看zabbix-agent进程
zabbix agent也已经处于启动的状态。
配置web界面
配置web界面这里就不过多说明,基本上是没有什么区别,和配置其他主机步骤差不多。主要针对监控项的配置这里做一下说明。
监控项perf_counter[counter,<interval>]
- 下图为此监控项的说明
perf_counter[counter,<interval>] | |||
Windows性能计数器的值。 | 整数, 浮点, 字符串或者文本(取决于请求) | counter - 计数器的路径 interval - 最后N秒用于存储平均值。 | 性能监视器可用于获取可用计数器列表。 在版本1.6之前,此参数仅为仅需要一个样本的计数器(如 \System\Threads)返回正确的值。 对于需要更多样本的计数器(如CPU利用率),它将无法正常工作。 从1.6开始, 可以使用 |
1. WINDOWS性能计数器(counter)
概览
你可以使用 perf_counter[] 这个key有效的监控Windows性能计数器。
例如:
perf_counter["\Processor(0)\Interrupts/sec"]
或
perf_counter["\Processor(0)\Interrupts/sec", 10]
为了获取可用于监控的性能计数器完整列表,你可以运行:
typeperf -qx
数字表示
由于性能计数器的命名在不同的Windows服务器上可能不同,这取决于服务器的地区设置。因此,在创建用于监控具有不同地区设置的多台Windows设备的模板时,会引发一定的问题。
同时,每个新能计数器也可以通过其数字形式来引用,无论如何,数字形式都是唯一的,因此你可以使用数字表示而不是字符串。
为了找到同义的数字,需要运行 regedit ,然后找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009下面的counter注册表。
注册表中包含形如下面所示的信息:
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
....
通过如下的命令你可以查找到你想要指标的完整路径:
.\typeperf.exe -qx |find "在注册表内存在的某一个你需要的指标"
这样你就可以找到性能计数器每个字符串对应的数字,例如:
System -> 2
File Read Bytes/sec -> 16
然后你就可以使用这些数字来表示性能计数器路径:
\2\16
性能计数器参数
你可以部署一些PerfCounter参数,来完成通过Windows性能计数器监控。
例如,你可以将下面的内容添加到ZABBIX代理配置文件中:
PerfCounter=UserPerfCounter1,"\Memory\Page Reads/sec",30
or
PerfCounter=UserPerfCounter2,"\4\24",30
配置了这些参数后,你就可以简单的使用 UserPerfCounter1 或 UserPerfCounter2 作为key来创建相应的监控项。
当然,别忘了在更改了配置文件后重新启动ZABBIX Agent。
实例:
我们需要监控Windows系统“文件每秒读取字节数”
- 我们先在注册表内找到我们需要的计数器
- 之后打开一个Windows powershell界面,输入以下命令,查看计数器所对应的目录
.\typeperf.exe -qx |find "File Read Bytes/sec"
- 复制结果,到web界面,进行监控项的配置
- 点击最新数据,找到刚才配置的监控,查看监控结果
到此通过perf_counter这种方式的监控就结束了,有问题欢迎评论区留言哟。