在客户端获取网卡参数列表:
typeperf -qx | find "Network Interface" | find "Bytes" > c:\prefcount.txt
保存到prefcount.txt文件是为了复制方便,命令行结果如下:
复制你想要获取的数据,修改zabbix_agentd.conf配置文件,举例添加下列信息:
#PerfCounter=Key,"网卡性能项",数据抓取间隔(建议设置长一些)单位秒
PerfCounter=NetIn5,"\Network Interface(Broadcom NetXtreme Gigabit Ethernet)\Bytes Received/sec",5
PerfCounter=NetOut5,"\Network Interface(Broadcom NetXtreme Gigabit Ethernet)\Bytes Sent/sec",5
OK,重启Zabbix Agent服务,客户端的工作就完成了。
接下来设置服务器端的数据获取:
选择windows模板或者刚才在客户端进行配置了的那台windows主机,创建一个新的监控项,如下图:
注意:在Key的位置直接输入我们刚在客户端配置文件里面使用Key名称
数据类型应该选择float,如果选择unsigned的话会获取失败。
点击“保存”,回到监控项列表页面,等待一会儿能看到监控状态。
如果显示“不支持”,请检查Key是否输入正确,客户端配置文件中网卡数据是否有误。
接下来我们创建一个图表,让数据可视化。如下图:
怎么样,很简单吧,这种方式是客户端主动推送数据的方式。
还有个更简单的,就是采用服务端主动抓取数据的方式:
直接在服务器端用命令perf_counter[counter, interval]配置要抓取的Key,
第一个参数counter就是Key,这里不能用上面客户端中定义的"NetIn5"之类的自定义值,因为Windows系统里面根本没有这个性能值,这里要用原始数据。
第二个参数就是抓取时间间隔了,同样的,默认单位秒。
上图更好理解:
后面的操作和第一种方法就一样了。
至于用哪种方式更好,取决于要监控的服务器数量和监控服务器的性能了,个人推荐客户端推送的方式。
网卡数据监控项通用性极差,所以不管用哪种方式你都需要到客户机上去获取一次网卡信息,这就是我推荐客户端推送的方式的原因之一。。。至少你的服务器端看上去很规范吧,hoho~
除了网卡数据外,其他性能参数也可以用上面两种方式获取,通用性问题一般都不考虑。