||
阅读导航
1.yum或者apt-get安装
2.源码安装
上面两种安装方式都可以,但是在线安装的版本可能比较老,如果想使用新版本,建议使用离线安装,特别是gweb的显示,老版本比较丑陋。
安装过程中用到包 http://yunpan.cn/cZHMtbsGkwLKG 访问密码 242b
安装前环境准备:
检查系统的运行状态(否则运行会报错)
1)防火墙的状态
service iptables status
关闭防火墙
service iptables stop
chkconfig iptables off
2)关闭selinux
sestatus 查看运行状态
如果是运行状态,编辑 cat /etc/selinux/config
修改该属性 SELINUX=disabled然后重启即可。
上面是永久生效的方法,还有一种是立即生效 运行getenforce 0(我没有运行成功)
3)相关配置文件说明:
ganglia 配置文件目录:/etc/ganglia
rrd 数据库存放目录:/var/lib/ganglia/rrds
httpd 主站点目录:/var/www/html
ganglia-web 安装目录:/usr/share/ganglia
ganglia-web 配置目录:/etc/httpd/conf.d/ganglia.conf
1 yum或者apt-get安装由于我的机器是Centos6.5的,所以我这里只介绍yum安装方式,apt-get安装和这差不多,只是命令不一样而已。
1)检查ganglia相关包是否存在
rpm -qa |grep ganglia
我这里已经有了,是3.1.7版本的
如果没有,请运行下面代码更新资源
rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
2)安装gmond
在每个需要监控的节点,安装gmond
yum install ganglia-gmond
配置/etc/ganglia/gmond.conf文件
Global区域的修改,只需要修改user以及send_metadata_interval
(由于我这里是3.6版本,可能有些属性你的没有,没关系)
Cluster区域,修改name名称,这个是集群名称,用于后面gmetad的配置
Udp_send_channel区域,注释掉mcasy_jion(用于组播),我们这里采用单播,10.3.1.35替换成你机器的名称
Udp_recv_channel注释掉mcast_join以及bind即可
到这里就安装好了,启动service gmond start
然后可以在本节点运行 telnet localhost 8649
如果出现如下图,xml内容则安装正确,接着往下安装
也可以将gmond.conf中的debug从0改为100,看更多的日志,然后进行排查。
3)安装gmetad
这个只需要安装在apache服务器的那个节点即可。
yum install ganglia-gmetad
配置 /etc/ganglia/gmetad.conf,找到data_source,第一个参数hadoop-cluster和gmond.conf的cluster的name必须一样,第二个参数和upd_send_channel中的host一样,当然可以有很多个,我这里配置了一个,结合你配置的环境。
然后运行 service gmetad start
测试 telnet localhost 8651 出现和上面测试gmond的情况一样,那么安装成功。
4)安装gweb
yum install ganglia-web
修改ganglia-web 的访问权限:修改/etc/httpd/conf.d/ganglia.conf
Alias /ganglia /usr/share/ganglia
<Location /ganglia>
Order deny,allow
# Deny from all
# Allow from 127.0.0.1
# Allow from ::1
Allow from all
# Allow from .example.com
</Location>
5)安装apache服务器以及php
yum install httpd php
将ganglia-web 安装目录链接到httpd 主站点目录(apache服务器访问的根目录)
$ ln -s /usr/share/ganglia /var/www/html
修改httpd 主站点目录下ganglia 站点目录的访问权限
将ganglia 站点目录访问权限改为apache:apache,否则会报错
$ chown -R apache:apache /var/www/html/ganglia
$ chmod -R 755 /var/www/html/ganglia
修改rrd 数据库存放目录访问权限
将rrd 数据库存放目录访问权限改为nobody:nobody,否则会报错
$ chown -R nobody:nobody /var/lib/ganglia/rrds
6)启动httpd
访问hostname/ganglia即可(这里的hostname是安装gweb以及gmetad的主机名或者ip)
2 下载各种源码包安装
1)安装依赖包
yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpmbuild glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel libart_lgpl libpng
2) 安装expat
下载expat-2.0.1.tar.gz
tar -xzvf expat-2.0.1.tar.gz
./configure --prefix=/usr/local/expat
make
make install
对于64位操作系统,需要手动的拷贝下动态链接库到lib64下
mkdir /usr/local/expat/lib64
cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/
3)安装apr以及apr-util
tar -xvzf apr-1.3.12.tar.gz
./configure --prefix=/usr/local/apr
make
make install
tar xvjf apr-util-1.3.12.tar.bz2
../configure --with-apr=/usr/local/apr --with-expat=/usr/local/expat
make
make install
同样64位机器需要拷贝动态链接库
cp /usr/local/apr/include/apr-1/* /usr/local/apr/include/
mkdir -p /usr/local/apr/lib64
cp -af /usr/local/apr/lib/* /usr/local/apr/lib64
4)安装confuse
下载包:
wget http://download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz
tar -xzvf confuse-2.7.tar.gz
cd confuse-2.7
./configure CFLAGS=-fPIC --disable-nls --prefix=/usr/local/confuse
make
make install
5)安装rrdtool
下载
wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.8.tar.gz
cd rrdtool-1.4.8
./configure --prefix=/usr/local/rrdtool
make
make install
然后运行
/usr/local/rrdtool/bin/rrdtool
可以看到
安装就成功了
6)安装 ganglia
现在才是安装ganglia的开始,如果提示需要pcre的话,安装下 yum install pcre 下载ganglia-3.2.6,解压,安装
tar -xzvf ganglia
./configure --with-librrd=/usr/local/rrdtool --with-gmetad --prefix=/usr/local/ganglia --with-libconfuse=/usr/local/confuse --enable-gexec
如果出现下图所示,则正确
如果没有,请查看下面出错情况:
出现的问题:
A.libconfuse
Checking for confuse
checking for cfg_parse in -lconfuse... no
Trying harder including gettext
checking for cfg_parse in -lconfuse... no
Trying harder including iconv
checking for cfg_parse in -lconfuse... No
解决: yum install libconfuse-devel
B.pcre
checking pcre/pcre.h usability... no
checking pcre/pcre.h presence... no
checking for pcre/pcre.h... no
checking pcre.h usability... no
checking pcre.h presence... no
checking for pcre.h... no
checking for pcre_compile in -lpcre... no
解决:yum install pcre*
解决好上述问题运行下面命令:
make
make install
7)配置gmond(由于需要在每台机器安装gmond,则每台机器都要安装)
拷贝gmond服务启动脚本
cp /opt/soft_tar/ganglia-3.6.0/gmond/gmond.init /etc/rc.d/init.d/gmond
创建配置文件主目录
mkdir /etc/ganglia
拷贝gmond命令道/usr/sbin目录下
cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond
生成gmond服务配置文件
gmond -t | tee /etc/ganglia/gmond.conf
加入gmond 服务
chkconfig --add gmond
配置 /etc/ganglia/gmond.conf
红色部分发生改动
globals {
daemonize = yes
setuid = yes
user = ganglia //运行ganglia用户
debug_level = 0
max_udp_msg_len = 1472
mute = no
deaf = no
allow_extra_data = yes
host_dmax = 86400 /*secs. Expires (removes from web interface) hosts in 1 day */
host_tmax = 20 /*secs */
cleanup_threshold = 300 /*secs */
gexec = no
send_metadata_interval = 15 /*多少秒发送一次 */
}
cluster {
name = "mycluster"//集群名称,要与gmetad.conf名称一致
owner = "unspecified"//集群用户名称
latlong = "unspecified"
url = "unspecified"
}
host {
location = "unspecified"
}
udp_send_channel {
#mcast_join = 239.2.11.71//注释掉用单播
host = 10.2.1.35//gmetad的机器
port = 8649
ttl = 1
}
udp_recv_channel {
#mcast_join = 239.2.11.71
port = 8649
#bind = 239.2.11.71
retry_bind = true
}
启动gmond
运行 service gmond start 启动gmond
出现'/usr/local/ganglia/etc/gmond.conf' not found
解决
ln -s /etc/ganglia/gmond.conf /usr/local/ganglia/etc/gmond.conf
或者gmond --default_config > /etc/ganglia/gmond.conf
重新启动gmond:service gmond restart.
测试数据
在gmetad机器上运行 tcpdump -i eth0 udp port 8649,或者telnet localhost 8649
8)配置gmetad
1)同上配置环境
cp gmetad/gmetad.Init /etc/rc.d/Init.d/gmetad //拷贝gmetad服务启动脚本
mkdir /etc/ganglia //创建配置文件主目录
cp gmetad/gmetad.conf /etc/ganglia/ //拷贝gmetad服务配置文件
mkdir -p /var/lib/ganglia/rrds //创建rrd文件存放目录
cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad
chkconfig --add gmetad
chown nobody:nobody /var/lib/ganglia/rrds //属主和属组都为nobody
chkconfig --add gmetad
cp /opt/soft_tar/ganglia-3.6.0/gmetad/gmetad.conf /etc/ganglia/
2) 配置gmetad.conf
data_source "mycluster" 10.2.1.80
3) 启动gmetad
service gmetad start
可以运行 telnet localhost 8651查看是否正常启动
9)安装php以及apache
PHP程序需要依赖Apache来运行,因此需要安装如下依赖
1)安装
yum -y install php httpd
2)启动
service httpd start //启动httpd 服务
3)测试php
vi /var/www/html/index.php
输入:
<?php
phpinfo();
?>
保存,然后浏览器 master/index.php
10安装ganglia-web
下载,解压
wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia-web/3.6.2/ganglia-web-3.6.2.tar.gz
解压
cd ganglia-web-3.6.2
vim Makefile源文件
修改如下
执行make install
最后在/var/www/html/ganglia文件夹下,
cp conf_default.php conf.php
vim conf.php,修改
这里修改为本地安装的rrdtool的bin路径
11)修改rrds路径的权限
chown -R nobody:nobody /var/lib/ganglia/rrds
chmod -R 755 /var/lib/ganglia/rrds
12)启动gmond gmetad httpd访问即可
3 集成hadoop,hbase到ganglia中
1)配置hadoop
在${HADOOP_HOME}/etc/hadoop/hadoop-metrics2.properties中 把原来的全部注释掉,加上下面的,重启启动即可
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
*.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
*.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40
namenode.sink.ganglia.servers=server-35:8649
resourcemanager.sink.ganglia.servers=server-35:8649
datanode.sink.ganglia.servers=server-35:8649
nodemanager.sink.ganglia.servers=server-35:8649
maptask.sink.ganglia.servers=server-35:8649
reducetask.sink.ganglia.servers=server-35:8649
2)配置Hbase
在${HADOOP_HOME}/etc/hadoop/hadoop-metrics2-hbase.properties中 把原来的全部注释掉,加上下面的,重启启动即可
.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
hbase.sink.ganglia.period=10
hbase.sink.ganglia.servers=server-35:8649