Cacti是一款网络流量监测图形分析工具,把LAMP的功能都结合起来,用于网络流量监控,操作起来非常方便!让我们认识下Cacti简介及工作流程。
一、Cacti简介
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文件是大小固定的档案文件(RoundRobinArchive),它能够存储的数据笔数在创建时就已经定义。
• 是一套基于php、mysql、SNMP、RRDTool开发的网络流量监测图形分析工具。Cacti通过snmpget获取数据,使用RRDTool绘画图形。最后通过web方式呈现出来
• Cacti三层架构:
– 数据采集层:通过SNMP或自定义脚本进行数据采集
– 数据存储层:通过cacti模板等数据存放至MYSQL中
– 数据展现层:通过WEB方式呈现出来
也可以把他理解为一个php网站
Cacti各组件的功能如图1.1所示:
2、Cacti工作原理
Cacti操作可以分为以下三部分,如图2.1所示:
2.1 Data Retrieval
Cacti首先要做的工作就是收集数据,cacti使用Poller(轮询器)收集数据。Poller是操作系统scheduler的扩展,如在类Unix系统中的crontab。现在的IT设施中会有许多不同的设备,如服务器、网络设备等,cacti主要使用SNMP协议来从远端的设备上收集数据,所有可以使用SNMP协议的设备都可以被cacti监控。
2.2 Data Storage
存储收集到的数据有许多方法,可以使用数据库、平面文件等,cacti使用的是RDDTool。RRD是RoundRobin Database(环形数据库)的缩写,RRD用来存储和显示时间序列数据,如网络带宽、机房温度、服务器负载等,RRD使用非常紧凑的方式存储数据,数据不会随着时间的推移而增大,RRD还可以生成美观的图形。这些特性使得cacti没有存储需求。RRD也做一席位其他的工作,如RRD会将原始数据与已整合的数据进行合并,以使得