Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1081951
  • 博文数量: 83
  • 博客积分: 159
  • 博客等级: 上尉
  • 技术积分: 2221
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-15 17:08
个人简介

……致我那曾经苦逼的岁月……

文章分类
文章存档

2018年(1)

2017年(7)

2016年(13)

2014年(1)

2013年(12)

2012年(27)

2011年(22)

分类: 系统运维

2012-07-27 13:34:57

最近研究了一下ganglia监控hadoop集群,大致可以监控hadoop集群中节点的性能。比如CPU、内存、IO、交换分区等。这里就不一一介绍!网上部署监控的文档很多,乱起八糟的也很多,主要是每个人的环境都不一样导致,但是我自己看的还是比较头晕,以至于有的人还直接发布安装脚本,结果可笑的就是脚本拿下来后运行直接报错。这里就不说别人不好的地方了,分享技术是种好事,但是不正确的文档肯定会导致初学者盲目的。所以切记分享技术的时候记得说清楚当时的环境,这里说下我的这个环境吧!
hadoop集群所有节点加起来四台机器,这里我挑slave1作为监控机,另外三台为被监控机。请看下图:
主机名   IP地址          用途       系统版本           软件包安装情况
msater   192.168.15.95   namenode   RedHat4.8(64位)    安装系统所有软件包都已安装
slave1   192.168.15.72   datanode   同上               同上
slave2   192.168.15.71   datanode   同上               同上
slave3   192.168.15.132  datanode   同上               同上
其实ganglia主要分为两个守护进程:
监控机主要跑gmetad进程,apache进程,当然如果你要本机监控本机的话还得跑一个gmond进程。而被监控机主要跑一个gmond进程了。因为监控画面需要画面rrdtool,所以监控机要比被监控机多两个软件,一个是rrdtool,一个是gmetad。
下面是我部署监控端的脚本(经过多次试验肯定问题,随着时间的关系可能有的下载链接失效,这里就烦请各位童鞋自己找链接了哈),提醒下各位如果用系统自带的apache的话,必须是软件包默认都安装好的,你可以在/var/www/html目录下新建php测试页,如果能看见一些信息,就说明apache已经加载了php。这里是linux+apache+php环境。还有记得把你的apache主目录指向/var/www/html目录。
[root@slave1 ~]# more ganglia.sh
#!/bin/bash
#############################################################################################################
mkdir /root/software
cd /root/software
#下载rrdtool并编译安装
wget
tar zxvf rrdtool-1.2.27.tar.gz
cd rrdtool-1.2.27
./configure --prefix=/usr/local/rrdtool
make && make install
#############################################################################################################
cd /root/software
#下载expat并编译安装
wget
tar zxvf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure --prefix=/usr/local/expat
make && make install
#我的是64位操作系统,所以需要拷贝一些链接库文件
mkdir /usr/local/expat/lib64
cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/
#############################################################################################################
cd /root/software
#下载apr并编译安装
wget
tar zxvf apr-1.4.6.tar.gz
cd apr-1.4.6
./configure --prefix=/usr/local/apr
make && make install
cd /root/software
#下载apr-util并编译安装
wget
tar zxvf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure --with-apr=/usr/local/apr --with-expat=/usr/local/expat
make && make install
#我的是64位操作系统,所以需要拷贝一些链接库文件
cp -f /usr/local/apr/include/apr-1/* /usr/local/apr/include/
mkdir -p /usr/local/apr/lib64
cp -a -f /usr/local/apr/lib/* /usr/local/apr/lib64/
#############################################################################################################
cd /root/software
#下载confuse并编译安装
wget
tar zxvf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls --prefix=/usr/local/confuse
make && make install
#我的是64位操作系统,所以需要拷贝一些链接库文件
mkdir -p /usr/local/confuse/lib64
cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/
#####################################################################################################################
cd /root/software
#下载ganglia并编译安装
wget
tar zxvf ganglia-3.1.7.tar.gz
cd ganglia-3.1.7
./configure --prefix=/usr/local/ganglia --with-librrd=/usr/local/rrdtool --with-libapr=/usr/local/apr --with-libexpat=/usr/local/expat --with-libconfuse=/usr/local/confuse --with-gmetad --enable-gexec --enable-status -sysconfdir=/etc/ganglia
make && make install
#####################################################################################################################
#新建ganglia程序目录。
mkdir /var/www/html/ganglia
#将ganglia网页程序放入到新建的文件夹中      
cp -r web/* /var/www/html/ganglia
#新建rrdtool放入图像的地方(程序默认的)
mkdir -p /var/lib/ganglia/rrds
#修改属主属组,如果你不改的话,则页面会显示不出来,一会咱们可以看看!
chown nobody:nobody /var/lib/ganglia/rrds
#拷贝启动脚本到系统默认的路径
cp gmond/gmond.init /etc/rc.d/init.d/gmond
cp gmetad/gmetad.init /etc/rc.d/init.d/gmetad
#拷贝启动文件到系统默认路径
cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad
cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond
#生成默认的gmond.conf文件
gmond -t | tee /etc/ganglia/gmond.conf
#脚本结束
#####################################################################################################################
下面开始修改配置文件了,主要是gmetad.conf和gmond.conf文件
vi /etc/ganglia/gmetad.conf
将这一行修改为你自己定义的源和主机IP
data_source "my cluster" localhost
改为
data_source "Hadoop" 192.168.15.72
保存退出!
vi /etc/ganglia/gmond.conf
将这一行name的值修改为刚刚自己定义的源
cluster {
  name = "unspecified"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}
改为
cluster {
  name = "Hadoop"
  owner = "unspecified"
  latlong = "unspecified"
  url = "unspecified"
}
保存退出!
最后我们修改/var/www/html/ganglia/conf.php
将这行改为我们rrdtool编译的路径,默认是/usr
define("RRDTOOL", "/usr/bin/rrdtool");
改为
define("RRDTOOL", "/usr/local/rrdtool/bin/rrdtool");
基本配置就完成了哈!
下面我们启动看看效果!
[root@slave1 ~]# /etc/init.d/httpd start
Starting httpd: httpd: Could not determine the server's fully qualified domain name, using 192.168.15.72 for ServerName
                                                           [  OK  ]
[root@slave1 ~]# /etc/init.d/gmetad start
Starting GANGLIA gmetad:                                   [  OK  ]
[root@slave1 ~]# /etc/init.d/gmond start
Starting GANGLIA gmond:                                    [  OK  ]
测试用浏览器输入地址/ganglia
这样就基本完成了本机监控本机了!
下面来说两个常见的错误:
这个错误就是rrds属主属组导致的。修改为nobody则重启apache、gmetad、gmond三个服务。
chown nobody:nobody /var/lib/ganglia/rrds
另外一个错误就是图片显示不出来
这个问题就是conf.php文件没有修改导致。把路径指向自己rrdtool编译后安装的目录就OK了!我这里则是/usr/local/rrdtool/bin/rrdtool路径!
大致本机安装ganglia监控本机就这样吧!下节将介绍被监控机部署ganglia脚本。
阅读(7410) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

legend9008052014-02-27 11:20:10

版主你好,非常感谢分享经验,我想问下第一次安装ganglia有好多依赖是不是也要安装,比如pcre,check-devel cairo-devel pango-devel python-devel等等这些,看你的脚本里面也没有说安装这些呢?