利用cacti和性能计数器实现自定义远程监控

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

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

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

http://it.dianping.com/using_attribute_wrapping_performance_counter.htm

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

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

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

第一步计数器到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值。如果值都获取到了,说明第一步操作已成功。

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

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

snmptools下载地址:snmptools v2

摘自:http://it.dianping.com/using_cacti_performance_counter_to_implement_customized_remote_monitoring.htm 

转载于:https://www.cnblogs.com/EasyData/archive/2010/01/21/1652851.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cacti是一款基于PHP、MySQL、SNMP及RRDTool开发的网络流量监测图形分析工具,通过snmpget来获取数据,使用RRDtool绘画图形,提供了非常强大的数据和用户管理功能。 Cacti 1.2.2 更新日志:2019-02-24 问题#599:聚合图模板假定AVG合并功能;问题#2312:在Safari上检索设备信息似乎失败;问题#2317:Unabe将新记录添加到'poller_time'表;问题#2327:运行轮询器复制时内存耗尽;问题#2334:某些浏览器在切换到控制台时报告javascript错误;问题#2337:运行升级时,将重置日志文件的路径;问题#2339:收件人地址中的某些字符可能导致电子邮件失败;问题#2343:由于缺少默认关键字,导出挂钩不再起作用;问题#2346:列出插件权限时,“Legacy 1.x插件”可能出现在错误的单元格中;问题#2347:允许排序输出将返回的数据注入特定对象;问题#2350:无法为包含第n个百分位数和带宽的HRULES和COMMENTS选择数据源;问题#2352:SNMP描述字段有时可能包含受损数据;问题#2354:在自动化中重新编制索引时,图表和数据源的标题不会更新;问题#2355:指定自定义数据时,有时会复制数据源;问题#2357:当索引不正确时,轮询器应记录更多信息;问题#2359:升级时,“安装/升级”权限可能先前已丢失;问题#2360:检索数据库/表/列信息时,并不总是应用模式名称;问题#2362:当ifSpeed和ifHighSpeed返回为零时,无法默认接口速度;问题#2365:编辑聚合图时,并不总是删除孤立的项;问题#2372:数据查询重建索引导致图形中的间隙;问题#2376:手动添加Automation发现的设备会导致记录错误;问题#2380:设备可能会遇到不断的重建索引;问题#2384:当身份验证方法设置为“无”时,更改为“内置”,因为“无”已被删除;问题#2393:重新索引设备时,Graph Automation每次都会创建重复的图表;问题#2416:SELinux希望APPEND不对Fedora/EPEL(RHEL,Centos)进行WRITE许可;问题#2419:未正确计算主机状态时间;问题#2426:为'custom_logout_message'和'custom_denied'恢复缺少的插件挂钩;问题#2431:“邮件方法”(settings_how)的默认值不正确导致错误;问题#2432:更新RRD数据时未定义的变量警告;问题#2451:拖放并不总是正常运行;功能:将javascript库c3.js更新为0.6.12版;功能:将phpseclib更新为2.0.14版;功能:将PHPMailer更新到版本6.0.7;功能:将javascript库d3.js更新为版本5.9.1。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值