Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1216065
  • 博文数量: 259
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 2518
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-13 16:12
个人简介

科技改变世界,技术改变人生。

文章分类

全部博文(259)

分类: 大数据

2015-05-07 16:47:11

ganglia的工作原理就不多说了,网上很多,直接进行实践环节。

监控:


hadoop监控:


CentOS-6.3 系统64位
监控gmetad主机和gmond客户端主机在同一台虚拟机的时候,会出现各节点不显示性能图线的情况。(实体机不会出现这样的问题)
经过证明ganglia Server使用实体机,客户端虚拟机全部显示正常。

安装Ganglia服务器,需要用到的软件包,如下所示:

    pcre-8.33.tar.gz
    confuse-2.7.tar.gz
    rrdtool-1.4.7.tar.gz
    php-5.5.24.tar.gz
    ganglia-3.6.0.tar.gz
    ganglia-web-3.5.10.tar.gz
    ganglia-web-3.6.2.tar.gz(节点不显示数据性能线)
    nginx-1.6.0.tar.gz


下面介绍安装和配置的过程:

1、安装基础依赖软件包

首先保证yum源可用,可以查看或者修改,在目录下面/etc/yum.repo.d/可以添加或者修改。接着,就可以执行如下命令安装一些基础依赖软件包

yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel pkgconfig

如果安装过程中,没有出错,则可以正常进行下一步,如果出现错误,可能会影响后面的安装过程。


安装PCRE软件包
tar zxvf pcre-8.33.tar.gz
cd pcre-8.33
./configure --prefix=/usr --libdir=/usr/lib64
make
make install

调整lib库的位置:
vi /etc/ld.so.conf.d/libpcre.conf,添加:/usr/local/lib,然后/sbin/ldconfig -v
没有就新建

安装confuse软件包
tar zxvf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls
make
make install


安装rrdtool软件包
tar xvzf rrdtool-1.4.7.tar.gz
cd rrdtool-1.4.7/
./configure
make
make install
ln -s /opt/rrdtool-1.4.7/lib/librrd.so.4 /usr/lib64/librrd.so.4
ln -s /opt/rrdtool-1.4.7/lib/librrd.so.4 /usr/lib64/librrd.so
rrdtool默认会安装到/opt/rrdtool-1.4.7目录下面。

验证 /opt/rrdtool-1.4.7/bin/rrdtool

安装PHP软件包

tar xvzf php-5.5.24.tar.gz
cd php-5.5.24
./configure --enable-fpm
make
make install
cd /usr/local/etc/
cp php-fpm.conf.default php-fpm.conf

修改配置文件/usr/local/etc/php-fpm.conf,在php-fpm.conf中找到如下行:
;security.limit_extensions = .php .php3 .php4 .php5

将配置行修改为如下内容:
security.limit_extensions = .php .php3 .php4 .php5 .htm .html .png .jpeg .gif .jpg .js .css

因为Ganglia Web监控是PHP实现的,我们需要保证对于一些图片或者脚本都能够正常加载,才能够浏览到直观完整的图形界面,便于监控理解。
启动fpm,执行如下命令:
/usr/local/sbin/php-fpm

验证php-fpm启动成功,可以执行如下命令:
ps -ef | grep php-fpm

如果能够看到类似如下的几个进程表示启动成功:
root      9440     1  0 13:57 ?        00:00:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)
nobody    9441  9440  0 13:57 ?        00:00:00 php-fpm: pool www    
nobody    9442  9440  0 13:57 ?        00:00:00 php-fpm: pool www


安装配置Ganglia Server
tar xvzf ganglia-3.6.0.tar.gz
cd ganglia-3.6.0
./configure --with-gmetad --with-librrd=/opt/rrdtool-1.4.7 --prefix=/usr/local/ganglia --enable-gexec --enable-status
make
make install
cp /root/ganglia-3.6.0/gmetad/gmetad.init /etc/init.d/gmetad
chkconfig gmetad on
chkconfig --list gmetad

修改配置文件/etc/init.d/gmetad,将配置行GMETAD=/usr/sbin/gmeta的内容修改为:
GMETAD=/usr/local/ganglia/sbin/gmetad

修改配置文件/usr/local/ganglia/etc/gmetad.conf,将默认的data_source “my cluster” localhost修改为:(目前未设置)
单hadoop群集
data_source "hadoop" 10.10.3.104:8653

多hadoop群集
data_source "log server" 10.10.2.245:8652
data_source "hadoop" 10.10.3.104:8649
data_source "data upload" 10.10.3.22:8654


这里,配置了3个监控组,每个组对应的数据源名称,已经对应的服务器地址和端口信息。我们知道,Ganglia集群的组成类似自包含的结构,亦即,Ganglia集群由主进程gmetad和多个gmond从进程集群组成,而每个gmond从进程集群又存在一个主gmond进程,其他的为从gmond进程,所以上面配置的每个data_source对应的IP:端口可以看成是gmond从进程集群的主gmond进程。

增加grid内容,如下所示:
gridname "My Grid"

增加rrd数据库路径:
rrd_rootdir "/usr/local/ganglia/rrds"

需要保证/usr/local/ganglia/rrds存在,不存在则手动创建,并修改目录属主:
mkdir -p /usr/local/ganglia/rrds
chown nobody:nobody -R /usr/local/ganglia/rrds


安装ganglia-web

执行如下命令:
cd /usr/local/ganglia/
mkdir web
cd web
cp -r /root/ganglia-web-3.6.2.tar.gz ./
tar xvzf ganglia-web-3.6.2.tar.gz
mv ganglia-web-3.6.2 ganglia
cd ganglia
mkdir -p dwoo/compiled
mkdir -p dwoo/cache
chown nobody:nobody -R /usr/local/ganglia/web

修改配置文件/usr/local/ganglia/web/ganglia/conf_default.php,修改内容如下所示:
修改gweb_confdir变量,将
$conf['gweb_confdir'] = "/var/lib/ganglia-web";

修改为:
$conf['gweb_confdir'] = "/usr/local/ganglia/web/ganglia";

修改gmetad_root变量,将
$conf['gmetad_root'] = "/var/lib/ganglia";

修改为:
$conf['gmetad_root'] = "/usr/local/ganglia";

修改rrdtool变量,将
$conf['rrdtool'] = "/usr/bin/rrdtool";

修改为:
$conf['rrdtool'] = "/opt/rrdtool-1.4.7/bin/rrdtool";


安装Nginx

安装Nginx反向代理软件:
tar xvzf nginx-1.6.0.tar.gz
cd nginx-1.6.0
./configure --prefix=/usr/local/nginx
make
make install

修改配置文件/usr/local/nginx/conf/nginx.conf,在server中增加如下配置内容:
location /ganglia/ {
root /usr/local/ganglia/web;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include        fastcgi_params;
}

根据需要修改Nginx的其他配置,例如,可以修改worker_processes的值:
worker_processes  2;

启动Nginx服务:
/usr/local/nginx/sbin/nginx


启动ganglia服务

启动ganglia:
service gmetad start

这时,需要查看一下启动状态:
service gmetad status

如果失败,先停掉服务:
service gmetad stop

然后根据提示信息排查错误,可以查看/var/log/messages来定位错误,修改相应的配置,例如出现错误:
Jul 17 14:01:45 WSKJ_BJPBS-C10_MD08_i10_2013111204 /usr/local/ganglia/sbin/gmetad[9678]: Please make sure that /usr/local/ganglia/rrds is owned by nobody

上面错误说明目录文件/usr/local/ganglia/rrds的属主信息有问题,可以根据提示修改属主即可。

Ganglia Server端作为收集主gmond,所以页要安装gmond端,其他gmond节点都指向这个IP。(安装方法参考后边内容)

Ganglia Server机重启后需要检查一下是否启动:
/usr/local/sbin/php-fpm
/usr/local/nginx/sbin/nginx
service gmetad restart
service gmond restart



Ganglia代理安装配置(ganglia客户端)

Ganglia代理,即gmond进程,用来收集监控数据,需要在待监控的节点上安装配置后才能够正常工作。在每个待监控的节点上安装配置步骤都非常类似,下面介绍安装配置步骤:


安装基础依赖软件包

与安装gmetad类似,首先保证yum源可用,可以查看或者修改,在目录下面/etc/yum.repo.d/可以添加或者修改。接着,就可以执行如下命令安装一些基础依赖软件包:
yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel pkgconfig

如果安装过程中,没有出错,则可以正常进行下一步,如果出现错误,可以根据错误提示安装缺失的软件包,否则可能会影响后面的安装过程。


安装PCRE软件包

tar zxvf pcre-8.33.tar.gz
cd pcre-8.33
./configure --prefix=/usr --libdir=/usr/lib64
make
make install

安装confuse软件包
tar zxvf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls
make
make install



安装配置gmond服务
tar zxvf ganglia-3.6.0.tar.gz
cd ganglia-3.6.0
./configure --prefix=/usr/local/ganglia --enable-gexec --enable-status
make
make install

生成gmond配置文件:
./gmond/gmond -t > /usr/local/ganglia/etc/gmond.conf

修改/usr/local/ganglia/etc/gmond.conf配置文件,根据我们安装配置gmetad配置的data_source “hadoop” 10.10.3.104:8653,需要修改如下内容:
# 指定在gmetad中配置的data_source名称hadoop,对应于这里的cluster的name值
cluster {
name = "hadoop"  ------cluster名称,是你在gmetad.conf里配置的data_source名称
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}

# 修改端口号,与gmetad配置的data_source "hadoop" 10.10.3.104:8649保持一致
udp_send_channel {
#mcast_join = 239.2.11.71   ----- 组播
port = 8649
ttl = 1
}

# 修改端口号,与gmetad配置的data_source "hadoop" 10.10.3.104:8649保持一致
udp_recv_channel {
#mcast_join = 239.2.11.71
port = 8649
#bind = 239.2.11.71  
#retry_bind = true
}

# 修改端口号,与gmetad配置的data_source "hadoop" 10.10.3.104:8649保持一致
tcp_accept_channel {
port = 8653
#gzip_output = no
}

# 修改被监控主机信息
host {
location = "unspecified"    ---(目前未设置)
}

将/root/ganglia-3.6.0/gmond/gmond.init复制到/etc/init.d/目录下,并改名为gmond,执行如下命令:
cp /root/ganglia-3.6.0/gmond/gmond.init /etc/init.d/gmond

修改/etc/init.d/gmond脚本文件,将GMOND=/usr/sbin/gmond修改为/usr/local/ganglia/sbin/gmond

然后,就可以启动gmond进程了,执行如下命令:
service gmond start

查看gmond服务启动状态:
service gmond status

如果希望加入开机启动,可以执行如下命令:
chkconfig --add gmond

至此,就完成了gmond服务的配置,对于其它待监控的节点上,安装配置gmond服务的过程是类似的。


Ganglia集群配置验证


将上面对应的gmetad服务和gmond服务配置完成,启动以后,可以通过查看gmetad服务器的Web监控页面
Ganglia监控Web首页图, IP/ganglia

如果是多个组就是在/usr/local/ganglia/etc/gmetad.conf中配置的3个data_source进行分组统计分析监控数据,
会以为分组的形式展示了一些监控的概要信息,如果想要查看某个data_source更详细的信息,可以直接选择下方的3个蓝色的图标链接,可以看到某个data_source组下多个节点的综合监控数据和图形。

可以继续深入到每个节点中,查看每个节点的监控数据。


排错误
在开启gmond后,gstat -a可以看到所有计算节点的信息。信息应该都是发送过来了。
/usr/local/ganglia/sbin/gmond -d 100
Ganglia有图形界面,但是数据无法显示

请检查gmond和gmetad server的时间,确保一致。可以执行ntpdate time.windows.com

Gmetad和Gmond没有起来
可以执行/usr/local/ganglia/sbin/gmeated -debug=4 查看详细的启动日志

阅读(2877) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~