rrdtool绘图使用详细

上传人:第*** 文档编号:31777368 上传时间:2018-02-09 格式:DOCX 页数:22 大小:360.13KB
返回 下载 相关 举报
rrdtool绘图使用详细_第1页
第1页 / 共22页
rrdtool绘图使用详细_第2页
第2页 / 共22页
rrdtool绘图使用详细_第3页
第3页 / 共22页
rrdtool绘图使用详细_第4页
第4页 / 共22页
rrdtool绘图使用详细_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《rrdtool绘图使用详细》由会员分享,可在线阅读,更多相关《rrdtool绘图使用详细(22页珍藏版)》请在金锄头文库上搜索。

1、 RRDtool 绘图使用详细 iakuf 收藏于 2010-03-19 阅读数: 公众公开 原文来源 RRDtool 的定义RRDtool 代表 “Round Robin Database tool” ,作者同时也是 MRTG 软件的发明人。官方站点位于 http:/oss.oetiker.ch/rrdtool/ 。 所谓的“Round Robin” 其实是一种存储数据的方式,使用固定大小的空间来存储数据,并有一个指针指向最新的数据的位置。我们可以把用于存储数据的数据库的空间看成一个圆,上面有很多刻度。这些刻度所在的位置就代表用于存储数据的地方。所谓指针,可以认为是从圆心指向这些刻度的一条直

2、线。指针会随着数据的读写自动移动。要注意的是,这个圆没有起点和终点,所以指针可以一直移动,而不用担心到达终点后就无法前进的问题。在一段时间后,当所有的空间都存满了数据,就又从头开始存放。这样整个存储空间的大小就是一个固定的数值。所以 RRDtool 就是使用类似的方式来存放数据的工具, RRDtool 所使用的数据库文件的后缀名是.rrd。RRDtool 的特殊之处A) 首先 RRDtool 存储数据,扮演了一个后台工具的角色。但同时 RRDtool 又允许创建图表,这使得 RRDtool 看起来又像是前端工具。其他的数据库只能存储数据,不能创建图表。 B) RDtool 的每个 rrd 文件

3、的大小是固定的,而普通的数据库文件的大小是随着时间而增加的。C) 其他数据库只是被动的接受数据, RRDtool 可以对收到的数据进行计算,例如前后两个数据的变化程度(rate of change),并存储该结果。 D) RRDtool 要求定时获取数据,其他数据库则没有该要求。如果在一个时间间隔内(heartbeat)没有收到值,则会用 UNKN 代替,其他数据库则不会这样。建立 RRD 数据库建库实际上就是建立后缀名为 .rrd 的 RRD 文件。一)语法格式CODE:rrdtool create filename -start|-b start time -step|-s step DS

4、:ds-name:DST:dst arguments RRA:CF:cf arguments其中 filename 、DS 部分和 RRA 部分是必须的。其他两个参数可免。二)参数解释A) :默认是以 .rrd 结尾,但也以随你设定。B) -step :就是 RRDtool “期望” 每隔多长时间就收到一个值。和 MRTG 的 interval 同样含义。默认是 5 分钟。我们的脚本也应该是每 5 分钟运行一次。C) -start :给出 RRDtool 的第一个记录的起始时间。RRDtool 不会接受任何采样时间小于或者等于指定时间的数据。也就是说 -start 指定了数据库最早的那个记录是

5、从什么时候开始的。如果 update 操作中给出的时间在 -start 之前,则 RRDtool 拒绝接受。-satrt 选项也是可选的。按照 我们在前一篇中的设定,则默认是当前时间减去 600*300 秒,也就是 50 个小时前。 如果你想指定-start 为 1 天前,可以用CODE:-start $(date -d 1 days ago +%s)注意,-start 选项的值必须是 timestamp 的格式。D) DS :DS 用于定义 Data Soure 。也就是用于存放脚本的结果的变量名(DSN)。就是我们前面提到的 eth0_in ,eth0_out, lo_in , lo_ou

6、t 。DSN 从 1-19 个字符,必须是 0-9,a-z,A-Z 。E) DST :DST 就是 Data Source Type 的意思。有 COUNTER、GUAGE 、DERIVE、ABSOLUTE 、COMPUTE 5 种。由于网卡流量属于计数器型,所以这里应该为 COUNTER 。F) RRA :RRA 用于指定数据如何存放。我们可以把一个 RRA 看成一个表,各保存不同 interval 的统计结果G)PDP :Primary Data Point 。正常情况下每个 interval RRDtool 都会收到一个值;RRDtool 在收到脚本给来的值后会计算出另外一个值(例如平均

7、值),这个 值就是 PDP ;这个值代表的一般是“xxx/秒”的含义。注意,该值不一定等于 RRDtool 收到的那个值。除非是 GAUGE ,可以看下面的例子就知道了 H) CF :CF 就是 Consolidation Function 的缩写。也就是合并(统计)功能。有 AVERAGE、 MAX、MIN、LAST 四种分别表示对多个 PDP 进行取平均、取最大值、取最小值、取当前值四种类型。具体作用等到 update 操作时 再说。I) CDP :Consolidation Data Point 。RRDtool 使用多个 PDP 合并为(计算出)一个 CDP。也就是执行上面 的 CF

8、操作后的结果。这个值就是存入 RRA 的数据,绘图时使用的也是这些数据。三)再说 DST DST 的选择是十分重要的,如果选错了 DST ,即使你的脚本取的数据是对的,放入 RRDtool 后也是错误的,更不用提画出来的图是否有意义了。 如何选择 DST 看下面的描述 :A)COUNTER :必须是递增的,除非是计数器溢出(overflows)。在这种情况下,RRDtool 会自动修改收到的值。例如网络接口流量、收到的 packets 数量都属于这一类型。B)DERIVE :和 COUNTER 类似。但可以是递增,也可以递减,或者一会增加一会儿减少。C)ABSOLUTE :ABSOLUTE 比

9、较特殊,它每次都假定前一个 interval 的值是 0,再计算平均值。D)GAUGE :GAGUE 和上面三种不同,它没有 “平均”的概念,RRDtool 收到值之后字节存入 RRA 中E)COMPUTE :COMPUTE 比较特殊,它并不接受输入,它的定义是一个表达式,能够引用其他 DS 并自动计算出某个值。例如CODE:DS:eth0_bytes:COUNTER:600:0:U DS:eth0_bits:COMPUTE:bytes,8,* 则 eth0_bytes 每得到一个值,eth0_bits 会自动计算出它的值:将 eth0_bytes 的值乘以 8 。不过 COMPUTE 型的

10、DS 有个限制,只能应用它所在的 RRD 的 DS ,不能引用其他 RRD 的 DS。 COMPUTE 型 DS 是新版本的 RRDtool 才有的,你也可以用 CDEF 来实现该功能。F)AVERAGE 类型适合于看 “平均”情况,例如一天的平均流量,。所以 AVERAGE 适用于需要知道 xxx/秒 这样的需求。但采用 AVERAGE 型时,并不知道 在每个 CDP 中(假设 30 分钟平均,6 个 PDP 组成)之中,流量具体是如何变化的,什么时候高,什么时候低。这于需要用到别的统计类型了G)MAXIMUM 、MINIMUM 不适用想知道“xxx/秒”这样的需求,而是适用于想知道某个对象

11、在各个不同时刻的表现的需求,也就是着重点在于各个时间点。例如要看某个接口在一天内有没有超过 50Mb 流量的时候就要用 MAXIMUM例如要看磁盘空间的空闲率在一天内有没有低于 20% 的时候就要用 MINIMUMH) LAST 类型适用于 “累计”的概念,例如从 xxx 时候到目前共累计 xxxx 这样的需求。例如邮件数量,可以用 LAST 来表示 30 分钟内总共收到多少个邮件,同样 LAST 也没有平均的概念,也就是说不适用于 xxx/秒 这样的需求,例如你不能说平均每秒钟多少封邮件这样的说法;同样也不适用于看每个周期内的变化,例如 30 分钟内共收到 100 封邮件,分别是:第一个 5

12、 分钟 20 封,第二个 5 分钟 30 封,第三个 5 分钟没有,第 4 个 5 分钟 10 封,第 5 个 5 分钟也没有,第 6 个 5 分钟40 封。如果用 MAXIMUM 或者 MINIMUM 就不知道在 30 分钟内共收到 100 封邮件,而是得出 30和 0。所以 LAST 适用于每隔一段时间被观察对象就会复位的情况。例如每 30 分钟就收一次邮件,邮件数量就是 LAST 值,同时现有的新邮件数量就被清零;到下一个 30 分钟再收一次邮件,又得到一个 30 分钟的 LAST 值。 这样就可以得得出“距离上一次操作后到目前为止共 xxx”的需求。(例如距离上一次收取邮件后又共收到

13、100 封新邮件)四)DST 实例说明这样说可能还是比较模糊,可以看下面的例子,体会一下什么是 DST 和 PDP :QUOTE:Values = 300, 600, 900, 1200 # 假设 RRDtool 收到 4 个值,分别是300,600,900,1200Step = 300 seconds # step 为 300COUNTER = 1,1, 1,1 # (300-0 )/300,(600-300)/300,(900-600)/300,(1200-900)/300 ,所以结果为 1,1,1,1DERIVE = 1,1,1,1 # 同上ABSOLUTE = 1,2,3,4 # (3

14、00-0)/300,(600-0)/300 , (900-0)/300, (1200-0)/300,所以结果为 1,2,3,4GAUGE = 300,600,900,1200 # 300 , 600 ,900 ,1200 不做运算,直接存入数据库所以第一行的 values 并不是 PDP ,后面 4 行才是 PDP 五)开始建库CODE:rootdns1 root# rrdtool create eth0.rrd -start $(date d 1 days ago +%s) -step 300 DS:eth0_in:COUNTER:600:0:12500000 # 600 是 heartbe

15、at;0 是最小值;12500000 表示最大值; DS:eth0_out:COUNER:600:0:12500000 # 如果没有最小值 /最大值,可以用 U 代替,例如 U:U RRA:AVERAGE:0.5:1:600 # 1 表示对 1 个 PDP 取平均。实际上就等于 PDP 的值 RRA:AVERAGE:0.5:4:600 # 4 表示每 4 个 PDP 合成为一个 CDP,也就是 20 分钟。方法是对 4 个 PDP 取平均, RRA:AVERAGE:0.5:24:600 # 同上,但改为 24 个,也就是 24*5=120 分钟=2 小时。 RRA:AVERAGE:0.5:288:730 # 同上,但改为 288 个,也就是 288*5=1440 分钟=1 天rootdns1 root# CODE:rootdns1 bob# ll -h eth0.rrd-rw-r-r- 1 root root 41K 11 月 19 23:16 eth0.rrdrootdns1 bob#有的人可能会问,上面有两个 DS,那 RRA 中究竟存的是那个 DS 的数据呢?实际上,这些 RRA 是共用的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 工业设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号