基本介绍
Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
架构
Ganglia由gmond、gmetad和gweb三部分组成:
1) gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。
2) gmetad(Ganglia Meta Daemon)是一种从其他gmetad或gmond源收集指标数据,并将其以RRD格式存储至磁盘的服务。gmetad为从主机组收集的特定指标信息提供了简单的查询机制,并支持分级授权,使得创建联合监测域成为可能。
3) gweb(Ganglia Web)gweb是一种利用浏览器显示gmetad所存储数据的PHP前端。在Web界面中以图表方式展现集群的运行状态下收集的多种不同指标数据。
Ganglia包括如下几个部分,他们之间通过XDL(xml的压缩格式)或者XML格式传递监控数据,达到监控效果。集群内的节点,通过运行gmond收集发布节点状态信息,然后gmetad周期性的轮询gmond收集到的信息,然后存入rrd数据库,通过web服务器可以对其进行查询展示。
安装方式
有两种安装方式,源码编译安装和yum安装,比较如下
源码编译安装:
优点:
可以安装最新版本的Ganglia,使用它的一些新特性,新UI等
缺点
1) 配置、编译、安装的过程较为复杂,很容易出错
2) 很多依赖手动配置,较为麻烦
3) 集群安装的时候,需要重复多次配置、编译、安装的过程,较为麻烦
Yum安装
优点
1) 安装、配置方便,使用yum自动安装
2) 所有依赖都通过yum自动安装
3) 集群安装时步骤简单方便
缺点:
当前epel上面的版本是3.1.7,版本较低
所以,对于简单使用,推荐使用yum安装。考虑到平台的初期搭建,最开始使用yum安装,可以满足前期使用,未来准备升级版本到官网最新版本。
环境介绍
1) 集群中只有一台机器能访问外网,其他机器不能访问外网。
2) 集群中已经搭建了一个yum私有仓库,同步了centos6的光盘中所有的rpm包,常用rpm包都可以通过yum私有仓库下载安装
安装思路
一台机器可以访问外网,使用yum下载需要安装Ganglia的所有rpm包到本地(只下载,不安装)。再将这些rpm包上传到内网的yum私有仓库,集群中的机器可以通过内网的yum仓库快速安装Ganglia。
安装过程
1、 配置epel源
因为Ganglia不在基本的yum源中,只在epel源(Extra Packages for Enterprise Linux )中。所以需要首先配置epel源。
通过地址 http://mirrors.fedoraproject.org/publiclist/EPEL/ 找到最近的源地址,选择CN,最后决定使用国内的一家服务商提供yum源仓库
我的服务器是centos6,进入这个地址,在集群的机器中配置好yum地址
# cat /etc/yum.repos.d/epel.repo
baseurl=http://mirrors.yun-idc.com/epel/6/x86_64/
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=http://mirrors.yun-idc.com/epel/RPM-GPG-KEY-EPEL-6 (也可以下载到本地,此处略)
# yum clean all
# yum repolist
可以看到已经配置好的yum源的一些信息
2、 下载Ganglia及其依赖包
通过yum只下载不安装,需要安装一个yum的插件
#yum install yum-downloadonly
安装完毕之后下载需要安装的rpm包以及依赖
#yum install rrdtool httpd php ganglia* libconfuse --downloadonly --downloaddir=/home
3、 把下载Ganglia的rpm包安装到内网中的yum私有仓库中
把这些rpm包复制到yum仓库。
cp /home/*.rpm /var/www/html/centos-6/Package
制作成repo
createRepo /var/www/html/centos-6/Package
4、 安装Ganglia到主服务器
需要安装ganglia-gmetad、ganglia-web、php、httpd组件
#yum install rrdtool httpd php gangli-gmetad ganglia-web
注意:有主服务器才需要安装ganglia-metad、ganglia-web、php和httpd,其他机器不用安装
5、 安装Ganglia到监控机器
只需要安装ganglia-gmond组件
#yum install gangli-gmond
注意:监控机器只需要安装ganglia-gmond,不需要安装ganglia的其他组件。
6、 配置主服务器的ganglia-metad和ganglia-web
1) 服务器端配置文件gmetad.conf:主要是配置data_source参数。它设定了被监控端服务器的地址及端口,可以指定多个被监控端服务器:
data_source “hadoop” 192.168.7.20:8649
grid_name “hadoop cluster” /*设置一个web前端显示的名称,随意命名。
2) 修改web前端配置文件/var/www/html/conf.php,指定gmetad中存储rrd图形的目录,以及rrdtool的位置:
$gmetad_root = "/var/lib/ganglia";
$rrds = "$gmetad_root/rrds";
define("RRDTOOL", "/usr/bin/rrdtool");
3) Php和httpd的配置已经不需要修改,因为yum安装会主动配置
7、 配置监控机器的ganglia-gmond
生成gmond默认配置文件:
#gmond -t |tee /etc/ganglia/gmond.conf
gmond.conf包括了几个部分:globals、cluster、udp_send_channel、udp_recv_channel等,如果只是想要Ganglia简单地运行,两个操作就可以了,两个操作都是在cluster配置段中进行修改:
1) 修改cluster的名字,命名成“hadoop”与data_source一致
2) tcp_accept_channel配置
tcp_accept_channel {
port = 8649
acl {
default = "deny"
access {
ip = 192.168.7.20 /*这里用来监控服务器的地址
mask = 32
action = "allow"
}
}
}
注意:可以将此配置文件,分发到其他监控节点,不用做修改
启动并访问
service gmond start
service gmetad start
service httpd start
访问 http://[ganglia主机ip]/ganglia
问题解决
1、 访问ganglia页面出现 Permission denied 的错误提示
这是因为httpd的设置问题,没有对某些ip的访问开放权限。修改httpd下面ganglia的配置
vi /etc/httpd/conf.d/ganglia.conf
Order deny,allow
#Deny from all
Allow from all (就是修改这个,表示对所有人开放访问权限)
Allow from 127.0.0.1
Allow from ::1
# Allow from .example.com
参考资料
推荐书籍《Monitoring with Ganglia》,这是权威
我在Ganglia的官网没有找到任何关于安装的wiki,很奇怪!如谁有找到,请指出,感激不尽。
原创文章,欢迎转载,转载请标明出处 http://blog.csdn.net/shifenglov/article/details/40587527
来源:CSDN
作者:zachary_OOM
链接:https://blog.csdn.net/shifenglov/article/details/40587527