公司服务器越来越多,安装ganglia统一监控服务器。
Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
1.下载相关软件包
rrdtool expat apr apr-util confuse ganglia ganglia-web cgilib
rrdtool 下载1.2版本,不然会出现中文乱码问题
2.安装相关依赖包
安装rrdtool
yum -y install perl-devel
yum -y install perl-CPAN
yum install zlib freetype libart_lgpl libpng
tar -zxvf cgilib-0.5.tar.gz
cd cgilib-0.5
make
cp libcgi.a /usr/local/lib
cp cgi.h /usr/include
yum -y install libart_lgpl-devel
yum -y install pango-devel* cairo-devel*
http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz tar zxvf rrdtool-1.2.27.tar cd rrdtool-1.2.27 ./configure --prefix=/usr/local/rrdtool make make install
安装expat
http://downloads.sourceforge.net/project/expat/expat/2.0.1/expat-2.0.1.tar.gz?use_mirror=cdnetworks-kr-2 tar zxvf expat-2.0.1.tar.gz ./configure --prefix=/usr/local/expat make make install
对于64位操作系统,需要手动的拷贝下动态链接库到lib64下
mkdir /usr/local/expat/lib64 cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/
安装apr以及apr-util
http://labs.renren.com/apache-mirror/apr/apr-1.4.5.tar.gz tar xvjf apr-1.3.2.tar.bz2 ./configure --prefix=/usr/local/apr make make install
http://labs.renren.com/apache-mirror/apr/apr-util-1.3.12.tar.gz tar xvjf apr-util-1.3.2.tar.bz2 ./configure --with-apr=/usr/local/apr --with-expat=/usr/local/expat make make install
同样64位机器需要拷贝动态链接库
/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
http://download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz tar zxvf confuse-2.6.tar.gz ./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/
不同的内核版本会出现不同的问题
[root@localhost ganglia]# uname -r
2.6.32-279.el6.x86_64
yum -y install libconfuse libconfuse-devel.x86_64
3.安装ganglia
./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
或者
./configure --prefix=/usr/local/ganglia --with-librrd=/usr/local/rrdtool --with-libapr=/usr/local/apr --with-libexpat=/usr/local/expat \ --with-libconfuse=/usr/local --with-gmetad --enable-gexec --enable-status --sysconfdir=/etc/ganglia make make install
4.服务端配置
mkdir -p /var/lib/ganglia/rrds mkdir -p /var/lib/ganglia/dwoo
配置一个数据源,修改/etc/ganglia/gmetad.conf文件,同时将运行用户设置为rrdtool的目录权限用户,例如apache用户
data_source "mycluster" 42.120.19.23(监控的客户端ip)
data_source是最重要的参量,在GMOND的Cluser name配置必须与data_source的相同,这个参量被设置为群的名字,被监测以便能监测那群状态。如果有二个或更多监测对象,当有一对象不能被监测,将读取data_source 配置的下一个对象
其中suc是数据源的名称,客户端分组会依赖此名称,后面会提到。 添加自启动脚本
/bin/cp -f gmetad/gmetad.init /etc/init.d/gmetad /bin/cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad chkconfig --add gmetad
启动gmetad服务
service gmetad start
看见Starting GANGLIA gmetad: [ OK ]就代表运行正常了。
5.客户端配置安装服务端的配置安装一次
/bin/cp -f gmond/gmond.init /etc/init.d/gmond /bin/cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond chkconfig --add gmond gmond --default_config > /etc/ganglia/gmond.conf
对于生成的默认配置文件需要做适当的修改
cluster {
name="suc"
owner="unspecified"
latlong="unspecified"
url="unspecified"
}
其中name是将要在服务端进行的分组,是服务端的数据源。接下来开启服务
service gmond start5.服务端web配置
cp conf_default.php conf.php
vim conf.php
$conf['gweb_confdir'] = "/data_disk/webdata/ganglia";跟目录
define("RRDTOOL", "/usr/local/rrdtool/bin/rrdtool");
$conf['rrdtool'] = "/usr/local/rrdtool/bin/rrdtool";
建立相应的存储目录即可
6.常用一些错误解决
err1:
# service gmetad status
gmetad 已死,但是 subsys 被锁
err2:
There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Connection refused
解决代码:
# mkdir -p /var/lib/ganglia/rrds
# chown nobody:nobody /var/lib/ganglia/rrds
还要注意目录/var/www/html/ganglia/下的conf.php文件
正确指定你安装rrdtool的路径,默认如下
define("RRDTOOL", "/usr/bin/rrdtool");
err3
[root@23 ganglia]# service gmond status
gmond dead but subsys locked
tail -f /var/log/messages
video /usr/sbin/gmond[13481]: exiting. setuid 'nobody' error