> CentOS > CentOS教程 >

Centos6.x下安装Ganglia3.6.0及配置

最近安装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,依赖包的安装

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. rpm -q gcc glibc glibc-common rrdtool rrdtool-devel apr  apr-devel expat expat-devel  pcre pcre-devel dejavu-lgc-sans-mono-fonts dejavu-sans-mono-fonts  
  2. gcc-4.4.7-3.el6.x86_64  

缺少哪一个,直接采用yum安装

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. yum -y install **  

2,confuse安装

下载地址:confuse-2.7  http://www.nongnu.org/confuse/,可以自己选择版本

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. wget <a target=_blank href="http://www.nongnu.org/confuse/" rel="nofollow">http://www.nongnu.org/confuse/</a>  
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. tar -zxf confuse-2.7.tar.gz  
  2. cd confuse-2.7  
  3. ./configure CFLAGS=-fPIC --disable-nls  
  4. make && make install  

3,Python安装

至于为什么要安装这个,我也不懂。。

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <pre class="plain" name="code" snippet_file_name="blog_20140522_6_1186095" code_snippet_id="357828">wget <a target=_blank href="http://www.python.org/" rel="nofollow">http://www.python.org/</a>  
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. tar -jxf Python-2.7.3.tar.bz2  
  2. ./configure  --prefix=/usr/local  --enable-shared   
  3. make && make install  

配置共享库

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. vi /etc/ld.so.conf  
  2.   
  3. -- 增加如下内容  
  4. /usr/local/lib  

启用配置

ldconfig

检查是否生效

ldconfig -v |grep "libpython2.7.so"

4,客户端Gmond安装

因为客户端只需要安装Gmond,所以比较简单。

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. tar -zxf ganglia-3.6.0.tar.gz  
  2. # cd ganglia-3.6.0  
  3. # ./configure --prefix=/usr/local/ganglia   

安装好后,声称Gmond配置文件,并修改:

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <pre class="html" name="code" snippet_file_name="blog_20140522_10_7379893" code_snippet_id="357828"><span style="font-family:Tahoma, sans-serif;font-size: 9pt;">gmond --default_config > /usr/local/ganglia/etc/gmond.conf</span>  
[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. vi /usr/local/ganglia/etc/gmond.conf  


这个name是集群的名字,需要与服务器端的对应。

我们可以把Gmond添加到启动脚本

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <pre class="plain" name="code" snippet_file_name="blog_20140522_12_1556589" code_snippet_id="357828">cp -f ganglia-3.6.0/gmond/gmond.init  /etc/init.d/gmond  
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <span style="line-height: 23px;">vi /etc/init.d/gmond  </span>  
[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. GMOND=/usr/<code class="bash functions">local</code><code class="bash plain">/ganglia/sbin/gmond</code>  

这样我们就配置好了,启动Gmond

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. service gmond start  

我们可以通过telnet检查

5,服务器端安装配置

前面操作和客户端一样,再编译时,由于我们这里需要安装gmetad,因此需要加上--with-gmetad

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. ./configure --prefix=/usr/local/ganglia --with-gmetad --enable-gexec --with-python=/usr/local  

修改配置文件

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. vi /usr/local/ganglia/etc/gmetad.conf  

这是我们需要采集的数据源,第一个是集群名称,第二个是集群内主机的ip。

rrd_rootdir是我们收集到数据存储的位置。我们看到,他这里是有默认的存储路径的,/var/lib/ganglia/rrds。我们可以自定义这个存储位置。我是没有,直接利用这个位置。所以需要创建相应的目录

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. mkdir /var/lib/ganglia/rrds  

我们需要更改这个目录的权限,否则在Gweb时采集不了数据,界面就无法显示

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. chown -R nobody:nobody /var/lib/ganglia/rrds  

OK,Gmetad配置完成

6,Gweb安装配置

这部分是我认为最难配的,在这一步出了好多错误。。。

其实Gweb是一个前段程序,依赖于apache和php。这两个怎么配置详见该帖:

我们认为apache和php已经配置好了。下面开始搞Gweb。

首先下载,解压

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. tar -zxf ganglia-web-3.5.10.tar.gz   

拷贝ganglia-web-3.5.10这个目录,具体位置可以自己设定,我考到了这个位置

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. /var/lib/ganglia/ganglia-web-3.5.10  

进入这个目录,开始修改它的配置文件

他有个默认配置文件conf_defalut.php,程序首先寻找conf.php,如果没有这个文件,则会读取conf_default.php。

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. <pre class="html" name="code" snippet_file_name="blog_20140522_22_5404099" code_snippet_id="357828">cp conf_default.php conf.php  
[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. vi conf.php  

看下面几个参数就可以了

下面这个参数指定了gweb的主目录,我认为,在前台显示界面时,可以会到这里读网页数据

下面rrds是gweb读取gmetad存储的rrd数据的位置。gmetad_root还没看懂。。。。反正这样是没问题的。

下面是存储php编译的templates的,我们需要在相应位置新建这两个文件,同时也要修改他们的权限

这个是找rrdtool目录的路径,由于我们是yum安装的,因此这里不用修改。

OK,终于搞定了。。。

7,界面显示


8,注意事项

在安装过程中,难免会出现一些错误,例如提示缺少某些包,一般通过Yum或者源码安装的方式就好了。此外,可能会出现前台界面无法显示的现象,导致这个的原因很可能是seLinux没有关闭,关闭方法:cd /usr/local      setenforce 0











 

[javascript] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1.    
(责任编辑:IT)