最近安装Ganglia,由于之前Linux基础基本为0,因此费了很大的周折。最后在失败了好多次之后终于看到了梦寐以求的web界面。下面总结下这几天来的工作。
ganglia是一个监控软件,他包含三部分:Gmond,Gmetad和Gweb。在需要监控的主机上安装Gmond,他会采集当前主机上的一些信息;Gmetad部署在服务器端,它轮训主机,收集Gmond采集的主机信息,然后存在在rrdtool数据库中;Gweb是一个前台显示的界面,他读取Gmetad保存的rrd文件,显示在web界面上。
部署规划:
主机 | IP |
Leo | 192.168.137.101(客户端) |
Sherry | 192.168.137.66(服务器端) |
安装步骤:
1,依赖包的安装
yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel pkgconfig
如果安装过程中,没有出错,则可以正常进行下一步,如果出现错误,可能会影响后面的安装过程。
安装rrdtools
1
2
3
4
5
6
7
8
|
cd /usr/src/ wget http: //oss .oetiker.ch /rrdtool/pub/rrdtool-1 .4.8. tar .gz tar zxvf rrdtool-1.4.8. tar .gz cd rrdtool-1.4.8 . /configure --prefix= /usr/local/rrdtool make && make install ln -s /usr/local/rrdtool/include/rrd .h /usr/include/rrd .h ln -s /usr/local/rrdtool/lib/librrd .a /usr/lib/librrd .a |
/usr/local/rrdtool/bin/rrdtool
安装expat依赖
1
2
3
4
5
6
7
8
9
|
wget http: //downloads.sourceforge.net/project/expat/expat/2.0.1/expat-2.0.1.tar.gz tar zxvf expat- 2.0 . 1 .tar.gz cd expat- 2.0 . 1 ./configure --prefix=/usr/local/expat make && make install 对于 64 位操作系统,需要手动的拷贝下动态链接库到lib64下 cd /usr/local/expat/ mkdir /usr/local/expat/lib64 cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/ |
安装apr以及apr-util
1
2
3
4
5
6
7
8
9
10
11
|
wget https: //archive .apache.org /dist/apr/apr-1 .5.0. tar .gz tar zxvf apr-1.5.0. tar .gz cd apr-1.5.0 . /configure --prefix= /usr/local/apr make && make install cd .. wget https: //archive .apache.org /dist/apr/apr-util-1 .5.1. tar .gz tar xf apr-util-1.5.1. tar .gz cd apr-util-1.5.1 . /configure --with-apr= /usr/local/apr --with-expat= /usr/local/expat make && make install |
/bin/cp -f /usr/local/apr/include/apr-1/* /usr/local/apr/include/ mkdir -p /usr/local/apr/lib64 /bin/cp -a -f /usr/local/apr/lib/* /usr/local/apr/lib64/
安装confuse
1
2
3
4
5
|
wget http: //download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz tar xf confuse- 2.7 .tar.gz cd confuse- 2.7 ./configure CFLAGS=-fPIC --disable-nls --prefix=/usr/local/confuse make && make install |
mkdir -p /usr/local/confuse/lib64 /bin/cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/
安装pcre
1
2
3
4
5
6
|
cd /usr/src/ wget http: //ftp.exim.llorien.org/pcre/pcre-8.34.tar.gz tar zxvf pcre- 8.34 .tar.gz cd pcre- 8.34 ./configure make && make install |
安装ganglia
1
2
3
4
|
cd ganglia-3.2.0 . /configure --prefix= /usr/local/ganglia --with-librrd= /usr/local/rrdtool --with-libapr= /usr/local/apr --with-libexpat= /usr/local/expat \ --with-libconfuse= /usr/local/confuse --with-gmetad -- enable -gexec -- enable -status --sysconfdir= /etc/ganglia make && make install |
服务端配置
mkdir -p /var/lib/ganglia/rrds mkdir -p /var/lib/ganglia/dwoo chown -R apache:apache /var/lib/ganglia
data_source "suc" 192.168.1.3 注意:这里的192.168.1.3是被监控端的iP地址。 setuid_username "apache"
/bin/cp -f /usr/src/ganglia-3.6.0/gmetad/gmetad.init /etc/init.d/gmetad /bin/cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad chkconfig --add gmetad
service gmetad start
error
while
loading
shared libraries: libpcre.so.
1
:
cannot
open shared object file: No such file or directory
在启动ganglia服务
service gmetad start
服务端的WEB配置
mkdir /var/www/html/ganglia cp -a -f /usr/src/ganglia-3.2.0/web/* /var/www/html/ganglia
define("RRDTOOL", "/usr/local/rrdtool/bin/rrdtool");
客户端的配置
安装ganglia客户端
1
2
3
4
|
cd ganglia- 3.2 . 0 ./configure --prefix=/usr/local/ganglia -- with -libapr=/usr/local/apr -- with -libexpat=/usr/local/expat \ -- with -libconfuse=/usr/local/confuse --enable-gexec --enable-status make && make install |
/bin/cp -f /usr/src/ganglia-3.2.0/gmond/gmond.init /etc/init.d/gmond /bin/cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond chkconfig --add gmond /usr/src/ganglia-3.2.0/gmond/gmond --default_config > /etc/ganglia/gmond.conf
error
while
loading
shared libraries: libpcre.so.
1
:
cannot
open shared object file: No such file or directory
vi /etc/ganglia/gmond.conf
cluster { name="suc" owner="apache" latlong="unspecified" url="unspecified" }
service gmond start
globals { daemonize = yes setuid = yes user = nobody debug_level = 100 }
i=$1 scp /usr/sbin/gmond $i:/usr/sbin/gmond ssh $i mkdir -p /etc/ganglia/ ssh $i mkdir -p /usr/local/ganglia/lib64 ssh $i mkdir -p /usr/local/expat/lib scp /etc/ganglia/gmond.conf $i:/etc/ganglia/ scp /etc/init.d/gmond $i:/etc/init.d/ scp -r /usr/local/ganglia/lib64/* $i:/usr/local/ganglia/lib64/ scp /usr/local/expat/lib/libexpat.so.1 $i:/usr/local/expat/lib/libexpat.so.1 scp /usr/lib64/libapr-1.so.0 $i:/usr/lib64/