Cacti监控Windows CPU利用率

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,部分内容如下:

Get Host MIB CPU's

|path_cacti|/scripts/ss_host_cpu_sv.php

ss_host_cpu_sv

php

Processor Index Number

input

index

Processor Count

input

num_indexes

Processor Usage

output

usage

其中ss_host_cpu_sv.php的PHP文件就是要将多核CPU汇总的执行文件,

中定义的内容则是要显示的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关联图形模板,如下图所示:

相关文档
最新文档