基于Jrobin监控系统UI展现

一、RRD及RRDTool简介

RoundRobinDatabase环状数据库,是一种处理定量数据、以及当前元素指针的技术。没有起点,没有终点,过来一段时间,所有可用的位置都会被用过,该循环过程会自动重用原来的位置。这样,数据集不会增大,并且不需要维护

基于这种特点,RRD数据库用于许多记录时间序列的数据系统,如气象、速度、电压、输出量、网络流量、机场附近的噪音等级

RRDTool就是操作这个数据库的工具,它RRD数据库存储数据、从RRD数据库中提取数据。计算平均值、峰值,创建用于在Web浏览器中显示的PNG格式的图像

RRD优点:

1、基于文件系统,与LDAP结合。

2、自定义数据统计周期大小,创建数据库时即固定文件大小,不需要维护。

3、一个数据库可自定义多个数据源和多种统计方式,一个数据库可生成多种统计图表,多个数据库可合并一个图表。

4、可生成xml数据库定义模板和图表定义模板,可将数据导入导出xml文件,扩展性强,应用广,兼容性强。

5、轻量级文件型数据库,需要什么保存什么,减轻已有数据库服务器压力。

6、基于java开源工具,有poolBackendsPlottable等机制可以使用和扩展。

二、Cacti监控系统原理

步骤详解:

1、定时采集数据:使用agent客户端代理或网络协议采集被监控服务器数据。

2、存储数据:在监控服务器安装net_snmp工具将采集的数据保存至rrd数据库。

3、用户配置设备:用户使用cactiopennmsnagios等监控工具配置服务器集群、生成图表的监控项等。

4、保存配置数据至开源数据库。

5、监控工具绘制图表:在用户查看时生成,使用rrdtool工具绘制性能统计图表。

6、展现图表。

三、基于RRD监控系统UI模块设计

步骤详解:

1、数据采集:使用已有的基于日志和ftp数据采集。

2、查看数据库模板并分配数据:每获取一次采集数据,对数据存储消息服务发送一次消息,由该服务查看数据库中该数据相关RRD模板。如采集一条sso登录用户数据,对应用户登录统计(年//日)、金牌会员登录统计(年/月)、用户停留时长统计(月)3RRD模板,即这条数据将更新至这3RRD数据库中。

3、存储数据:将对应的采集数据更新至RRD库。

4、Nagios集成:大多数网络监控系统如Nagios,都采用RRD保存监控数据,JRobin可以直接读取这些RRD文件,并生成图表。

5、用户配置统计项:UI提供用户自定义配置统计项功能,列出系统监控点和支持统计算法,供用户选择并生成RRD模板和对应的RRDGraph模板。

6、将用户自定义的RRD模板和RRDGraph模板以一对多的形式与关联的监控数据点对应保存至数据库。如用户配置sso登录用户监控点,自定义了3RRD模板,和6RRDGraph模板。

7、根据对应RRDGraph模板生成图表。

8、展现给用户。

四、JRobin语法

(一)创建数据库

1、立一个名为target.rrd的资料库

RrdDefrrdDef=newRrdDef(rrdPath);

2、开始时间(1'023'654'125)是由01-01-1970起算的秒数

rrdDef.setStartTime()

3Step300说明每300秒是一个周期.完整程序稿(wrapperscript)在每一周期都应执行一次,才能在每一周期内更新资料库.若要更新资料库,更新时间()亦须定义;且更新时间必须比开始时间大.

rrdDef.setStep()


4、DS(DataSource)是对应到被监视设备参数的真实变数,其语法如下:

DS:variable_name:DST:heartbeat:min:max

rrdDef.addDatasource("cpu123","GAUGE",2*step,0,Double.NaN);

1DS:关键字,表示这是一个资料的定义

2variable_name(变数名):资料库中存放资料的名称;可依需要定义多个DS.在每一个step周期内会产生一组新的DS,用以更新资料库.这个值也称为PrimaryDataPoint(PDP).在上例,300秒产生一个新的PDP.
:如果无法刚好在每300秒产生一个值,RRDtool会自动补偿修正.

3DST(DataSourceType):定义DS的型态(Type);说明如下:
COUNTER:贮存在一个周期内,值之改变率(假设值是一直增加的).路由器的Trafficcounters是个使用counter型态的好例子.
DERIVE:同COUNTER,但容许有负值.如果你想观察在你伺服器上的硬碟自由空间的变化率,可以使用本型态.
ABSOLUTE:同前,但假设前一周期的值为0,换句话说,是和前一周期的值的差.
GAUGE:贮存实际的值.伺服器的记忆体状况是个典型的例子.
几个不同的DST型态的比较例子如下:
Values=300|600|900|1200|Step=300seconds
COUNTERDS=1|1|1|1
DERIVEDS=1|1|1|1
ABSOLUTEDS=1|2|3|4
GAUGEDS=300|600|900|1200

4heartbeat:在我们的例子中heartbeat600;如果在300秒内,资料库没有接收到一个新的PDP,它将会再等300(600);若还是无法收到任何PDP,将会以UNKNOWN存到资料库中.
:UNKNOWNRRDtool具有特殊意义(UNKNOWN表示一个错失掉的值比用0或其他的值好).
5minimum:上限值.
6maximum:下限值.

如果设定了上下限,任何更新值落在范围之外,将以UNKNOWN贮存之.


5roundrobinarchive(RRA)的宣告,语法如下:
RRA:CF:xff:step:rows

rrdDef.addArchive("AVERAGE",0.5,1,24);

RRA:关键字;.
CF:整合(consolidated)函数;可以是AVERAGE,MINIMUM,MAXIMUM,andLAST.
xff:未说明;看到的值都是0.5(猜测是offset).
step:要多少个周期来整合(DS)资料(算是一列).
rows:要收集多少列(开始循环).
consolidateddatapoint(CDP)的概念由此处导入图形(picture)
一个CDP是在一个周期内已经经由整合函数处理后的一组PDP.这个RRA将保持数个CDPs的列.

6、让我们再来看看上面所用的例子:
RRA:AVERAGE:0.5:12:24\
RRA:AVERAGE:0.5:288:31
第一列的RRA:
12个周期(steps)PDP,使用整合函数AVERAGEed处理(算是一列);取到24(rows);从第25列开始循环(覆盖掉第1).
每一个PDP300,12PDP12*300=3600,1小时.这表示要取得1个CDP(等於12PDP)的资料需要1小时,24CDP需要一天.因此这个RRA需要一天的时间建构.经过24CDPs,25CDP会取代第1CDP;依次类推.
第二列的RRA:
贮存31CDP;每个CDP要一个一天的平均值(288PDPs,每个300*288=24小时);所以这个RRA是一个月的建构周期.
一个单一的资料库可以有很多RRA.如果定义了多个DS,每个个别的RRA将贮存所有DS的值到资料库.例如有一个资料库,3DS定义,及有每日,每周及每月的RRA宣告,则每个RRA将分别为3datasources保存资料.

注意:一个rrd可以有多个DS,定义多个RRA.一个RRA可以记录所有的DS数值

覆盖周期=(#CDPsstored)*(#PDPsperCDP)*step


概念:

RRD:RoundRobinDatabase循环数据库

DS:DataSource数据源

RRA:roundrobinarchive档案

PDP:PrimaryDataPoint单元数据点

CDP:consolidateddatapoint整合数据点

(二)生成图表

1、建立数据库图表

RrdGraphDefdef=newRrdGraphDef();

2、数据定义

DEF:<vname>=<rrdfile>:<dsname>:<CF>[:step=<step>][:start=<time>][:end=<time>][:reduce=<CF>]

def.datasource(name,file,dsName,consolFunc)

def.setTimePeriod(start,start+86400);

Name:图表数据源名

File:RRD库路径

dsName:指定RRD数据源名

consolFunc:指定RRD数据源某个CF函数类型

3、变量定义

VDEF:vname=RPNexpression

VDEF支持输出最大值、最小值、平均值、当前值等逻辑成像。

def.datasource(name,“MAX:%13.2lf)

4、数据计算

CDEF:vname=RPNexpression

CDEF支持很多数学运算,甚至还支持简单的逻辑运算if-then-else,可以只绘制你所关心的数据。

def.datasource(name,rpn)

Name:将通过CDEF计算过的数据当做图表数据源,重新命名。

Rpn:CDEF数据计算RPN语法语句。

5、图表元素

[-t|--titlestring][-v|--vertical-labelstring]

def.setVerticalLabel("linkspeed[bits/sec]");

def.setTitle("LeasedLineDailyTraffic");

Title:标题

Vertical-label:左侧说明文字

6、打印元素

(1)LINE的方式来绘图

def.line("b",Color.decode("0x22e9"),"min",1);

(2)STACK方式绘图

def.area("out8",Color.GREEN,"outputtraffic");

(3)基准线

graphDef.rule(100,Color.BLUE,"Maximumallowed");

graphDef.vrule(100,Color.BLUE,"Maximumallowed");

Rule:横向基线

Vrule:纵向基线

(4)数字报表

def.comment("")

def.comment("Maximum")

def.comment("Average")

def.comment("Minimum")

def.comment("95thpercentile")

def.gprint("ds0max","MAXIMUM","avgIn=@2@sbits/sec");

def.gprint("ds0avg","AVERAGE","avgIn=@2@sbits/sec");

def.gprint("ds0min","MINIMUM","avgIn=@2@sbits/sec");

def.gprint("ds0pct","PERCENT","avgIn=@2@sbits/sec");

Comment:报表列

Gprint:报表单元数据

7、生成图片

RrdGraphg=newRrdGraph(def);

g.saveAsPNG(PNG,400,200);

(三)RRD

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值