利用cacti和性能计数器实现自定义远程监控
2010-01-21 00:05
507 查看
性能监控一直是各个网站必须认真考虑的问题,对于一个庞大的系统来说,如果不知道各个模块的运行情况,那出了意外,连怎么瘫掉的都不知道。我想这个很多软件开发商都注意到了这点,所以在相应的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
如果您还是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
相关文章推荐
- 利用cacti和性能计数器实现自定义远程监控
- 利用snmptools实现cacti自定义监控Windows性能计数器
- 利用Windows性能计数器(PerformanceCounter)监控
- C# 利用性能计数器监控网络状态
- C#利用性能计数器监控网络状态
- 使用WMI和性能计数器监控远程服务器权限设置
- 利用Windows性能计数器(PerformanceCounter)监控 分类: windows驱动程序WDM VC++ 2015-03-10 10:44 369人阅读 评论(0) 收藏
- 利用SiteScope,在LR中监控和获取mysql的性能计数器
- 用python做自动化测试--Python实现远程性能监控(2)
- nagios研究-实现远程监控windows服务器上的自定义TCP端口
- 使用WMI和性能计数器监控远程服务器权限设置
- 利用Attribute实现对性能计数器的封装
- 利用Windows性能计数器(PerformanceCounter)监控
- loadrunner 利用sitescope监测监控mysql性能(添加mysql计数器)
- Zabbix 自定义监控Windows性能计数器
- 利用cacti实现监控
- 利用Windows性能计数器(PerformanceCounter)监控
- 在 Cacti 下利用 SNMP Informant 实现 Windows 监控
- 利用Windows性能计数器(PerformanceCounter)监控
- 利用Gearman来实现远程监控与管理