Ganglia 易于扩展的监控系统
前言
Ganglia,它是一个易于扩展的监控系统。使用它可以实时查看 Linux 服务器和集群(图形化展示)中的各项性能指标
Ganglia 能够让你以集群(按服务器组)和网格(按地理位置)的方式更好地组织服务器
可以创建一个包含所有远程主机的网格,然后将那些机器按照其它标准分组成小的集合
此外, Ganglia 的 web 页面对移动设备进行过优化,也允许你导出 csv 和 .json 格式的数据
安装
启用 EPEL 仓库 ,然后安装 Ganglia 和相关工具
主节点
1 | yum -y install epel-release |
监控节点
1 | yum -y install epel-release |
ganglia-gmetad
一个守护进程,用来收集被监控主机的数据
被监控主机与主节点主机都要安装ganglia-gmond
ganglia-web
提供 Web 前端,用于显示监控系统的历史数据和图形
基本认证
使用 Apache 提供的基本认证功能,为 Ganglia Web 界面(/usr/share/ganglia)配置身份认证
为完成这个目标,我们需要创建一个用户名并设定一个密码,以访问被 Apache 保护的资源
在本例中,我们先来创建一个叫 adminganglia 的用户名,然后给它分配一个密码,它将被储存在 /etc/httpd/auth.basic(可以随意选择另一个目录 和/或 文件名, 只要 Apache 对此有读取权限就可以。)
htpasswd -c /etc/httpd/auth.basic adminganglia
给 adminganglia 输入两次密码完成密码设置
修改配置文件 /etc/httpd/conf.d/ganglia.conf
1 | Alias /ganglia /usr/share/ganglia |
修改 gmetad.conf
编辑 /etc/ganglia/gmetad.conf
首先,使用 gridname
指令来为网格设置一个描述性名称
1 | gridname "Home office" |
然后,使用 data_source 指令,后面跟集群名(服务器组)、轮询时间间隔(秒)、主节点主机和被监控节点的 IP 地址
1 | data_source "Labs" 60 192.168.0.29:8649 192.168.0.30 192.168.0.31 |
修改 gmond.conf
编辑 /etc/ganglia/gmond.conf
确保集群的配置类似下面
指定集群名字
1 | cluster { |
每个节点写自己的主机名
1 | host { |
在 udp_send_channel
中,注释掉 mcast_join
,并指向 gmetad 主机
1 | udp_send_channel { |
在 udp_recv_channel
中,注释掉 mcast_join
和 bind
部分
1 | udp_recv_channel { |
关闭防火墙
1 | systemctl stop firewalld |
启动服务
启动 Apache、gmetad、gmond,并确保它们启用了“开机启动”。
1 | systemctl start httpd gmetad gmond |
至此,我们现在能够打开 Ganglia 的 Web 页面 http://192.168.0.29/ganglia 并用步骤 2 中设置的凭证登录
收集 Hadoop 集群 metric
因为我用的是 CDH 版本的Hadoop。所以这里以CDH为例,Apache 版的网上好多。自行搜索
根绝官方文档可以知道
主页->配置->高级配置代码段->搜索Metrics->Hadoop 度量 2 高级配置代码段(安全阀)
1 | *.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31 |
把 IP 改成你自己的 gmetad IP,然后重启
选择某个Node具体观察,可以看到已经收集到了HDFS和YARN的度量数据
参考链接