您的位置:首页 > 运维架构

Hadoop集群中部署Ganglia分布式监控系统

2015-05-13 11:32 281 查看

关于ganglia

Ganglia主要是用来监控系统性能。比如:CPU 、Memory、硬盘利用率, I/O负载、网络流量情况等。Ganglia通过图形化的方式展示每个节点的状态信息,这对合理调整、分配系统资源,提高系统整体性能起到重要作用。Ganglia包含三个核心组件:gmond、gmetad、ganglia-web。

①Gmond组件

Gmond组件部署于集群中各个被监控的节点。其主要功能是从操作系统或指定的主机收集状态信息。其收集主机状态信息的方式灵活,状态信息均以XML格式进行传输。

②Gmetad组件

Gmetad组件可以部署于集群中的某一节点,也可以部署于集群外的某一专门服务器。其主要功能是周期性地从指定的Gmond组件或其他Gmetad组件拉取数据,并将拉取的数据存储在本地数据库。这些存储的状态信息供Ganglia-Web组件使用。

③Ganglia-Web组件

Ganglia-Web组件和Gmetad组件须部署于同一节点,它通过数据库轮询的方式从Gmetad组件中获取状态信息,并以web形式图形化地展示各个节点的状态信息。

ganglia安装规划和需要的资源

①实验环境

Host nameIPOSservice
Master222.31.81.17CentOS 6.4监控服务主节点
Slave1222.31.81.36CentOS 6.4被监控从节点
Slave2222.31.81.34CentOS 6.4被监控从节点
Slave3222.31.81.9CentOS 6.4被监控从节点
注意:

确认防火墙iptables关闭。(service iptables stop)

确认SELinux关闭。(setenforce 0 )

②安装规划

Ganglia监控服务的主节点需要安装:

ganglia

ganglia-web

php

apache

Ganglia被监控从节点需要安装:

ganglia

③需要的软件

confuse-2.7

httpd-2.2.23

php-5.4.10

ganglia-3.6.0

rrdtool-1.4.7

ganglia-web-3.5.10

④安装依赖(全部的节点都需要配置)

使用yum安装的相关依赖

yum install check-devel cairo-devel rpmbuild glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel


yum install libxm*
yum install apr*
yum install pcre*
yum install python*
yum install perl-ExtUtils-MakeMaker
yum install pang*


手动安装confuse

tar -zxvf confuse-2.7.tar.gz
./confuse-2.7/configure CFLAGS=-fPIC --disable-nls
./confuse-2.7/make&& make install


手动安装rrdtool

tar -zxvf rrdtool-1.4.6.tar.gz
./rrdtool-1.4.6/configure --prefix=/usr
./rrdtool-1.4.6/make&& make install


监控节点安装

①安装ganglia

tar –xzvf  ganglia-3.6.0.tar.gz

cd ganglia-3.60

./configure --prefix=/usr/local/ganglia --with-gmetad --enable-gexec --with-python –with-librrd=/usr/bin

make && make install


②安装ganglia-web

tar -zvxf ganglia-web-3.5.10.tar.gz

cp ganglia-web-3.5.10  /home/gangliaInstall/ganglia –rf

cd /gangliaInstall/ganglia/ganglia-web-3.5.10

cp conf_default.php conf.php


修改conf.php的信息

vi conf.php


#$conf['gweb_confdir'] = "/var/lib/ganglia-web";    //注释掉
$conf['gweb_confdir'] = "/home /gangliaInstall/ganglia/ganglia-web-3.5.10";      //ganglia-web的安装地址

#$conf['gmetad_root'] = "/var/lib/ganglia";   //注释掉
$conf['gmetad_root'] = "/home /gangliaInstall/ganglia"; //ganglia的安装地址


修改header.php信息

vi header.php


<?php
session_start();
ini_set('date.timezone', 'PRC');  //添加,-修改时区为本地时区
if (isset($_GET['date_only'])) {
$d = date("r");
echo $d;
exit(0);
}


建立必要文件夹并且更改权限

cd /home/gangliaInstall/ganglia/ganglia-web-3.5.10/dwoo

mkdir cache

chmod 777 cache

mkdir compiled

chmod 777 compiled


③安装apache

tar –xzvf  httpd-2.2.23.tar.gz

cd httpd-2.2.23/srclib

cd apr

./configure  --prefix=/usr/local/apr

make && make install

cd ..

cd apr-util

./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr

make && make install

cd ../../

./configure --prefix=/usr/local/apache2 --with-arp=/usr/local/apr --with-apr-util=/usr/local/apr-util

make && make install


④安装php

tar –xavf php-5.4.10.tar.gz

cd php-5.4.10

./configure --prefix=/usr/local/php  --with-apxs2=/usr/local/apache2/bin/apxs

make && make install


需要进行下列配置

find到libphp5.so,将其拷贝到 /usr/local/apache2/modules/ 目录下

打开 /usr/local/apache2/conf/httpd.conf文件,并添如下信息到其中

<FilesMatch "\.php$">

SetHandler application/x-httpd-php

</FilesMatch>

<FilesMatch "\.ph(p[2-6]?|tml)$">

SetHandler application/x-httpd-php

</FilesMatch>

<FilesMatch "\.phps$">

SetHandler application/x-httpd-php-source

</FilesMatch>

LoadModule php5_module modules/libphp5.so

<ifModule dir_module>

DirectoryIndex index.html index.php

</ifModule>


重启apache :/usr/local/apache2/bin/apachectl restart

注意:

修改共享库配置信息

vi /etc/ld.so.conf


增加如下内容

/usr/local/lib


启动:

ldconfig


⑤配置apache发布ganglia-web日志

编辑httpd.conf文件

vi /usr/local/apache2/conf/httpd.conf


在配置文件中添加如下内容:

Alias /ganglia "/home/gangliaInstall/ganglia/ganglia-web-3.5.10"
<Directory "/home/gangliaInstall/ganglia/ganglia-web-3.5.10">
AuthType Basic
#Options None
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>


重启apache

⑥配置gmetad

进入ganglia安装文件

cd ganglia-3.6.0

cp ./gmetad/gmetad.init  /etc/init.d/gmetad

cp ./gmetad/gmetad.conf  /usr/local/ganglia/etc


修改gmetad

vi /etc/init.d/gmetad


GMETAD=/usr/local/ganglia/sbin/gmetad


修改gmetad.conf配置文件

vi /usr/local/ganglia/etc/gmetad.conf


data_source “xxxx” cluster_ip1 cluster_ip2 cluster_ip3

xml_port 8651

interactive_port 8652

rrd_rootdir “/home/gangliaInstall/ganglia/rrds”

case_sensitive_hostnames 1   #非常重要!要不然无法再Hadoop集群中获取数据


将gmetad写入系统服务

chkconfig --add gmetad


重启gmetad

到此监控节点上的ganglia服务已经全部配置完了,接下来我们开始安装被监控节点上的ganglia环境。

被监控节点配置

①配置gmond

进入ganglia源目录

cd ganglia-3.6.0
cp ./gmond/gmond.init  /etc/init.d/gmond
./gmond/gmond –t > /usr/local/ganglia/etc/gmond.conf


修改gmond配置

vi /etc/init.d/gmond


GMOND=/usr/local/ganglia/sbin/gmond


修改gmond.conf配置

vi /usr/local/ganglia/etc/gmond.conf


globals {
daemonize = yes
setuid = yes
user = nobody #运行ganglia的用户
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
host_dmax = 120
cleanup_threshold = 300
gexec = no
send_metadata_interval = 15 #发送数据的时间间隔
}

cluster {
name = “xxx”     #要与gmated.conf中data_source的名称相同
owner = “nobody”
latlong = “unspecified”
url = “unspecified”
}

udp_send_channel {
# mcast_join = 222.31.81.17  #注释掉组播
host = 222.31.81.17 #发送给安装gmetad的机器
port = 8649
ttl = 1
}

udp_recv_channel
{
port = 8649
bind = 10.215.80.54
}


复制python module到ganglia部署目录

mkdir /usr/local/ganglia/lib64/ganglia/python_modules

cp ./gmond/python_modules/*/*.py  /usr/local/ganglia/lib64/ganglia/python_modules


将gmond写入系统服务

chkconfig --add gmond


重启gmond

修改Hadoop配置文件

修改Hadoop的配置文件/etc/hadoop/hadoop-metrics.properties(如果没有在这个位置可通过find命令查找hadoop-metrics.properties文件的地址)

修改以下内容:

dfs.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
dfs.period=30
dfs.servers=222.31.81.17:8649

mapred.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
mapred.period=30
mapred.servers=222.31.81.17:8649

jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext
jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
jvm.period=30
jvm.servers=222.31.81.17:8649


所有的servers都修改为安装为gmetad的机器IP。

重启Hadoop datanode

重启gmond

测试

在浏览器中输入监控节点的IP地址:222.31.81.17/ganglia 即可看到如下截图的界面,说明ganglia搭建完成。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: