一、RRD及RRDTool简介
Round Robin Database 环状数据库,是一种处理定量数据、以及当前元素指针的技术。没有起点,没有终点,过来一段时间,所有可用的位置都会被用过,该循环过程会自动重用原来的位置。这样,数据集不会增大,并且不需要维护。
基于这种特点,RRD数据库用于许多记录时间序列的数据系统,如气象、速度、电压、输出量、网络流量、机场附近的噪音等级。
RRDTool就是操作这个数据库的工具,它向RRD数据库存储数据、从RRD数据库中提取数据。计算平均值、峰值,创建用于在Web浏览器中显示的PNG格式的图像。
RRD优点:
1、基于文件系统,与LDAP结合。
2、自定义数据统计周期大小,创建数据库时即固定文件大小,不需要维护。
3、一个数据库可自定义多个数据源和多种统计方式,一个数据库可生成多种统计图表,多个数据库可合并一个图表。
4、可生成xml数据库定义模板和图表定义模板,可将数据导入导出xml文件,扩展性强,应用广,兼容性强。
5、轻量级文件型数据库,需要什么保存什么,减轻已有数据库服务器压力。
6、基于java开源工具,有pool、Backends、Plottable等机制可以使用和扩展。
二、Cacti监控系统原理
步骤详解:
1、定时采集数据:使用agent客户端代理或网络协议采集被监控服务器数据。
2、存储数据:在监控服务器安装net_snmp工具将采集的数据保存至rrd数据库。
3、用户配置设备:用户使用cacti、opennms、nagios等监控工具配置服务器集群、生成图表的监控项等。
4、保存配置数据至开源数据库。
5、监控工具绘制图表:在用户查看时生成,使用rrdtool工具绘制性能统计图表。
6、展现图表。
三、基于RRD监控系统UI模块设计
步骤详解:
1、数据采集:使用已有的基于日志和ftp数据采集。
2、查看数据库模板并分配数据:每获取一次采集数据,对数据存储消息服务发送一次消息,由该服务查看数据库中该数据相关RRD模板。如采集一条sso登录用户数据,对应用户登录统计(年/月/日)、金牌会员登录统计(年/月)、用户停留时长统计(月)3个RRD模板,即这条数据将更新至这3个RRD数据库中。
3、存储数据:将对应的采集数据更新至RRD库。
4、与Nagios集成:大多数网络监控系统如Nagios,都采用RRD保存监控数据,JRobin可以直接读取这些RRD文件,并生成图表。
5、用户配置统计项:UI提供用户自定义配置统计项功能,列出系统监控点和支持统计算法,供用户选择并生成RRD模板和对应的RRDGraph模板。
6、将用户自定义的RRD模板和RRDGraph模板以一对多的形式与关联的监控数据点对应保存至数据库。如用户配置sso登录用户监控点,自定义了3个RRD模板,和6个RRDGraph模板。
7、根据对应RRDGraph模板生成图表。
8、展现给用户。
四、JRobin语法
(一)创建数据库
1、建立一个名为target.rrd的资料库
RrdDef rrdDef = new RrdDef(rrdPath);
2、开始时间(1'023'654'125)是由01-01-1970起算的秒数