RRDTOOL安装指南

介绍

RRDTOOL 是一个基于时间片的日志和绘图工具,有了她你可以轻松的绘制各种基于时间的可视化数据,用于做统计和监控非常合适。著名的开源监控软件Ganglia 就是采用的RRDTOOL。

为什么要特别提到RRDTOOL的安装,因为我在安装RRDTOOL的过程中遇到了各种问题和困难。先说明一下我安装的环境是CentOS5.7。

先说一下教训,尽量使用root权限或者具有sudo权限的账号安装RRDTOOL。
笔者一开始尝试着在一台不具备root权限的机器上安装,首先遇到的问题就是系统无法正确的识别到共享包,需要设置PKG_CONFIG_PATH和LD_LIBRARAY_PATH但是这还没有完,最后libX11-devel的安装彻底让我灰心,其依赖然我彻底失去了信心。但也许有更好的在非root权限账号安装的办法,希望大家分享;-)

安装步骤:

1)下载软件包:

http://oss.oetiker.ch/rrdtool/pub/?M=D 下载最新的RRD版本,并且在http://oss.oetiker.ch/rrdtool/pub/libs/ 下载相应的依赖包,也许是作者本身意识到其依赖之多,所以在其下载站就提供了对应依赖的下载。
我在这次安装中用到的包如下:

  • cairo-1.6.4.tar.gz
  • fontconfig-2.10.1.tar.gz
  • freetype-2.3.5.tar.gz
  • glib-2.15.4.tar.gz
  • libpng-1.2.18.tar.gz
  • pango-1.21.1.tar.bz2
  • pixman-0.10.0.tar.gz
  • rrdtool-1.4.7.tar.gz

注意:fontconfig-2.10.1.tar.gz在如上的地址不能下载,RRD提供的fontconfig-2.4.2在我的机器上安装失败,换成2.10.1后没有问题。

2)安装顺序

出了上面说到的包以外,系统还需要安装libX11-devel,使用yum install libX11-devel进行安装。

然后一次安装如下包

  • glib
  • libpng
  • pixman
  • freetype
  • fontconfig
  • cairo
  • pango
  • rrdtool

这里特别提到rrdtool对glib版本有要求,我安装的机器上的版本过低,但是我又不想直接替换掉原来的glib版本,于是我将新版本的glib安装到了另一位置/xxx,安装完成后需要将PKG_CONFIG_PATH设置为/xxx/lib/pkgconfig,将LD_LIBRARY_PATH设置为/xxx/lib

到此运行RRDTOOL的例子发现报如下警告:

(process:565187): Pango-WARNING **: failed to find shape engine, expect ugly output. engine-type='PangoRenderFc’, script='common’
(process:565187): Pango-WARNING **: failed to find shape engine, expect ugly output. engine-type='PangoRenderFc’, script='latin’

这时候生成出来的图形文字都是方块字,原因是字体没有安装。使用yum install urw-fonts
安装字体后问题解决,到此安装完成。

3)python库安装

尝试编译RRDTool自带的python binding使用无法正确编译,也没有找到解决办法,始终报如下的错误
ImportError: librrd.so.4: cannot open shared object file: No such file or directory
最后决定尝试其他的python库,在这里推荐PyRRD(http://code.google.com/p/pyrrd/)它是一个OO的库使用起来更简单,也没有自带的python库的编译问题。到这里安装的问题才得以解决,have fun with RRD!!!

Meta

Published: Aug. 26, 2012 Author: ivan Comments:   Word Count: 49
Bookmark and Share

Next: Hash Bang的一点点思考

Previous: Lucene的简单应用

Tags

ganglia monitor python rrdtool

Article Links

  1. RRDTOOL
  2. Ganglia Monitoring System
  3. Index of /rrdtool/pub
  4. Index of /rrdtool/pub/libs
Comments powered by Disqus