一、所需要软件
二、安装过程
    1、Ganglia运行平台的安装
    2、Ganglia依赖库的安装
    3、RRDTool的安装
    4、Ganglia的安装 (包括使用yum方式安装)
三、简单配置
四、启动与访问
五、被监控节点上安装Ganglia (包括使用yum方式安装)
六、遇到的问题,及解决办法 
 
流行的开源服务器集群监控工具有很多,例如Nagios、Cacti、Ganglia、Zenoss、Clumon,它们在底层都利用了RRDTool。国内最常用的就是Cacti+Nagios,但是Ganglia其实也很不错,Ganglia+Nagios的组合也很强大。
Ganglia是一个可伸缩的监控系统,尤其适合用来监计算机集群、网格等。Ganglia监控系统的组成部分包括:两个独立的daemon,一个基于PHP的web前端,和一些其它的应用程序。
gmond(Ganglia Monitoring Daemon):运行于节点上的daemon
gmetad(Ganglia Meta Daemon):服务器端的daemon
Ganglia PHP Web Frontend:基于PHP的web前端
 
Ganglia官网:http://ganglia.info/
Ganglia Wiki:http://sourceforge.net/apps/trac/ganglia
 
一、所需软件:
平台:linux+apache+php 
依赖库:
apr-devel
apr-util
check-devel
cairo-devel
pango-devel
libxml2-devel
rpmbuild
glib2-devel
dbus-devel
freetype-devel
fontconfig-devel
gcc-c++
expat-devel
python-devel
libXrender-devel
libconfuse(它无法通过yum安装)
pcre(无法通过yum安装)
 
RRDTool:rrdtool-1.4.5.tar.gz 
Ganglia:ganglia-3.1.7.tar.gz
 
二、安装过程
参考了Ganglia Wiki上的安装配置文档,以及IBM网站上《Ganglia 和 Nagios》: 
1)apache+php的安装:大略如下:
apache:
  1. wget http://labs.renren.com/apache-mirror//httpd/httpd-2.2.19.tar.gz
  2. tar -zxvf httpd-2.2.19.tar.gz
  3. cd httpd-2.2.19
  4. ./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=most
  5. make && make install
  6. /usr/local/apache2/bin/apachectl start
http://192.168.9.45,访问成功! 
php:
准备手动编译安装,但是在下载gd库时出错,没有下载到,索性使用yum安装
  1. yum -y install zlib libpng jpeg freetype2 libxml2 gdphp-mbstring
  2. yum -y install php
apache对php的支持:
在使用yum安装PHP时,已经默认在httpd的配置目录下创建了conf.d目录及相关文件,我们不需要进行任何的操作。直接启动httpd,然后测试php是否安装成功。
 
若是源码安装PHP,使apache支持php需要如下的两步操作:
首先,拷贝libphp5.so 到apache的module目录下:
  1. cp /usr/lib64/httpd/modules/libphp5.so /usr/local/apache2/modules/
然后,vi /usr/local/apache2/conf/httpd.conf,添加:
  1. <FilesMatch \.php$>
  2. SetHandler application/x-httpd-php
  3. </FilesMatch>
  4. <FilesMatch "\.ph(p[2-6]?|tml)$">
  5. SetHandler application/x-httpd-php
  6. </FilesMatch>
  7. <FilesMatch "\.phps$">
  8. SetHandler application/x-httpd-php-source
  9. </FilesMatch>
  10. LoadModule php5_module modules/libphp5.so
  11. <IfModule dir_module>
  12. DirectoryIndex index.html index.php
  13. </IfModules>
重启apache,测试PHP是否安装成功:
vi /usr/local/apache2/htdocs/index.php,添加:
  1. <?
  2. phpinfo();
  3. ?>
访问:http://192.168.9.45/index.php,访问成功! 
2)依赖库的安装:
  1. yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpmbuild glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel
3)libconfuse的安装(自己使用google搜索下载地址):
  1. wget http://savannah.nongnu.org/download/confuse/confuse-2.7.tar.gz
  2. tar -zxvf confuse-2.7.tar.gz
  3. cd confuse-2.7
  4. ./configure CFLAGS=-fPIC --disable-nls
  5. make && make install
调整lib库的位置:
vi /etc/ld.so.conf.d/libconfuse.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v 
4)pcre安装:
pcre是perl 兼容的正规表达式库,在使用正则匹配时会很用。不安装的话,ganglia安装时会报错:libpcre not found, specify --with-libpcre=no to build without PCRE support。
  1. wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.12.tar.bz2
  2. tar -jxvf pcre-8.12.tar.bz2
  3. cd pcre-8.12
  4. ./configure && make && make install
调整lib库的位置:
vi /etc/ld.so.conf.d/libpcre.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v
5)RRDTool的安装:
  1. wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.5.tar.gz
  2. tar -zxvf rrdtool-1.4.5.tar.gz
  3. cd rrdtool-1.4.5
  4. ./configure --prefix=/usr/local
  5. make && make install
调整lib库的位置:
vi /etc/ld.so.conf.d/librrd.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v 
6)Ganglia的安装:
要注意的是,Ganglia在安装时默认不安装gmetad,所以需要在configure时指定:--with-gmetad,还需要指定RRDTool库的路径:--with-librrd=… ! 
  1. wget http://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.1.7/ganglia-3.1.7.tar.gz/download
  2. tar -zxvf ganglia-3.1.7.tar.gz
  3. cd ganglia-3.1.7
  4. ./configure --with-gmetad --with-librrd=/usr/local/lib --sysconfdir=/etc/ganglia
  5. make
  6. make install
编译安装成功!
几个重要文件的默认安装位置:
/usr/bin/gstat
/usr/bin/gmetric
/usr/sbin/gmond
/usr/sbin/gmetad
/etc/ganglia/gmetad.conf
 
需要进一步的操作,添加gmond和gmetad为系统服务:
  1. cp gmond/gmond.init /etc/rc.d/init.d/gmond
  2. cp gmetad/gmetad.init /etc/rc.d/init.d/gmetad
  3. chkconfig --add gmond && chkconfig gmond on
  4. chkconfig --add gmetad && chkconfig gmetad on
7)Ganglia web前端的安装:
  1. mkdir /var/www/html/ganglia
  2. cp -r web/* /var/www/html/ganglia
Ganglia的Wiki特别指出,web前端的运行需要rrdtool,以及gmetad中的rrds/目录,没有这两个东西,无法出图。gmetad中rrd图形默认存储的目录位置为/var/lib/ganglia/rrds:
  1. mkdir -p /var/lib/ganglia/rrds
  2. chown nobody:nobody /var/lib/ganglia/rrds
rrdtool的位置是/usr/local/bin/rrdtool,编译web前端的配置文件时会在那儿进行定义。
 
是不是觉得编译安装很麻烦?你也可以使用yum安装方式,只是Ganglia版本稍微低一些。Yum安装方式很简单,首先要安装epel源 (什么是epel ?自行google一下 ),然后运行:
  1. yum install rrdtool httpd php ganglia*   以ganglia开头的几个软件都要安装 
 
三、Ganglia的简单配置:
1)生成gmond默认配置文件:
  1. gmond -t |tee /etc/ganglia/gmond.conf
2)服务器端配置文件gmetad.conf,主要是配置data_source参数。它设定了被监控端服务器的地址及端口,可以指定多个被监控端服务器:
  1. data_source “hadoop” 10 192.168.9.45
  2. grid_name “hadoop cluster status” /*设置一个web前端显示的名称,随意命名。
3)被监控节点配置文件gmond.conf:
gmond.conf包括了几个部分:globals、cluster、udp_send_channel、udp_recv_channel等,如果只是想要Ganglia简单地运行,两个操作就可以了,两个操作都是在cluster配置段中进行修改: 
首先,命名你的集群:
命名一个cluster名称,名称与gmetad.conf中的data_source保持一致。我的命名:name = "hadoop"
然后,修改tcp_accept_channel配置段如下:
  1. tcp_accept_channel {
  2. port = 8649
  3. acl {
  4. default = "deny"
  5. access {
  6. ip = 192.168.9.45 /*这里用来监控服务器的地址
  7. mask = 32
  8. action = "allow"
  9. }
  10. }
  11. }
把这个gmond.conf配置文件分发到每个被监控的节点服务器上,重启监控端的gmetad和gmond,以及节点端的gmond,即可对节点进行监控。 
4)修改web前端配置文件/var/www/html/conf.php,指定gmetad中存储rrd图形的目录,以及rrdtool的位置:
  1. $gmetad_root = "/var/lib/ganglia";
  2. $rrds = "$gmetad_root/rrds";
  3. define("RRDTOOL", "/usr/local/bin/rrdtool");
四、启动ganglia,并访问其web页面:
service gmond start
service gmetad start
service httpd restart 
访问: http://192.168.9.45/ganglia 
 
五、被监控节点上安装Ganglia:
根据IBM网站上的文章所述,只需要拷贝几个文件到节点机器,即可使用Ganglia对这些机器进行监控。但是我们一般都不允许以root帐户连接远程服务器,所以也比较烦琐,还不如直接安装。
被监控节点服务器不需要安装RRDTOOL,php等,只需要gmond。编译安装方式跟监控节点一样,但configure时要简单一些,下面一条命令即可:
  1. ./configure --sysconfdir=/etc/ganglia
被监控节点上安装ganglia-gmond完毕后,从监控节点复制gmond.conf文件到被监控节点,然后启动/重启gmond,然后刷新监控web页面即可。
最好重启一下监控节点的gmetad。
 
然后把被监控端的gmond添加系统为系统服务,前面已经讲过了。略过。
 
被监控节点也可以使用yum方式安装,也是首先安装epel源,然后只需要运行下面命令:
  1. yum install ganglia-gmond 
 
六、安装过程中遇到的错误及解决办法:
1)在configure apache时,遇到下列错误:
configure: error: Cannot use an external APR with the bundled APR-util
原因是apr和apr-util版本过低,下载并安装最新版,如下:
  1. wget http://labs.renren.com/apache-mirror//apr/apr-1.4.5.tar.gz
  2. tar -zxvf apr-1.4.5.tar.gz
  3. cd apr-1.4.5
  4. ./configure && make && make install
调整lib库的位置:
vi /etc/ld.so.conf.d/libapr.conf,添加/usr/local/apr/lib,运行/sbin/ldconfig -v 
apr-util的安装参考上述apr的安装过程。
下载地址:wget http://labs.renren.com/apache-mirror//apr/apr-util-1.3.12.tar.gz
 
2)Ganglia configure失败:
Checking for apr
checking for apr-1-config... no
configure: error: apr-1-config binary not found in path 
解决:
yum -y install apr-devel
 
4)Ganglia make出错:
/usr/bin/ld: /usr/local/lib/libconfuse.a(confuse.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libconfuse.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [libganglia.la] Error 1
make[2]: Leaving directory `/usr/local/ganglia-3.1.7/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/ganglia-3.1.7'
make: *** [all] Error 2
解决:
据网上资料,这个错误是因为在编译libconfuse时,需要指定特殊的选项:CFLAGS=-fPIC --disable-nls
重新编译libconfuse,并调整lib库:
  1. ./configure CFLAGS=-fPIC --disable-nls && make && make install
5)Ganglia访问失败:
There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied 
解决:
需要关闭selinux:vi /etc/selinux/config,把SELINUX=enforcing改成SELINUX=disable;需要重启机器。
可以使用命令setenforce 0来关闭selinux而不需要重启,刷新页面,即可访问!但此方法只是一权宜之计。要想永久修改selinux设置,还是要使用第一种方法。 

Ganglia3.1.7安装与配置(收录)的更多相关文章

  1. 安装和配置Sentry(收录)

    安装和配置Sentry 本文主要记录安装和配置Sentry的过程,关于Sentry的介绍,请参考 Apache Sentry架构介绍 . 1. 环境说明 系统环境: 操作系统:CentOs 6.6 H ...

  2. OpenStack云计算快速入门之二:OpenStack安装与配置

    原文:http://blog.chinaunix.net/uid-22414998-id-3265685.html OpenStack云计算----快速入门(2) 该教程基于Ubuntu12.04版, ...

  3. Linux 系统下原版 texlive 2016 的安装与配置

    尽管大部分常见的linux系统的包管理器内都会包含texlive,然而最好还是安装TUG发布的原版texlive.这是由于:1,软件仓库内的texlive通常版本较陈旧:2,由于版权因素一些tex宏包 ...

  4. OpenStack安装与配置2

    第二部分 OpenStack安装与配置 一.引言   本章内容讲解如何在3台物理机上搭建最小化云平台,这3台机器分为称为Server1.Server2和Client1,之后的各章也是如此.Server ...

  5. python笔记1-基础概念、python安装使用配置

    Python 1.基础概念 一.什么是python? python是一种面向对象.解释型的计算机语言,它的特点是语法简洁.优雅.简单易学.在1989诞生,Guido(龟叔)开发.这里的python并不 ...

  6. 第二部分 OpenStack安装与配置

    第二部分 OpenStack安装与配置 一.引言   本章内容讲解如何在3台物理机上搭建最小化云平台,这3台机器分为称为Server1.Server2和Client1,之后的各章也是如此.Server ...

  7. Ganglia安装及配置

    Ganglia安装及配置root用户下yum安装所依赖的环境(实际生产环境都已安装)yum -y install apr-develapr-util check-devel cairo-devel p ...

  8. JDK安装与配置

    JDK安装与配置 一.下载 JDK是ORACLE提供免费下载使用的,官网地址:https://www.oracle.com/index.html 一般选择Java SE版本即可,企业版的选择Java ...

  9. Node.js 教程 01 - 简介、安装及配置

    系列目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 Node.js 教程 0 ...

随机推荐

  1. 关于rapidxml无法解析中文路径问题

    先放结果 setlocale(LC_ALL, ""); rapidxml::file<> f(szPath); setlocale(LC_ALL, "C&qu ...

  2. bzoj1264 [AHOI2006]基因匹配

    Description 基因匹配(match) 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而成(地球上只有4种),而更奇怪的是,组成DNA序列的每一种碱 ...

  3. 【洛谷5294】[HNOI2019] 序列(主席树维护单调栈+二分)

    点此看题面 大致题意: 给你一个长度为\(n\)的序列\(A\),每次询问修改一个元素(只对当前询问有效),然后让你找到一个不下降序列\(B\),使得这两个序列相应位置之差的平方和最小,并输出这个最小 ...

  4. LA 3415 保守的老师

    题目链接:https://vjudge.net/contest/161820#problem/E 题意: 有一些同学,要从中选出一些同学来,人数尽量多,但是,两两之间要满足至少一个条件(身高差> ...

  5. 自定义Powershell提示符

    实现效果: 实现原理: Powershell将个人配置脚本文件的地址存放在$profile变量中, 通过修改该变量达到想要的目的. 实现过程: 1>创建一个新的配置脚本: 2>编辑脚本内容 ...

  6. 【转】Java虚拟机类型卸载和类型更新解析

    [摘要]         前面系统讨论过java类型加载(loading)的问题,在这篇文章中简要分析一下java类型卸载(unloading)的问题,并简要分析一下如何解决如何运行时加载newly ...

  7. Oracle,Mysql,SQlserver生成实体映射之SqlSugarT4

    官网:http://www.codeisbug.com 代码已上传GitHub:https://github.com/SeaLee02/sealee 本篇主要讲使用SqlSugar包进行Model生成 ...

  8. <head> 中的 JavaScript 函数

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  9. 访问oracle数据库

    如果是本地 :sqlplus system/xxx(用户名/密码) 远程到服务器, sqlplus system/xxx(用户名/密码) @IP:port/orcl(orcl为数据库实例)

  10. iOS之UIImagePickerController显示中文界面

    iOS开发中,我们经常遇到获取拍照.相册中图片的功能,就必然少不了UIImagePickerController,但是我们发现当我们使用它的时候,它的页面是英文的,看着很别扭,国人还是比较喜欢看中文界 ...