大数据平台监控(一):Ganglia在集群中快速安装方案

元气小坏坏 提交于 2019-12-03 19:34:18

基本介绍

GangliaUC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmondgmetad以及一个Web前端。主要是用来监控系统性能,如:cpu mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。

 

架构

Gangliagmondgmetadgweb三部分组成:

1)      gmondGanglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond,你可以很容易收集很多系统指标数据,如CPU、内存、磁盘、网络和活跃进程的数据等。

2)      gmetadGanglia Meta Daemon)是一种从其他gmetadgmond源收集指标数据,并将其以RRD格式存储至磁盘的服务。gmetad为从主机组收集的特定指标信息提供了简单的查询机制,并支持分级授权,使得创建联合监测域成为可能。

3)      gwebGanglia Webgweb是一种利用浏览器显示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、 把下载Gangliarpm包安装到内网中的yum私有仓库中

把这些rpm包复制到yum仓库。

cp /home/*.rpm /var/www/html/centos-6/Package

制作成repo

createRepo /var/www/html/centos-6/Package

 

4、 安装Ganglia到主服务器

需要安装ganglia-gmetadganglia-webphphttpd组件

#yum install rrdtool httpd php gangli-gmetad ganglia-web

注意:有主服务器才需要安装ganglia-metadganglia-webphphttpd,其他机器不用安装

 

5、 安装Ganglia到监控机器

只需要安装ganglia-gmond组件

#yum install gangli-gmond

注意:监控机器只需要安装ganglia-gmond,不需要安装ganglia的其他组件。

 

6、 配置主服务器的ganglia-metadganglia-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)      Phphttpd的配置已经不需要修改,因为yum安装会主动配置

 

7、 配置监控机器的ganglia-gmond

生成gmond默认配置文件:

#gmond -t |tee /etc/ganglia/gmond.conf 

gmond.conf包括了几个部分:globalsclusterudp_send_channeludp_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


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!