RRDtool全称Round Robin Database,也就是环状数据库,采用数据存储加数据展示的方式,将数据以图形的形式表示出来,按照要求定时获取数据,并且可以对收到的数据进行计算,适合处理定量数据,比如科学实验和数据分析等。
软件介绍
RRDtool 代表 “Round Robin Database tool” ,作者同时也是 MRTG 软件的发明人。
所谓的“Round Robin” 其实是一种存储数据的方式,使用固定大小的空间来存储数据,并有一个指针指向最新的数据的位置。我们可以把用于存储数据的数据库的空间看成一个圆,上面有很多刻度。这些刻度所在的位置就代表用于存储数据的地方。所谓指针,可以认为是从圆心指向这些刻度的一条直线。指针会随着数据的读写自动移动。要注意的是,这个圆没有起点和终点,所以指针可以一直移动,而不用担心到达终点后就无法前进的问题。在一段时间后,当所有的空间都存满了数据,就又从头开始存放。这样整个存储空间的大小就是一个固定的数值。所以RRDtool 就是使用类似的方式来存放数据的工具, RRDtool 所使用的数据库文件的后缀名是'.rrd。
·首先 RRDtool 存储数据,扮演了一个后台工具的角色。但同时 RRDtool 又允许创建图表,这使得RRDtool看起来又像是前端工具。其他的数据库只能存储数据,不能创建图表。
·RRDtool 的每个 rrd 文件的大小是固定的,而普通的数据库文件的大小是随着时间而增加的。
其他数据库只是被动的接受数据, RRDtool 可以对收到的数据进行计算,例如前后两个数据的变化程度(rate of change),并存储该结果。
·RRDtool 要求定时获取数据,其他数据库则没有该要求。如果在一个时间间隔内(heartbeat)没有收到值,则会用 UNKN (unknow)代替,其他数据库则不会这样。
软件特性
有一个强大的绘图引擎,可以根据数据库内容,创建 png 格式的图片。
是一个基于时间序列的环形数据库。可以想象一个圆,圆周上有一些均匀分散的点。这些点就是数据存储的位置。从圆心画一条到圆周的某个点的箭头,这个箭头就是指向当前元素的指针。在当前元素被读或写之后,指针就往下一个元素移动。当所有位置都被用过,原来的位置就会被重用。这样,数据库永远不会满,不需要维护。
可以被配置成存储当前值与前一个值变化速度,而不是简单地存储提供的值。
要求在预定的时间间隔中取得监控数据,如果没有得到更新的数据,就将该时间段的值设为 UNKNOWN.
安装说明
1.安装yum源
[root@node1 ~]# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@node1 ~]# rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
2.同步时间
[root@node1 ~]# ntpdate 202.120.2.101
3.下载rrdtool的RPM包
[root@node1 ~]# wget ftp://195.220.108.108/linux/centos/6.4/os/x86_64/Packages/rrdtool-1.3.8-6.el6.x86_64.rpm
4.yum安装rrdtool
[root@node1 ~]# yum -y localinstall --nogpgcheck rrdtool-1.3.8-6.el6.x86_64.rpm
5.查看一下安装文件
[root@node1 ~]# rpm -qa | grep rrdtool
rrdtool-1.3.8-6.el6.x86_64
[root@node1 ~]# rpm -ql rrdtool
/usr/bin/rrdcgi
/usr/bin/rrdtool#命令行工具
/usr/bin/rrdupdate
/usr/lib64/librrd.so.4#下面是库文件
/usr/lib64/librrd.so.4.0.7
/usr/lib64/librrd_th.so.4
/usr/lib64/librrd_th.so.4.0.7
/usr/share/man/man1/bin_dec_hex.1.gz#下面是帮助文档
/usr/share/man/man1/cdeftutorial.1.gz
/usr/share/man/man1/rpntutorial.1.gz
/usr/share/man/man1/rrd-beginners.1.gz
/usr/share/man/man1/rrdbuild.1.gz
/usr/share/man/man1/rrdcgi.1.gz
/usr/share/man/man1/rrdcreate.1.gz
/usr/share/man/man1/rrddump.1.gz
/usr/share/man/man1/rrdfetch.1.gz
/usr/share/man/man1/rrdfirst.1.gz
/usr/share/man/man1/rrdgraph.1.gz
/usr/share/man/man1/rrdgraph_data.1.gz
/usr/share/man/man1/rrdgraph_examples.1.gz
/usr/share/man/man1/rrdgraph_graph.1.gz
/usr/share/man/man1/rrdgraph_rpn.1.gz
/usr/share/man/man1/rrdinfo.1.gz
/usr/share/man/man1/rrdlast.1.gz
/usr/share/man/man1/rrdlastupdate.1.gz
/usr/share/man/man1/rrdresize.1.gz
/usr/share/man/man1/rrdrestore.1.gz
/usr/share/man/man1/rrdthreads.1.gz
/usr/share/man/man1/rrdtool.1.gz
/usr/share/man/man1/rrdtune.1.gz
/usr/share/man/man1/rrdtutorial.1.gz
/usr/share/man/man1/rrdupdate.1.gz
/usr/share/man/man1/rrdxport.1.gz
/usr/share/rrdtool
6.查看一下命令行工具
[root@node1 ~]# rrdtool -h
RRDtool 1.3.8 Copyright 1997-2009 by Tobias Oetiker <tobi@oetiker.ch>
Compiled Aug 21 2010 10:57:18
Usage: rrdtool [options]command command_options
Valid commands: create, update, updatev, graph, graphv, dump, restore,
last, lastupdate, first, info, fetch, tune,
resize, xport
RRDtool is distributed under the Terms of the GNU General
Public License Version 2. (www.gnu.org/copyleft/gpl.html)
For moreinformation
readthe RRD manpages
参数介绍
参数详解:
DS:DS 用于定义 Data Soure 。也就是用于存放结果的变量名。DS是用来申明数据源的,也可以理解为申明数据变量,也就是你要检测的端口对应的变量名,这个参数在画图的时候还要使用的。
DST:DST 就是DS的类型。有 COUNTER、GUAGE、DERIVE、ABSOLUTE、COMPUTE 5种。由于网卡流量属于计数器型,所以这里应该为 COUNTER 。
RRA:RRA 用于指定数据如何存放。我们可以把一个RRA 看成一个表,各保存不同 interval 的统计结果。RRA的作用就是定义更新的数据是如何记录的。比如我们每5分钟产生一条刷新的数据,那么一个小时就是12条。每天就是288条。这么庞大的数据量,一定不可能都存下来。肯定有一个合并(consolidate)数据的方式,那么这个就是RRA的作用了。
PDP:Primary Data Point 。正常情况下每个 interval RRDtool 都会收到一个值;RRDtool 在收到脚本给来的值后会计算出另外一个值(例如平均值),这个 值就是 PDP ;这个值代表的一般是“xxx/秒”的含义。注意,该值不一定等于RRDtool 收到的那个值。除非是GAUGE ,可以看下面的例子就知道了
CF:CF 就是 Consolidation Function 的缩写。也就是合并(统计)功能。有 AVERAGE、MAX、MIN、LAST 四种分别表示对多个PDP 进行取平均、取最大值、取最小值、取当前值四种类型。具体作用等到 update 操作时再说。
CDP:Consolidation Data Point 。RRDtool 使用多个 PDP 合并为(计算出)一个 CDP。也就是执行上面 的CF 操作后的结果。这个值就是存入 RRA的数据,绘图时使用的也是这些数据
更新日志
RRDtool 1.7.2 2019-05-27
Bug修复
*更新了Makefile,以将所有需要的文件正确地包含到发行版tar中
*清理了编译器警告<wolfgangst?ggl>
*在MinGW环境中改进的编译<wolfgangst?ggl>
*使用rrdcached 修复不存在的RRD文件上的segfault
*修复rrdtool xport 的边界处理,文档编制和检查
*修复了gprint中json / xml 的%s /%S单位自动缩放
*优化的PDP计算
∨ 展开