一、所需要软件
二、安装过程
    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. OC 结构体

    void test() { // 这个机构只能在函数内部使用 // 定义一个名为Student的结构体类型 struct Student { int age; // 年龄 char *name; // ...

  2. mvc做网站怎么在mvc中直接访问.html网页 [问题点数:20分]

    最近用.net mvc做一个网站 我想在mvc中直接访问一个 .html页面 怎么设置一下啊 现在直接访问是404不让访问的 放到view文件夹外面...

  3. Haskell 与范畴论-函子、态射、函数

    范畴论基本概念 如果你是第一次听说范畴论(category theory),看到这高大上的名字估计心里就会一咯噔,到底数学威力巨大,光是高等数学就能让很多人噩梦连连.和搞编程的一样,数学家喜欢将问题不 ...

  4. HDU 5723 最小生成树上的期望

    题意:求最小生成树,和任意两个点之间距离的期望 官方题解: 最后求两遍点的积的时候,还是要判断父子关系. 注意 long long #include <bits/stdc++.h> usi ...

  5. Android学习笔记_19_广播接收者 BroadcastReceiver及其应用_窃听短信_拦截外拨电话

    一.广播接收者类型: 广播被分为两种不同的类型:“普通广播(Normal broadcasts)”和“有序广播(Ordered broadcasts)”. 普通广播是完全异步的,可以在同一时刻(逻辑上 ...

  6. 微软.net framework 源码学习

    1. 直接下载.NET Framework源代码(下载地址),然后用Visual Studio打开查看. 2. 在线查看,网址:http://referencesource.microsoft.com ...

  7. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition Kaiming He, Xiangyu Zh ...

  8. Python 学习笔记(七)Python字符串(二)

    索引和切片 索引  是从0开始计数:当索引值为负数时,表示从最后一个元素(从右到左)开始计数 切片 用于截取某个范围内的元素,通过:来指定起始区间(左闭右开区间,包含左侧索引值对应的元素,但不包含右测 ...

  9. 轻量ORM-SqlRepoEx (一)SqlRepoEx介绍

    一.SqlRepo项目 发现SqlRepo项目库是在构建自动代码工具时.对于数据访问,在.Net下,有很多选择,比如EF,但EF使用起来,不是很方便的.以前一直使用Atk.Expression库+Sy ...

  10. oracle删除一个表内的重复数据,

    查询以及删除一个数据库表内的重复数据. 1.查询表中的多余的重复记录,重复记录是根据单个字段来判断的. select * from biao where id in (select id from b ...