10.2.5 Ganglia

Ganglia是UC Berkeley发起的一个开源集群监视项目,用于测量数以千计的节点集群。Ganglia的核心包含两个Daemon(分别是客户端Ganglia Monitoring Daemon(gmond)和服务端Ganglia Meta Daemon(gmetad),以及一个Web前端。Daemon主要是用来监控系统性能,如CPU、memory、硬盘利用率、I/O负载、网络流量情况等;Web前端页面主要用于获得各个节点工作状态的曲线描述。Ganglia可以帮助我们合理调整、分配系统资源,为提高系统整体性能起到了重要作用。

处于监控状态下的每台位于节点上的计算机都需要运行一个收集和发送度量数据的名为gmond的守护进程。接收所有度量数据的主机可以显示这些数据,并且可以将这些数据传递到监控主机中。gmond带来的系统负载非常少,它的运行不会影响用户应用进程的性能。多次收集这些数据则会影响节点性能。网络中的“抖动”发生在大量小消息同时出现时,可以通过将节点时钟保持一致来避免这个问题。

gmetad可以部署在集群内任一台位于节点上的或通过网络连接到集群的独立主机中,它通过单播路由的方式与gmond通信,收集区域内节点的状态信息,并以XML数据的形式保存在数据库中。最终由RRDTool工具处理数据,并生成相应的图形显示,以Web方式直观地提供给客户端。这个服务器可以被看做是一个信息收集的装置,可以同时监控多个客户端的系统状况,并把信息显示在Web界面上。通过Web端连接这个服务器,就可以看到它所监控的所有机器状态。

1.服务器端的安装与配置

首先需要在服务器端安装下列包:ganglia-gmetad-3.0.3-1.fc4.i386.rpm(从各个网段获取汇总监控信息),rrdtool-1.2.18-1.el4.rf.i386.rpm(显示图像的工具),rrdtool-devel-1.2.18-1.el4.rf.i386.rpm, ganglia-web-3.0.3-1.noarch.rpm(Ganglia的Web程序),perl-rrdtool-1.2.18-1.el4.rf.i386.rpm。使用#rpm-ivh软件包.rpm可以安装这些包。

安装完成之后,找到Ganlia服务端的配置文档:/etc/gmetad.conf,可以根据不同的需求进行配置。在这里只简单介绍一下如何添加或修改要监控的系统。先通过#vi/etc/gmetad.conf命令(进入编辑),找到data_source“Login FARM”10.77.20.111:8651 10.77.20.111:8699(后面的这些IP地址就是要监控的主机,冒号后跟的是要监听的端口号,这个端口号将在介绍客户端的配置时提到)。其他属性保持默认配置即可。

配置完成后要重启gmetad服务:#service gmetad restart。下面我们来配置虚拟主机,设置路径DocumentRoot为"/var/www/html/ganglia":


配置虚拟主机

<Directory"/var/www/html/ganglia">

Options Indexes FollowSymLinks

AllowOverride None

Order allow, deny

Allow from all

</Directory>


然后重启httpd服务:service httpd restart,即完成服务器端的安装和配置。

2.客户端的安装与配置

在客户端安装Ganglia,是为了收集本机的信息,并通过设置好的端口把信息传给服务器端,因此我们需要在所有节点上进行相应的安装和配置。下面我们来讲解如何进行客户端的安装。

首先在客户端安装软件包:ganglia-gmond-3.0.3-1.fc4.i386.rpm。安装完成后,找到它的配置文档/etc/gmond.conf并打开编辑(#vi/etc/gmond.conf)。接着找到配置文件中如下部分并按照所给出的例子进行配置。


/*You can specify as many tcp_accept_channels as you like to share

an xml description of the state of the cluster*/

tcp_accept_channel{

port=8699/注释:这个是端口,通过它来传送系统信息。注意要和服务器端监听的端口一致/

acl{

default="deny"

access{

ip=10.77.20.111/注释:这里是服务器的IP地址/

mask=32

action="allow"

}}}


完成配置后,重启gmond服务(#service gmond restart)即可。至此Ganglia在服务器端和客户端的安装完成,我们可以查看它的运行状态,如图10-2所示。

10.2.5 Ganglia - 图1

图 10-2 Ganglia的监控页面

事实上,有很多其他可以扩展Hadoop监控能力的工具比如本书第17章介绍的Chukwa,它是一个数据收集和监控系统,构建于HDFS和MapReduce之上,也是可供管理员选择的监控工具。Chukwa可以统计分析日志文件,从而提供给管理员想要的信息。