简述:Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,由RRDTool工具处理数据,并生成相应的的图形显示,以Web方式直观的提供给客户端。如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
环境:CentOS 6.5 x64
安装基础环境配置
PHP程序需要依赖Apache来运行,因此需要安装如下依赖
yum install php php-common php-cli php php-gd httpd mysql mysql-server mysql-connector-odbc pcre pcre-devel
安装依赖
rpm -ivh http://mirrors.sohu.com/centos/5/os/x86_64/CentOS/zlib-devel-1.2.3-3.x86_64.rpm rpm -ivh http://mirrors.sohu.com/centos/5/os/x86_64/CentOS/freetype-devel-2.2.1-28.el5_5.1.x86_64.rpm rpm -ivh http://mirrors.sohu.com/centos/5/os/x86_64/CentOS/libart_lgpl-devel-2.3.17-4.x86_64.rpm rpm -ivh http://mirrors.sohu.com/centos/5/os/x86_64/CentOS/libpng-devel-1.2.10-7.1.el5_5.3.x86_64.rpm
如果上述安装失败,可能需要安装以下库依赖
yum install zlib freetype libart_lgpl libpng
安装rrdtools
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依赖
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
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
同样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
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
pcre是perl 兼容的正规表达式库,在使用正则匹配时会很用。不安装的话,ganglia安装时会报错:libpcre not found, specify --with-libpcre=no to build without PCRE support。
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
调整lib库的位置:
vim /etc/ld.so.conf.d/libpcre.conf,添加:/usr/local/lib64,然后/sbin/ldconfig -v
安装ganglia
现在才是安装ganglia的开始, 下载ganglia-3.2.0,解压,安装
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
服务端配置
创建rrdtool数据目录,看$ganglia-3.2.0/web/conf.php里面的gmetad_root变量,并根据apache的运行用户创建权限,例如apache运行于apache用户上,如果没有对apache进行权限更改,则会出现There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Connection refused的错,只有service gmetad status显示状态正常,service gmetad start、stop正常时,ganglia才算启动成功 。
mkdir -p /var/lib/ganglia/rrds mkdir -p /var/lib/ganglia/dwoo chown -R apache:apache /var/lib/ganglia
配置一个数据源,修改/etc/ganglia/gmetad.conf文件,同时将运行用户设置为rrdtool的目录权限用户,例如apache用户
data_source "suc" 192.168.1.3 注意:这里的192.168.1.3是被监控端的iP地址。 setuid_username "apache"
其中suc是数据源的名称,客户端分组会依赖此名称,后面会提到。 添加自启动脚本
/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
启动gmetad服务
service gmetad start
报这样错误:
error
while
loading shared libraries: libpcre.so.
1
:
cannot open shared object file: No such file or directory
处理方法:ln -s /usr/local/lib/libpcre.so.1 /lib64
在启动ganglia服务
service gmetad start
看见Starting GANGLIA gmetad: [ OK ]就代表运行正常了。
服务端的WEB配置
安装web程序,这里假定apache的root路径在/var/www/html下面,具体路径可查看/etc/httpd/conf/httpd.conf文件中的DocumentRoot配置。
mkdir /var/www/html/ganglia cp -a -f /usr/src/ganglia-3.2.0/web/* /var/www/html/ganglia
禁用SELinux setenforce 0
修改rrdtool的路径,文件/var/www/html/ganglia/conf.php中的RRDTOOL,如果不对此配置进行修改,则可能导致访问ganglia时,页面没有图片出现。
define("RRDTOOL", "/usr/local/rrdtool/bin/rrdtool");
重启httpd服务器即可看到效果 service httpd restart
客户端的配置
客户端也需要安装expat依赖,apr和apr-util,confuse相关软件,和服务器端一样进行安装,这里不再进行操作。
安装ganglia客户端
现在才是安装ganglia的开始, 下载ganglia-3.2.0,解压,安装
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
处理方法:ln -s /usr/local/lib/libpcre.so.1 /lib64
对于生成的默认配置文件需要做适当的修改.
cluster { name="suc" owner="apache" latlong="unspecified" url="unspecified" }
其中name是将要在服务端进行的分组,是服务端的数据源。接下来开启服务
service gmond start
看见Starting GANGLIA gmetad: [ OK ]代表启动成功。如果有失败,可以讲gmond.conf中的debug有0改为100,看更多的日志,然后进行排查。
globals { daemonize = yes setuid = yes user = nobody debug_level = 100 }
非本机客户端配置,需要和服务端一样安装进行配置,运行,非常麻烦,这里使用本机安装好的文件进行安装。 使用下面的脚本进行安装deploy-ganglia.sh
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/
实际上就是将本机安装好(编译好)的动态链接库拷贝到其它机器上,使用如下命令拷贝即可
sh deploy-ganglia.sh 10.1.11.2 这里的10.1.11.2是客户端计算机ip地址
http://my.oschina.net/vieky/blog?catalog=278549
http://blog.hackroad.com/operations-engineer/运维监控/8098.html
http://ixdba.blog.51cto.com/2895551/1401556
http://my.oschina.net/emptytimespace/blog/112529
http://www.ibm.com/developerworks/cn/linux/l-ganglia-nagios-2/