最近安装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,依赖包的安装
-
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
-
gcc-4.4.7-3.el6.x86_64
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
gcc-4.4.7-3.el6.x86_64
缺少哪一个,直接采用yum安装
yum -y install **
2,confuse安装
下载地址:confuse-2.7 http://www.nongnu.org/confuse/,可以自己选择版本
-
wget <a target=_blank href="http://www.nongnu.org/confuse/" rel="nofollow">http://www.nongnu.org/confuse/</a>
wget <a target=_blank href="http://www.nongnu.org/confuse/" rel="nofollow">http://www.nongnu.org/confuse/</a>
-
tar -zxf confuse-2.7.tar.gz
-
cd confuse-2.7
-
./configure CFLAGS=-fPIC --disable-nls
-
make && make install
tar -zxf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls
make && make install
3,Python安装
至于为什么要安装这个,我也不懂。。
-
<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>
<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>
-
tar -jxf Python-2.7.3.tar.bz2
-
./configure --prefix=/usr/local --enable-shared
-
make && make install
tar -jxf Python-2.7.3.tar.bz2
./configure --prefix=/usr/local --enable-shared
make && make install
配置共享库
-
vi /etc/ld.so.conf
-
-
-- 增加如下内容
-
/usr/local/lib
vi /etc/ld.so.conf
-- 增加如下内容
/usr/local/lib
启用配置
ldconfig
检查是否生效
ldconfig -v |grep "libpython2.7.so"
4,客户端Gmond安装
因为客户端只需要安装Gmond,所以比较简单。
-
tar -zxf ganglia-3.6.0.tar.gz
-
# cd ganglia-3.6.0
-
# ./configure --prefix=/usr/local/ganglia
tar -zxf ganglia-3.6.0.tar.gz
# cd ganglia-3.6.0
# ./configure --prefix=/usr/local/ganglia
安装好后,声称Gmond配置文件,并修改:
-
<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>
<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>
-
vi /usr/local/ganglia/etc/gmond.conf
vi /usr/local/ganglia/etc/gmond.conf
这个name是集群的名字,需要与服务器端的对应。
我们可以把Gmond添加到启动脚本
-
<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
<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
-
<span style="line-height: 23px;">vi /etc/init.d/gmond </span>
<span style="line-height: 23px;">vi /etc/init.d/gmond </span>
-
GMOND=/usr/<code class="bash functions">local</code><code class="bash plain">/ganglia/sbin/gmond</code>
GMOND=/usr/<code class="bash functions">local</code><code class="bash plain">/ganglia/sbin/gmond</code>
这样我们就配置好了,启动Gmond
service gmond start
我们可以通过telnet检查
5,服务器端安装配置
前面操作和客户端一样,再编译时,由于我们这里需要安装gmetad,因此需要加上--with-gmetad
-
./configure --prefix=/usr/local/ganglia --with-gmetad --enable-gexec --with-python=/usr/local
./configure --prefix=/usr/local/ganglia --with-gmetad --enable-gexec --with-python=/usr/local
修改配置文件
-
vi /usr/local/ganglia/etc/gmetad.conf
vi /usr/local/ganglia/etc/gmetad.conf
这是我们需要采集的数据源,第一个是集群名称,第二个是集群内主机的ip。
rrd_rootdir是我们收集到数据存储的位置。我们看到,他这里是有默认的存储路径的,/var/lib/ganglia/rrds。我们可以自定义这个存储位置。我是没有,直接利用这个位置。所以需要创建相应的目录
-
mkdir /var/lib/ganglia/rrds
mkdir /var/lib/ganglia/rrds
我们需要更改这个目录的权限,否则在Gweb时采集不了数据,界面就无法显示
-
chown -R nobody:nobody /var/lib/ganglia/rrds
chown -R nobody:nobody /var/lib/ganglia/rrds
OK,Gmetad配置完成
6,Gweb安装配置
这部分是我认为最难配的,在这一步出了好多错误。。。
其实Gweb是一个前段程序,依赖于apache和php。这两个怎么配置详见该帖:
我们认为apache和php已经配置好了。下面开始搞Gweb。
首先下载,解压
-
tar -zxf ganglia-web-3.5.10.tar.gz
tar -zxf ganglia-web-3.5.10.tar.gz
拷贝ganglia-web-3.5.10这个目录,具体位置可以自己设定,我考到了这个位置
-
/var/lib/ganglia/ganglia-web-3.5.10
/var/lib/ganglia/ganglia-web-3.5.10
进入这个目录,开始修改它的配置文件
他有个默认配置文件conf_defalut.php,程序首先寻找conf.php,如果没有这个文件,则会读取conf_default.php。
-
<pre class="html" name="code" snippet_file_name="blog_20140522_22_5404099" code_snippet_id="357828">cp conf_default.php conf.php
<pre class="html" name="code" snippet_file_name="blog_20140522_22_5404099" code_snippet_id="357828">cp conf_default.php conf.php
vi conf.php
看下面几个参数就可以了
下面这个参数指定了gweb的主目录,我认为,在前台显示界面时,可以会到这里读网页数据
下面rrds是gweb读取gmetad存储的rrd数据的位置。gmetad_root还没看懂。。。。反正这样是没问题的。
下面是存储php编译的templates的,我们需要在相应位置新建这两个文件,同时也要修改他们的权限
这个是找rrdtool目录的路径,由于我们是yum安装的,因此这里不用修改。
OK,终于搞定了。。。
7,界面显示
8,注意事项
在安装过程中,难免会出现一些错误,例如提示缺少某些包,一般通过Yum或者源码安装的方式就好了。此外,可能会出现前台界面无法显示的现象,导致这个的原因很可能是seLinux没有关闭,关闭方法:cd /usr/local setenforce 0
(责任编辑:IT) |