RRDtool监控绘图调研
调研背景
为满足公司对现网多台服务器进行性能监控,并输出性能监控图,特对几款监控软件进行调研。目前大多数监控软件都要求在服务器上安装相应的监控软件采集数据再进行监控图输出,而公司考虑到业务的稳定性,不能在服务器上安装监控软件。所以在此我重点对RRDtool这款监控绘图工具进行调研,利用shell脚本在服务器上进行监控数据采集,集中传输到另外一个专用于处理监控数据并输出监控图的服务器上,利用rrdtool进行绘图,满足公司对性能监控的要求。
工具介绍
RRDtool 代表 “Round Robin Database tool” ,作者同时也是 MRTG 软件的发明人。许多监控软件如MRTG、Cacti等都是调用RRDtool来进行绘图的。
官方站点位于http://oss.oetiker.ch/rrdtool/ 。 所谓的“Round Robin” 其实是一种存储数据的方式,使用固定大小的空间来存储数据,并有一个指针指向最新的数据的位置。我们可以把用于存储数据的数据库的空间看成一个圆,上面有很多刻度。这些刻度所在的位置就代表用于存储数据的地方。所谓指针,可以认为是从圆心指向这些刻度的一条直线。指针会随着数据的读写自动移动。要注意的是,这个圆没有起点和终点,所以指针可以一直移动,而不用担心到达终点后就无法前进的问题。在一段时间后,当所有的空间都存满了数据,就又从头开始存放。这样整个存储空间的大小就是一个固定的数值。RRDtool 就是使用类似的方式来存放数据的工具。
RRDtool的特点:
· 首先 RRDtool 存储数据,扮演了一个后台工具的角色。但同时 RRDtool 又允许创建图表,这使得RRDtool看起来又像是前端工具。其他的数据库只能存储数据,不能创建图表。
· RRDtool 的每个 rrd 文件的大小是固定的,而普通的数据库文件的大小是随着时间而增加的。
· 其他数据库只是被动的接受数据, RRDtool 可以对收到的数据进行计算,例如前后两个数据的变化程度(rate of change),并存储该结果。
· RRDtool 要求定时获取数据,其他数据库则没有该要求。如果在一个时间间隔内(heartbeat)没有收到值,则会用 UNKN (unknow)代替,其他数据库则不会这样。
工具安装
1.下载RRDtool
cd
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.8.tar.gz
2.安装RRDtool
#请确保已安装了相关的依赖包:zlib libxml2 libxml2-devel glib2 glib2-devel libpng freetype libart_lgpl pango-devel perl-CPAN
#执行以下命令:
BUILD_DIR=/tmp/rrdbuild
INSTALL_DIR=/usr/local/rrdtool-1.4.8
mkdir -p $BUILD_DIR
mv rrdtool-1.4.8.tar.gz $ BUILD_DIR
cd $BUILD_DIR
tar zxvf rrdtool-1.4.8.tar.gz
cd rrdtool-1.4.8
./configure --prefix=$INSTALL_DIR && make && make install
#安装完成后测试,若输出下图表示安装成功:
/usr/local/rrdtool-1.4.8/bin/rrdtool
相关阅读: