RRDTool概览

做过网络管理以及网管软件开发的人肯定对MRTG(The Multi Router Traffic Grapher)www.mrtg.org 熟悉不过了,个人认为The Multi Router Traffic Grapher的名称不是十分准确,因为它可以显示的不仅仅是路由器的流量图,其他很多随着时间而数据发生变化的都可以通过MRTG来展示。
    说到MRTG就不能不提到一个非常著名且有效的数据保存工具:RRDTool www.rrdtool.org 。用一句比较简单的话来描述RRDTool就是一个可以自动归并数据的数据库。好了,我们来简单的看一下RRDTool的工作原理。
    关键名词之DS DS就是data source了,也就是数据源。对于一个RRDTool文件,里面可以有几个随着时间变化的数据源。语法为DS:DSName:step:DStype:Step:minValue:maxValue,对于一个DS,他有五个参数需要定义:分别为 名称、类型、步长、最小值、最大值。
    好了,我们来看一个例子:DS:telnet:COUNTER:600:0:100000000。
    名称:叫做telnet,当然你可以任意的起名字了,方便记忆就好。对于起名规则我没有仔细研究过,至于一些特殊符号是否支持,可以试试,最好不要用了。
    类型:COUNTER,DS类型有四种,COUNTER, DERIVE, ABSOLUTE, GAUGE.常用的是COUNTER和GAUGE。对于GAUGE,也就是绝对数值,向RRDTool中写入一个数值就是这个数值;对于COUNTER,常用于路由器的流量记录,原理是这样的:路由器的端口流量是一个不断增加的数值,它可能是一个32位也可能是一个64位的数字,每当从端口流出一个八位组(一个byte)他的数值就会增加1,当数值达到该数字最大范围后自动重新从0开始记录。COUNTER就是用于这种类型数据的记录。每次采集到的数值直接存入到rrd数据里面。它会在导出数据以及生成图形时将根据COUNTER的数值以及步长来计算出速率。对于其他两种,我没有使用过,有兴趣可以参看rrdtool的网站
    步长:600,就是说每600秒(10分钟)进行一次数据更新。
    最大值、最小值:分别为0,100000000了啊!当然可以不限定就是用U:U来表示。
    关键名词之RRA: 即 Round Robin Archive 怎么翻译呢?叫循环数据?就是这个意思吧。RRDTool的数据与普通数据库相比较的优点之一也就在这里,他可以根据RRA的定义来对数据进行相应的归并处理。我想如果用数据库的触发器等可以完成同样的功能。但是实现起来可能会比较麻烦。废话少说看个例子吧:
    RRA:AVERAGE:0.5:1:603 \
    RRA:AVERAGE:0.5:6:603 \
    RRA:AVERAGE:0.5:24:603 \
    RRA:AVERAGE:0.5:288:800 \
    RRA:MAX:0.5:1:603 \
    RRA:MAX:0.5:6:603 \
    RRA:MAX:0.5:24:603 \
    RRA:MAX:0.5:288:800
    用一个语法的格式来表示就是RRA:CF:xff:step:rows。 怎么这么复杂?不用着急,分析一下就知道了,刚才不是说了RRDTool的优点就是可以归并数据吗?这个就是来定义归并规则的,我们来看一下具体的解释:
    RRA:用以声明RRAs的关键字,固定不变的。
    CF(consolidation function)合并方式,有几种方式:AVERAGE, MINIMUM, MAXIMUM, LAST 。
    xff:xfiles factor 和unkown数据有关,很多都取0.5,具体含义没有搞清楚。
    step:定义几条原始数据合并成一条当前数据。
    row:这个RRA要记录多少条数据。
    看一个图片吧!
    java版的RRDTool鈥斺擱RD4j(一) <wbr>RRDTool概览
    我们看看上边的例子中的一行:RRA:AVERAGE:0.5:6:603 就是说对于这个RRA所保存的是6个DS中定义的Step的平均值,一共要记录603个数据。
    ok,基本问题搞清楚了,我们看一个比较完整一点儿的例子:
DS:telnet:GAUGE:600:0:10000000 \
DS:smtp:GAUGE:600:0:10000000 \
DS:domain:GAUGE:600:0:10000000 \
DS:http:GAUGE:600:0:10000000 \
DS:pop3:GAUGE:600:0:10000000 \
DS:total:GAUGE:600:0:10000000 \
RRA:AVERAGE:0.5:1:603 \
RRA:AVERAGE:0.5:6:603 \
RRA:AVERAGE:0.5:24:603 \
RRA:AVERAGE:0.5:288:800 \
RRA:MAX:0.5:1:603 \
RRA:MAX:0.5:6:603 \
RRA:MAX:0.5:24:603 \
RRA:MAX:0.5:288:800 
   根据上面的说明,我想会很容易理解其中的内容。好了,第一次的介绍就到这里了,下一次介绍RRD4j的正式内容。
   注:本文中部分内容摘自abelyang <abelyang.twnic.net.tw> 的RRDtool教学文章。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值