领悟rrdtool

简介:
rrdtool编程,我断断续续学了有一个星期了.今天,我来总结下我学习的经验,以供路人和我参考.
rrdtool重要的也就是create,update,graph
create就是创建一个rrd数据库,在这里我们要注意几点:
(1)心中要有图,只有心中有图,才知道要什么样的结果.
(2)研究数值,以便你知道定义什么类型的DS,如果DST定义的不正确,不管是update,graph都是白搭.
   补充DST的类型:counter,derive,absolute,gauge,compute(常用的counter,gauge)
   补充PDP的定义
PDP :Primary Data Point 。正常情况下每个 interval RRDtool 都会收到一个值;RRDtool 在收到脚本给来的值后会计算出另外一个值(例如平均值),这个 值就是 PDP ;这
个值代表的一般是“xxx/秒”的含义。注意,该值不一定等于RRDtool  收到的那个值。除非是GAUGE ,可以看下面的例子:
      
Values = 300, 600, 900, 1200       
# 假设 RRDtool 收到4个值,分别是300,600,900,1200
Step = 300 seconds                    
# step 为 300
COUNTER = 1,1, 1,1                        
 # (300-0)/300,(600-300)/300,(900-600)/300,(1200-900)/300 ,所以结果为 1,1,1,1
DERIVE = 1,1,1,1                         # 同上
ABSOLUTE = 1,2,3,4                   
# (300-0)/300,(600-0)/300 , (900-0)/300, (1200-0)/300,所以结果为 1,2,3,4
GAUGE = 300,600,900,1200          # 300 , 600 ,900 ,1200 不做运算,直接存入数据库
所以第一行的 values 并不是 PDP ,后面4行才是 PDP
(3)rra的作用,就像是一个库里的表,这个表是用来存储CDP的数据,每张表根据定义的粒度不同,所存储的数据是不一样的,有的粒度是5分钟,有的是30分钟,有的是.......他们都是
根据参数的定义而不同的.如:
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天
我们要知道以后的graph所取的值都是来自rra的.
(4)注意rra定义下的CF,这个CF在我看来有两个作用,第一个作用是用来如何处理pdp的数据,如
RRA:AVERAGE:0.5:4:600   这是表示每4个 PDP 合成为一个 CDP(取平均值),其实CF还有min,max,last(我们看字面意思也就知道什么作用了.)
第二个作用是用来为graph时定义画图的值来自哪个RRA.
update更新rra,需要注意几点
(1)根据create时定义的DS数量,需要按照一定的顺序(用冒号分开).如:
update rrdfile,timestamp:value1,value2...(注意value1,value2...对应的是create创建时的dsname1,dsname2(顺序重要))
graph画图需要注意几点
(1)为什么还有一个 CF 字段?因为 RRA 有多种  CF 类型,有些 RRA 可能用来保存平均值、有些 RRA 可能用于统计最大值、最小值等等。所以你必须同时指定使用什么 CF 类型
的 RRA的数据。

知识点补充
解释度(Resolution)(这个告诉我们应该取那个RRA的数据了(定义了那么多RRA,有用处了吧!嘎嗄…))
这里要提到一个 Resolution 的概念,在官方文档中多处提到 resolution 一词。Resolution 究竟是什么?Resolutino 有什么用?
举个例子,如果我们要绘制1小时的数据,也就是60分钟,那么我们可以从第一个RRA 中取出12个 CDP 来绘图;也可以从第2个 RRA中取出3个 CDP 来绘图。到底 RRDtool 会使用那个呢?
让我们看一下 RRA 的定义 :RRA:AVERAGE:0.5:4:600 。
Resolution 就等于 4 * step = 4 * 300 = 1200 ,也就是说 ,resolution 是每个CDP 所代表的时间范围,或者说 RRA 中每个 CDP(记录)之间的时间间隔。所以第一个 RRA 的 resolution 是 1* step=300,第2是 1200,第三个是 24*300=7200,第4个 RRA 是 86400 。
默认情况下,RRDtool 会自动挑选合适的 resolution 的那个 RRA 的数据来绘图。我们大可不必关心它。但如果自己想取特定 RRA 的数据,就需要用到它了。


本文转自hahazhu0634 51CTO博客,原文链接:http://blog.51cto.com/5ydycm/121486,如需转载请自行联系原作者
相关文章
|
6月前
|
XML 存储 程序员
老程序员分享:libxml2的安装及使用【总结】
老程序员分享:libxml2的安装及使用【总结】
408 0
|
关系型数据库 MySQL 数据库
一文教你Mysql安装
安装地址 Mysql安装 安装此项
78 0
一文教你Mysql安装
|
缓存
yum使用_学习记录
yum作为前端包管理器,解决了rpm包管理无法解决的依赖问题。 Client端配置文件有:/etc/yum.conf /etc/yum.repos.d/*.repo缓存文件/var/cache/yum/$basearch/$releasever缓存仓库信息,一repoid命名目录下存放缓存repo元数据 缓存软件包 Server端repodata目录下存放元数据packages包文件public-key公钥可以通过createrepo创建生成repodata目录。
857 0
|
关系型数据库 MySQL 数据库
Mysql安装一二事
Mysql5.6版本二进制安装 1、安装前环境准备 安装目录: mkdir -p /home/app/{packages,mysql_v,scripts} cd packages wget https://cdn.
1309 0
|
Web App开发 监控 关系型数据库
致敬经典 Cacti+Nagios完全攻略
Linux下用的最多的是MRTG的性能监视,MRTG配置比较简单,MRTG的确是非常好的东东,但我认为它毕竟已经是一套很旧的软件了,其作者在多年前就已经开发了RRDTool代替该软件,现在已经发展得很成熟。
3398 0
|
监控 关系型数据库 应用服务中间件
|
Web App开发 缓存 Apache