ganglia安装配置

环境:

系统
CentOS 6.0
hadoop集群中有3台服务器
server01 -> master 192.168.255.128
server02-> slave 192.168.255.130
server03 -> slave192.168.255.131

软件仓库 epel

直接使用epel源中的ganglia(自己编译安装有点小麻烦)。

1. 安装epel源


  1. wgethttp://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm-P/usr/local/src
  2. rpm-ivh/usr/local/src/epel-release-6-5.noarch.rpm
  3. rpm--import/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

2. ganglia服务端安装gemtad和gmond


  1. yuminstallgangliaganglia-develganglia-gmetadganglia-gmondganglia-webganglia-gmond-python

会自动安装相应的依赖包。

3. 其他服务器(作为客户端)只需安装gmond


  1. yuminstallgangliaganglia-gmond

4. 配置ganglia的gemtad


  1. cd/etc/ganglia
  2. vigmetad.conf
  3. data_source"ganglia_hadoop"192.168.255.128192.168.255.130192.168.255.131

修改数据源data_source这一行即可。

data_source "name" ip01:port01 ip02:port02 ...

说明:后面这些IP地址就是进行监控的主机,冒号后面跟的是要监听的端口号(默认为8649)。

启动服务


  1. servicegmetadstart
  2. chkconfiggmetadon

5. 所有服务器配置客户端gmond(使用多播)


  1. vi/etc/ganglia/gmond.conf
  2. cluster{
  3. name="ganglia_hadoop"
  4. ...

只需将集群的name设置为gmetad中data_source设置的名字即可。

启动服务


  1. servicegmondstart

6. 配置nginx


  1. vi/usr/local/nginx/conf/vhosts/ganglia.conf
  2. server
  3. {
  4. listen80;
  5. server_name域名;
  6. indexindex.htmlindex.htmindex.php;
  7. root/usr/share/ganglia;
  8. location~^(.*)\/\.svn\/
  9. {
  10. denyall;
  11. }
  12. location~.*\.(php|php5)?$
  13. {
  14. #fastcgi_passunix:/tmp/php-cgi.sock;
  15. fastcgi_passphp_server01;
  16. fastcgi_indexindex.php;
  17. includefcgi.conf;
  18. }
  19. location~.*\.(gif|jpg|jpeg|png|bmp|swf)$
  20. {
  21. expires30d;
  22. access_logoff;
  23. }
  24. location~.*\.(js|css)?$
  25. {
  26. expires1h;
  27. access_logoff;
  28. }
  29. log_formatganglia'$remote_addr-$remote_user[$time_local][$request_time]"$request"'
  30. '$status$body_bytes_sent"$http_referer"'
  31. '"$http_user_agent"$http_x_forwarded_for';
  32. access_logoff;
  33. }

主目录为:/usr/share/ganglia

可以添加通过nginx设置用户名密码访问和限制IP访问。

访问http://域名

会报错:

Notice: Undefined variable: private in /usr/share/ganglia/auth.php on line 27

因为我的php-fpm的运行用户为nobody,程序auth.php中fopen打开的文件为private_clusters,链接到/etc/ganglia/private_clusters,查看文件的拥有者


  1. ls-l/etc/ganglia/private_clusters
  2. -rw-r-----1rootapache1222Feb172010/etc/ganglia/private_clusters

组拥有者为apache,修改组为php-fpm运行的用户即可。


  1. chownroot:nobody/etc/ganglia/private_clusters

7. 监控hadoop

我使用的hadoop的版本为hadoop-0.20.205.0.tar.gz,ganglia的配置文件已经修改为hadoop-metrics2.properties

修改配置文件


  1. vi $HADOOP_HOME/conf/hadoop-metrics2.properties
  2. #forGanglia3.1support
  3. *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
  4. *.sink.ganglia.period=10
  5. #defaultforsupportsparseisfalse
  6. *.sink.ganglia.supportsparse=true
  7. *.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both
  8. *.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40
  9. namenode.sink.ganglia.servers=239.2.11.71:8649
  10. datanode.sink.ganglia.servers=239.2.11.71:8649
  11. jobtracker.sink.ganglia.servers=239.2.11.71:8649
  12. tasktracker.sink.ganglia.servers=239.2.11.71:8649
  13. maptask.sink.ganglia.servers=239.2.11.71:8649
  14. reducetask.sink.ganglia.servers=239.2.11.71:8649

只需要将ganglia段落中的相关注释取消即可。

注意:需要根据你的ganglia的版本来选择注释以下哪一行

# for Ganglia 3.0 support
# *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink30
#
# for Ganglia 3.1 support
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31

需要修改hadoop集群中所有的服务器的hadoop-metrics2.properties文件

重启hadoop


  1. stop-all.sh
  2. start-all.sh

8. 查看ganglia的监控页面将会看到相关的监控信息

如:dfs.dataname metrics

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值