Ganglia安装搭建

Ganglia的安装部署

前言 1

一、Ganglia组件 1

二、安装依赖 2

三、安装expat依赖 2

四、安装confuse 3

五、安装ganglia 4

六、 服务端配置gmetad 节点 4

七、客户端配置(gmond节点) 6

八、服务端的WEB配置 8

九、测试安装是否成功 9

十、安装过程遇到的问题 12

下载apr失败 12

安装Ganglia失败 13

因端口冲突更改端口号为81 13

前言

Ganglia  UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点。每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程。它将从操作系统和指定主机中收集。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。

一、Ganglia组件

    Ganglia 监控套件包括三个主要部分:gmondgmetad,和网页接口,通常被称为ganglia-web

    Gmond :是一个守护进程,他运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息 如果他是一个发送者(mute=no)他会收集基本指标,比如系统负载(load_one,CPU利用率。他同时也会发送用户通过添加C/Python模块来自定义的指标。 如果他是一个接收者(deaf=no)他会聚合所有从别的主机上发来的指标,并把它们都保存在内存缓冲区中。

    Gmetad:也是一个守护进程,他定期检查gmonds,从那里拉取数据,并将他们的指标存储在RRD存储引擎中。他可以查询多个集群并聚合指标。他也被用于生成用户界面的web前端。

    Ganglia-web :顾名思义,他应该安装在有gmetad运行的机器上,以便读取RRD文件。 集群是主机和度量数据的逻辑分组,比如数据库服务器,网页服务器,生产,测试,QA等,他们都是完全分开的,你需要为每个集群运行单独的gmond实例。

    一般来说集群中每个节点需要一个接收的gmond,每个网站需要一个gmetad

二、安装依赖

    注:建议使用超级用户安装(你想监控的每台机器安装)

yum install –y gcc gcc-c++ libpng freetype zlib libdbi apr* libxml2-devel pkg-config glib pixman pango pango-devel freetye-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel pcre* rrdtool*

 

三、安装expat依赖

cd /root  

wget http://jaist.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz 

tar -xf expat-2.1.0.tar.gz && cd expat-2.1.0 && ./configure --prefix=/usr/local/expat && make && make install && cd ..

 

 

对于64位操作系统,需要手动的拷贝下动态链接库到lib64下

 cd /root

mkdir /usr/local/expat/lib64 && cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/

 

四、安装confuse

wget http://ftp.twaren.net/Unix/NonGNU//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 && cd ..

 

64bit机器需要拷贝动态链接库:mkdir -p /usr/local/confuse/lib64 && cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/  

 

五、安装ganglia

wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.6.0/ganglia-3.6.0.tar.gz

 

tar -xf ganglia-3.6.0.tar.gz && cd ganglia-3.6.0 && ./configure --with-gmetad --enable-gexec --with-libconfuse=/usr/local/confuse --with-libexpat=/usr/local/expat --prefix=/usr/local/ganglia --sysconfdir=/etc/ganglia && make && make install && cd ..  

 

 

 

(ps:到此为止都是你所要监控的每台机器需要安装的

六、服务端配置gmetad 节点

你想查看的机器安装,本次安装机器是sp-06)

创建rrdtool数据目录,看$ganglia-3.2.0/web/conf.php里面的gmetad_root变量,并根据apache的运行用户创建权限,例如apache运行于apache用户上 。

mkdir -p /var/lib/ganglia/rrds && mkdir -p /var/lib/ganglia/dwoo && chown -R root:root /var/lib/ganglia  

 

 配置一个数据源,修改/etc/ganglia/gmetad.conf文件,同时将运行用户设置为rrdtool的目录权限用户,例如apache用户

Vim /etc/ganglia/gmetad.conf

原有状态

 

更改后

data_source "tztd" sp-06:8649

setuid_username "root"

 说明:这里的 " tztd" 表示的是集群的名称,后面的内容是这个集群中所包含的主机信息,也就是要监控的主机ip

 

  添加自启动脚本

cp -f ganglia-3.6.0/gmetad/gmetad.init /etc/init.d/gmetad && cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad && chkconfig --add gmetad  

 

启动gmetad服务

service gmetad start  

看见Starting GANGLIA gmetad: [ OK ]就代表运行正常了。

七、客户端配置(gmond节点)

    本机安装如下:

cp -f ganglia-3.6.0/gmond/gmond.init /etc/init.d/gmond && cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond && chkconfig --add gmond && gmond --default_config > /etc/ganglia/gmond.conf

 

有些时候回再次询问秩序写y或者yes

 

对于生成的默认配置文件/etc/ganglia/gmond.conf需要做适当的修改

Vim /etc/ganglia/gmond.conf

globals {  

   user = root /*运行Ganglia的用户*/  

   host_dmax = 120 /*secs */  

   send_metadata_interval = 15 /*发送数据的时间间隔*/  

 } 

 

更改前

 

cluster {  

   name = "tztd" /*集群名称*/  

   owner = "hadoop" /*运行Ganglia的用户*/  

 } 

udp_send_channel {  

      # mcast_join = 239.2.11.71 /*注释掉组播*/  

   host = sp-06*发送给安装gmetad的机器*/  

 }

 

udp_recv_channel { #接受UDP包配置  

  # mcast_join = 239.2.11.71  

  # bind = 239.2.11.71  

}

 

其中name是将要在服务端进行的分组,是服务端的数据源。接下来开启服务

service gmond start 

看见Starting GANGLIA gmetad: [ OK ]代表启动成功。如果有失败,可以讲gmond.conf中的debug0改为100,看更多的日志,然后进行排查。

 

(ps/etc/ganglia/gmond.conf各个文件都相同的情况下本人决定使用scp 覆盖达到简便不出错的目的

scp /etc/ganglia/gmond.conf sp-05:/etc/ganglia/

因为在root用户下没有做免密码登录所以每复制一次文件都需要输入密码,还好密码不长不然真是个悲伤的故事

 

八、服务端的WEB配置

PHP程序需要依赖Apache来运行,因此需要安装如下依赖

yum -y install php httpd  

service httpd start //启动httpd 服务 

九、测试安装是否成功

 vi /var/www/html/index.php  

   输入:  

   <?php phpinfo();?> 

保存,然后浏览器 localhost/index.php 

正常是看到php的信息。

此处端口号为81 (必须写不然默认80行不通)原因请见下边《因端口冲突更改端口号为81

 

cd /root  

wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia-web/3.5.10/ganglia-web-3.5.10.tar.g 

tar -xf ganglia-web-3.5.10.tar.gz && cd ganglia-web-3.5.10 && make install && cd ..  

 

这样 /var/www/html/下 生成了 ganglia 目录

 注:

    Ganglia访问失败:

    There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied

 解决:

    需要关闭selinuxvi /etc/selinux/config,把SELINUX=enforcing改成SELINUX=disabled;需要重启机器。

    可以使用命令setenforce 0来关闭selinux而不需要重启,刷新页面,即可访问。但此方法只是一权宜之计。要想永久修改selinux设置,还是要使用第一种方法。 

    重启httpd服务器即可看到效果

    1.#service httpd restart

    使用http://sp-06:81/ganglia查看对应的ganglia信息。(注:sp-06为运行gmetad的主机的hostname

测试版界面演示(只在sp-06更改/etc/ganglia/gmond.conf后的结果

 

集群版演示(/etc/ganglia/gmond.conf全部更改完的事)

 

十、安装过程遇到的问题

下载apr失败

 

 

 

安装Ganglia失败

 

yum install -y rrdtool*

   

 

因端口冲突更改端口号为81

 

netstat -lnp|grep 80

 

 

 

 

  

常用命令 service gmond start

Root 下:service gmetad start 

service httpd restart

本文章有很多不足之处,希望大家多多指正。欢迎大家转载,请注明出处!码农打字不易,敬请谅解,谢谢!

posted @ 2016-12-16 14:39  改进的拜耳法  阅读(558)  评论(0编辑  收藏  举报