利用cacti和性能计数器实现自定义远程监控- EasyData - 博客园

性能监控一直是各个网站必须认真考虑的问题,对于一个庞大的系统来说,如果不知道各个模块的运行情况,那出了意外,连怎么瘫掉的都不知道。我想这个很多软件开发商都注意到了这点,所以在相应的web,数据库产品中加了各种监控数据,例如web连接数,request并发量,数据库链接数等等,供大家使用。而且当系统分布在多个机器上时,分布式监控问题又凸显了出来,于是cacti应运而生。通过SNMP协议,cacti能很方便的同时对多台机器进行snmp数据的读取以实现分布式监控。

如果您还是cacti新手,建议您先去cacti的官网上了解一下这个产品()。

然而有时候光靠系统、web、数据库提供给我们的预定义监控值还是不够的,很多时候我们需要定义特定的监控值来监控我们的系统。可能您首先想到的是性能计数器,性能计数器可以通过自定义的category和counter,很方便地定义,实现和监控特定需要的值。关于自定义性能计数器的解决方案请参见:



不过有个不足之处,就是查看性能计数器的话,则必须登录到所使用的机器上利用系统的性能组件来查看。那如果能结合cacti和性能计数器,实现远程监控的话,岂不是很xx?

经过各大搜索引擎的帮忙,找到了一个实现类似功能的库,下载地址: ,并突破了重重防火墙的限制,通过代理最终下到了这个珍贵的东东。。为了方便大家下载,本文参考资料中提供了此工具的下载。

snmptools基本的实现思路很简单,性能计数器->SNMP->cacti,再细分一下,这个方案分两步,{dy}步是计数器到SNMP,第二步是SNMP到cacti。

{dy}步计数器到SNMP,snmptools提供了一个SNMP Service的扩展Agent Dll,与windows自带的SNMP Service集成。这个Agent Dll的主要功能就是通过一个配置文件自定义OID,以及对应的计数器映射。

<counter.ini>

[1.3.6.1.4.1.15.1]
counter=PhysicalDisk\Avg. Disk Queue Length\_Total

[1.3.6.1.4.1.15.2]
counter=LogicalDisk\Free Megabytes\_Total

以上是配置文件的样例,此Dll用的MIB根节点是1.3.6.1.4.15,可以在此节点下定义自己所需要的counter对应的OID。

一旦snmptools安装配置完毕,可通过cacti所在机器使用linux命令测试一下:(cacti一般是装linux上的,虽然有windows版本的cacti,但有些功能不能用)

snmpwalk -v1 -c public [MONITOR_IP] 1.3.6.1.4.1.15

此命令会遍历此节点所有使用到的OID值。如果值都获取到了,说明{dy}步操作已成功。

接下来是第二步,这步就简单很多,snmptools提供了cacti模板,封装了取snmp值的query方法,将此方法导入后,即可使用。

上图就是通过再上面的配置文件运行,监控得到的结果。呵呵,看上去很爽吧,那就快尝试去用用吧。

snmptools下载地址:

摘自: 

郑重声明:资讯 【利用cacti和性能计数器实现自定义远程监控- EasyData - 博客园】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——