本篇文章是参考网上别人的博客,加自己实践后记录下来的,免得自己又忘了,感谢互联网的分享精神,感谢大牛们的分享。
ganglia简介
名词说明
引用自此博客介绍
- Metrics- 监控电脑的运行数据
- Node - 一台电脑,或许拥有多个CPU,中文称之为节点。
- Cluster - 一组节点,中文称之为簇。通常节点之间拥有达到G比特的高带宽,簇内通过组播协议,每个节点组播自己的数据,所以每个节点拥有整个簇的状态,这种冗余设计可以提高簇的鲁棒性。一般簇内节点为相同的系统和体系结构,由同一个管理员管理。
- Grid - 一组簇,中文可称之为网格。网格的用处是在一个大范围内把各异构的簇通过宽带汇聚在一起。
Ganglia的各种组成
功能 | 名称及配置文件 | 位置 |
---|---|---|
数据采集器 | 名叫gmond(Ganglia MONitor Daemon)的服务程序,配置文件是/etc/ganglia/gmond.conf | 位于每个Node上 |
数据混合收集器 | 名叫gmetad(Ganglia METAdata Daemon)的服务程序,配置文件是/etc/ganglia/gmetad.conf。它通过轮询收集gmond的数据,并聚合簇的各类信息,然后保存在本地rrdtool的数据库中 | 最好每个cluster都有一个gmetad,以便能构建多级网络 |
Web可视化工具 | 这是用PHP脚本实现的将数据可视化,并画出表格。可以是任何支持PHP、SSL和XML的web服务器。一般都用Apache2 web服务器 | 一般与gmetad部署在一个节点上 |
额外的高级工具 gmetric可以用来添加你需要监控的Node额外状态 | ||
gstat可以直接获得Ganglia的数据 每台需要这些功能的Node上 |
实验环境
机器 | 系统 | 软件 |
---|---|---|
ip1 | centos 7 | gmetad + gmond +ganglia-web 3.7.2 |
ip2 | centos 5 | gmond 3.7.1 |
ip3 | centos 5 | gmond 3.7.1 |
ip4 | centos 5 | gmond 3.7.1 |
ip5 | centos 5 | gmond 3.7.1 |
ip6 | centos 5 | gmond 3.7.1 |
ip7 | centos 5 | gmond 3.7.1 |
ganglia安装配置
安装
- ip1 安装ganglia主节点
- yum -y install epel-release
- yum -y install rrdtool httpd
- yum -y install ganglia-devel ganglia-gmetad ganglia-gmond
- yum -y install php ganglia-web
- ip2-ip7 安装ganglia从节点
- yum -y install epel-release
- yum -y install ganglia-mond
配置
- 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
相关配置文件修改
- 将ganglia-web安装目录链接到httpd主站点目录
将 ganglia-web 的 站 点 目 录 连 接 到 httpd 主 站 点 目 录 $ ln -s /usr/share/ganglia /var/www/html - 修改httpd主站点目录下ganglia站点目录的访问权限
将 ganglia 站点目录访问权限改为 apache:apache,否则会报错
- 将ganglia-web安装目录链接到httpd主站点目录
$ chown -R apache:apache /var/www/html/ganglia $ chmod -R 755 /var/www/html/ganglia
- 修改rrd数据库存放目录访问权限 将 rrd 数据库存放目录访问权限改为
$ chown -R ganglia:ganglia /var/lib/ganglia/rrds
- 修改ganglia-web的访问权限:修改/etc/httpd/conf.d/ganglia.conf
Alias /ganglia /usr/share/ganglia <Location /ganglia> Require all granted #Require ip 10.1.2.3 #Require host example.org </Location>
- 配置/etc/ganglia/gmond.conf
cluster { name = "hadoop cluster" ... } udp_send_channel { #the host who gather this cluster's monitoring data and send these data to gmetad node host = ip1 port = 8649 } udp_recv_channel { port = 8649 } tcp_accept_channel { port = 8649 }
2.2 Hadoop cluster被监测节点的配置 配置/etc/ganglia/gmond.conf
cluster { name = "hadoop cluster" ... } udp_send_channel { # the host who gather this cluster's monitoring data and send these data to gmetad node host = ip1 port = 8649 } udp_recv_channel { port = 8649 } tcp_accept_channel { port = 8649 }
Hadoop配置
主节点:
# 修改/hadoop/etc/hadoop/hadoop-metrics2.properties namenode.sink.ganglia.servers=ip1:8649 resourcemanager.sink.ganglia.servers=ip1:8649 mrappmaster.sink.ganglia.servers=ip1:8649 jobhistoryserver.sink.ganglia.servers=ip1:8649 *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31 *.sink.ganglia.period=10 *.sink.ganglia.supportsparse=true *.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both *.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40
从节点
datanode.sink.ganglia.servers=ip1:8649 nodemanager.sink.ganglia.servers=ip1:8649 *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31 *.sink.ganglia.period=10 *.sink.ganglia.supportsparse=true *.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both *.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40
成果
可以看到有datanode相关信息
注意问题
- ganglia反应有点慢,每次重启后,数据得等一阵子才显示出来。这个也跟设置的有关,10秒一次显示
- 我本来配置每个节点都有gmond,cluster的信息发送到本地的gmond,由gmond发送给gmetad,但是一直不成功。我使用了telnet localhost 8649,能看到数据,但是gmetad就是不显示。暂时也没找到什么原因。
参考
[1] http://wenku.baidu.com/view/ca75df619b89680202d82577.html?re=view
[2] http://blog.cheyo.net/88.html
[3] http://yaoweibin2008.blog.163.com/blog/static/11031392008763256465/
来源:CSDN
作者:seedcup
链接:https://blog.csdn.net/seedcup/article/details/53228684