早就知道Linux上面安装软件比较复杂,今天算是彻底的体会了一把。
大家知道,Ganglia是一个分布式的监控工具,用来对Grid和Cluster上面的节点进行监控,利用它提供的web界面可以看到每个节点状态,并且可以输出图形化的表示。本来打算装一个体验一下,谁知道安装过程就让我“爽”的死去活来。
个人觉得Linux上安装程序之所以复杂(相对于windows的傻瓜式),一方面因为很多软件包之间有很强的依赖性,而Linux程序一般不会把这些dependency的包给打在安装包内。这就造成了可能你会遇到不断发现有依赖包没装的情况。另一方面就是网络上关于Linux上的一些大家常用的程序的安装文档大多有或多或少的问题。我想这个可能和大家在安装过程中遇到的问题不同,按照自己的实际安装场景去写得文档,所以各种版本的都有,而且不一定适用于他人。
在这里,我简单写一下自己安装配置Ganglia的过程,以及当中遇到的问题。抛砖引玉,希望可以有对后来人有所帮助。
我是在RedHat EL 5 上安装的。遇到的第一个问题就是SELinux。由于RHEL 5默认打开了SELinux配置,所以需要把它给禁止掉,否则会有问题哦。通过修改/etc/sysconfig/selinux,将SELINUX改为disabled,然后reboot系统即可。下面进入正题:
1:需要安装libconfuse模块,这里需要安装两个rpm包,分别是libconfuse-2.5-4.el5.i386.rpm和libconfuse-devel-2.5-4.el5.i386.rpm,对应于RHEL 5。
直接用rpm -ivh libconfuse-2.5-4.el5.i386.rpm即可。
2:接着安装rrdtool(Round Robin Database Tool),rrdtool是一个数据库软件。它是一个主要用于进行监控的数据库,与其它的数据库相比,具有以下三个特点:
cd rrdtool-*
./configure --prefix=/usr #rrdtool的默认安装路径是/usr/local/rrdtool-<VERSION>,使用/usr会减少很多麻烦,头文件会放到/usr/include,库文件放到/usr/lib
make;
Ganglia包括如下程序,他们之间通过XML格式传递监控数据,达到监控效果。
Gmetad 这个程序负责收集各个cluster的数据,并更新到rrd数据库中。
Gmond 收集本机的监控数据,发送到其他机器上。收集其他机器的监控数据,供Gmetad读取。默认监听端口8649
web front-end 一个基于web的监控界面,需要和Gmetad安装在同一个节点上,从Gmetad取数据,并且读取rrd数据库,生成图片,显示出来。
我用的是ganglia 3.1.7,过程如下:
tar zxvf ganglia-3.1.7.tar.gz
cd ganglia-3.1.7
./configure --with-gmetad --sysconfdir=/etc/ganglia #gmetad不是默认安装的,安装时需要加参数 --with-gmetad.同时ganglia依赖于rrdtool库机头文件,默认的路径是/usr/include/rrd.h和 /usr/lib/librrd.a。如果rrdtool安装在其他目录下,需要指定它们的路径。这里看到安装rrdtool的时候--prefix=/usr的好处了吧:)
make
make install
到这里如果没有问题,那么Ganglia安装完成!看起来是不是很容易呢哈哈。在装之前我也这么想,但是实际上。。。。现实是残酷的啊。下面我说下我遇到的问题,希望对你有所帮助。
1)首先是在./configure --with-gmetad的时候,提示找不到apr-1-config。
解决方法是安装apr-devel-1.2.7-11.i386.rpm(我的系统上)
2)网上几乎所有文章都写的是./configure --with-gmetad, 实际上在新版本的Ganglia里,必须加上sysconfdir参数,否则无法编译,其实它默认的参数就是--sysconfdir=/etc/ganglia,可是一定要显示写出来-_-
这些基本就是我安装Ganglia的过程啦。关于如何配置Ganglia,下回再叙哈哈!
后者类似。