最近安装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/