概述:

 

 
1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
 
3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round RobinArchive),它能够存储的数据笔数在创建时就已经定义。
 

它主要有以下一些特点,当然有些是RRDtool的特性:
1
、基于RRDtool使效率提高。
Cacti
基于RRDtool存储监控数据,在查询指定时间段的监控数据时候不用浏览整个数据文件,和mrtg的文本log相比具有更高的效率。监控曲线图片的生成并不想mrtg那样和数据采集同步并定时成生,而是通过RRDtool提供的图片生成工具使用PHP脚本来生成动态web图片。
2、监控项目曲线图多样化。
RRDtool
的图片生成工具提供了多种参数,这样可以动态设置更多样式的曲线图,也可以将若干监控项目集中显示在一张图片中,例如我们如果要同时显示http/ftp/dns多种协议的流量时就可以派上用场了。当然,其他如颜色,曲线样式,图片大小格式,说明文字等都可以定制产生。
另外我认为最大的一个改进功能是定时时间段的曲线图生成,突破了mrtg中日周月年的固定模式,当然,这取决于你的存储数据条数,呵呵,在一般情况下,日周月年还是非常科学的一种时间样式。
3、基于web配置与监控,操作简单
Cacti
是一种web方式的软件,监控项目的新建、配置、管理、监控都是基于web方式来操作的,这对于使用者来说是非常舒服的。

工作原理图:

cacti原理