Cacti监控Windows CPU利用率
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Cacti监控Windows CPU利用率
1目的
本文的目的是介绍如何在Cacti中对多核CPU进行监控,并将多核CPU的使用率求平均值后在一张监控图中进行显示。
Cacti自身提供了一个监控Windows CPU的Data query,通过该方法可以列举出Windows 系统内所有CPU核的使用率,例如2核CPU会画出两个CPU的监控图,4核CPU会画出4个CPU的监控图。
这样的监控对于CPU核数较少的Windows系统来说还不是问题,但在我最近的项目中碰到的情况是一般的服务器都有40核,有的甚至是64核,对于如此多的CPU核数再采用每核一张图的方式就有点繁杂了。
我们还是希望不论是多少核的CPU,最后都统一求平均值后在一张图中显示。解决的思路是利用Data Query定义PHP脚本将多核CPU进行汇总,最后只输出一行,该值是多核CPU 利用率的平均值。
2实现方法
2.1定义XML文件
对原有的/resource/script_server目录下的host_cpu.xml文件进行修改,目的是让其只显示一行,并显示总共有多少核的CPU,将新文件命名为host_cpu_sv.xml,部分内容如下:
其中ss_host_cpu_sv.php的PHP文件就是要将多核CPU汇总的执行文件,
2.2ss_host_cpu_sv.php文件
截取部分文件的内容如下:
... ...
elseif ($cmd == "get") {
$arg = $arg1;
$index = rtrim($arg2);
$arr_index = ss_host_cpu_sv_reindex(cacti_snmp_walk($hostname,
$snmp_community, $oids["index"], $snmp_version, $snmp_auth_username, $snmp_auth_password, $snmp_auth_protocol, $snmp_priv_passphrase, $snmp_priv_protocol, $snmp_context, $snmp_port, $snmp_timeout, $ping_retries, $max_oids, SNMP_POLLER));
$arr = ss_host_cpu_sv_reindex(cacti_snmp_walk($hostname,
$snmp_community, $oids["usage"], $snmp_version, $snmp_auth_username, $snmp_auth_password, $snmp_auth_protocol, $snmp_priv_passphrase, $snmp_priv_protocol, $snmp_context, $snmp_port, $snmp_timeout, $ping_retries, $max_oids, SNMP_POLLER));
//计算总共的CPU利用率
$usage_total = 0;
for ($i=0;($i $usage_total += $arr[$i]; } /* * Print XML file "Output" fild. */ //输出的结果是平均的CPU利用率 if (($arg == "usage") && ($index == 999)) { return round($usage_total / sizeof($arr_index)); } else { return "ERROR: Invalid Return Value"; } } 在该PHP脚本中首先计算CPU总共的使用率,然后输出求平均后的值。 2.3定义Data Query 在定义好xml文件和PHP脚本后,我们就可以定义Data Query了,如下图所示: 在添加好Data Query后需要为该Data Query关联图形模板,如下图所示: