技术开发 频道

各种性能监测在企业中部署和实现方法

  d.更加强大和灵活的性能监测方案:SNMP + Cacti + RRDtool

  通过对MRTG这个软件的使用很多用户不难发现。像MRTG这样的软件尽管有系统资源占用少和低成本等方面的优点,其实也存在着一些功能方面的限制:

  例如MRTG本身只是通过SNMP协议来监测网络流量的一个工具软件,所以在设计上并没有考虑到提供足够的和SNMP协议结合的功能以实现对服务器其它方面的性能参数进行监测。简单的说,SNMP获得的信息尽管足够全面,但是MRTG默认的配置方式只能对其网络信息作监控,这样对于SNMP协议来说就有点大材小用之嫌。

  所以如果要实现对SNMP所获得的更多信息进行统计就必须要像上面那样手动定制脚本并将获取的数据指定到MRTG配置文件上。这实际上只是利用MRTG来做一个信息采集与绘图的软件。这种操作给我个人的感觉似乎有些不伦不类,况且手动定制脚本尽管的确可以拥有一定的灵活性,但这对于一些初级用户来说还是存在一些技术上的困难。另外如果这样的结构扩展到拥有多个服务器的网络中,就需要在每一个服务器上都要部署同样的架构来实现多台服务器同步监测,显然工作量就显得比较大了。

  另外mrtg的数据库是一种文本式的数据库,一般数据不能重复使用,只能画出两个DS(一条线,一个块)并且缺乏管理功能。

  能否有一款方案能够完全利用SNMP协议中众多的MIB和OID信息绘制出内容综合全面而且接口美观的系统性能分析图表呢?答案就是现在即将出场的RRDtool和Cacti。

  RRDtool其实和mrtg是同一家族, 主要目的都是产生time-series的图文件(如流量,负载,温度......)。不过因为mrtg当初的考虑是画两种资料在图上(或四个值),原作者觉得这样的功能十分不足,所以后来另外又开发了Rrdtool。

  RRDtool本身可和mrtg结合,但其结合基本上仅在于将mrtg的文字文件的log转成rrd储存格式,使用rrd存储格式,数据能重复使用,例如可以将一个rrd文件中的数据与另一个rrd文件中的资料相加;可以定义任意时间段画图,即你可以画出一张半年以来的数据的图,也可以画出一张半小时以来的图;能画任意个DS;CDEF也可以任意定制。所以 RRDtool 变成了几乎最终也是最好的选择。但由于RRDTool的指令非常复杂,对于使用者来说显得非常的麻烦,而且RRDtool作为一个强大的绘图引擎缺少mrtg那种数据采集功能。

  幸运的是有一套软件Cacti的发展就是基于让RRDtool使用者更方便使用该软件,除了基本的SNMP流量跟系统信息监测外,Cacti也可外挂Scripts及加上Templates来作出各式各样的监测图。

  Cacti其实是一套php程序,它运用snmpget采集数据,使用RRDtool绘图。使用Cacti能统计网络设备的流量、CPU、系统负载等参数,也可以自定义监测的指标。它的界面非常漂亮,能让你根本无需明白RRDtool的参数能轻易的绘出漂亮的图形。更难能可贵的是,它提供了强大的数据管理和用户管理功能,一张图是属于一个host的,每一个host又可以挂载到一个树状的结构上。

  RRDtool与Cacti配合的工作流程如下:

  Cacti会通过SNMP定时采集并存储被监测设备的各种数据信息,而这些数据信息会被以rra文件形式存储在Mysql数据库中。如果当用户需要查询这些数据信息的时候会通过Cacti将请求提交给Mysql数据库来查找设备对应的rra文件名称,并同时通过RRDtool绘制流量图以及返回给用户。

  用户的管理上,作为一个开源软件,它可以做到为指定一个用户能查看的“树”、host、甚至每一张图,还可以与LDAP结合进行用户的验证,可以说,Cacti将RRDtool的所有“缺点”都补足了!

  有关于Cacti和RRDtool方面的更多信息可以访问其官方网站:

  http://www.cacti.net/

  http://oss.oetiker.ch/rrdtool/

0
相关文章