概述
前段时间自己用两台工作站搭建了一个MPI的运行环境,那如何直观的看到每个节点的负载情况呢,于是就想到了用Ganglia搭建一个集群检测系统,相对比较简单,下面详细介绍一下过程
1、Ganglia概述
Ganglia 是一款为HPC(高性能计算) 集群设计的可扩展性的分布式监控系统,它可以监视和显示集群中节点的各种状态信息,它由运行在各个节点上的守护进程gmond 采集 CPU、内存、磁盘利用率、I/O负载、网络流量情况等方面的数据,然后汇总到守护进程gmetad下,使用rrdtool存储数据,然后将历史数据以曲线方式通过PHP页面呈现,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
Ganglia监控的三大组件:gmond,gmetad和ganlia-web(网页接口) 。
1:gmond:是一个守护进程,需要安装在每台主机上,负责和操作系统交互以获得需要关注的指标数据,运行在每一个需要监测的节点上,收集监测统计 。
2:gmetad:也是一个守护进程,集群数据收集节点,安装在中心节点上,使用Hadoop的NameNode作为该集群数据收集节点。主要作用就是整合所有信息。定期检查所有的gmond,拉取数据,并将他们的指标存储在RRD(Round Robin Database 存储格式,数据等于放在数据库中)存储引擎中。他可以查询多个集群并聚合指标。他也被用于生成用户界面的web前端。
3:ganglia-web:可视化工具,显示ganglia收集的主机各项指标。安装在有gmetad运行的机器上,读取RRD文件( gweb是一种PHP程序,因为需要与轮询器创建的RRD数据库交互,所以gweb通常安装在和gmetad相同的物理硬件上)。
Ganglia分为服务器端和客户端,其中gmetad是服务器端,gmond是客户端。服务器端只有一个,而被监控服务器均安装客户端;
首先配置好源(我用的是Centos7.0版本linux系统),比如epel,centos-base等需要提前配置好,不懂的哥们可以网上查一下,比较简单,这里就不再赘述了。如果已经Hadoop集群管理环境,那么就不用安装了,因为Hadoop中已经集成了Ganglia。
由于我这里只有两台工作站,而且只是简单的用网线进行直连,服务器名和IP分别为:
Ganglia服务器 master(192.168.10.250)
Ganglia客户机 slave(192.168.10.252)
对于服务器需要安装 ganglia-gmetad ganglia-web ganglia-gmond包
客户机只需要安装ganglia-gmond软件包
Linux用yum进行安装比较简单,分别在客户机、服务器上安装相对应的包,安装完成后需要对相应的文件进行配置,具体如下
gmetad.conf 配置监控哪些机器的文件。
ganglia 服务器端
httpd.conf服务器端
gmond.conf 配置受监控机器文件
对于服务器端gmetad.conf 的配置如下
文件内容如下
其中data_source可以如上方式写,也可以写成一个,如:data_source "Master" 192.168.10.250:8650 192.168.10.252:8651,两者的不同之处在于,(Ganglia会把所有东西放在一个Grid里面,也就是一个网格。大的集群,不分组。但是真实的服务器集群有各种功能,每个群分管不同的事务,全放一起就太乱了。也不好识别,所以需要分组使用。引自:https://blog.csdn.net/wang1459818864/article/details/38677771)。个人认为在节点不多的情况下,分组是必要的,如果是一个很大的集群,那确实没有必要,主要是太麻烦。其中要说明的是IP地址冒号后面的那个数字是端口号,需要分组的时候每个数据源的端口号一定要不一样,这里我的数据源有两个,所以就有两个端口号。
下面还需要配置服务器端的ganglia.conf文件
改成如下形式
对httpd.conf文件的配置
配置如下
还有最后一个服务器端的文件gmond.conf
主要是修改以下几个地方
注意此处的name一定要与前面gmetad.conf 文件中的相同,同理在配置slave时也是一样的。
这三处的port即端口号一定是与IP地址冒号后面的端口号一样,否则回来在网页上是登陆不进去的,master的端口是8650。
下面来配置slave上的gmetad.conf 文件
如配置master一样配置就好了,这里就不多说了。
下面要分别在master和slave上面开启服务,具体命令如下:
服务器端运行命令
service gmetad start
service gmond start
service httpd start
service gmetad status
客户机运行命令
service gmetad status
设置开机自启
chkconfig gmetad on
chkconfig gmond on
systemctl enable httpd.service
这样就设置完成了,最后可以通过浏览器进行登陆,登陆方法为:
http://IP/ganglia
即可看到每个节点的运行状态。
存在问题:
安装完成后可能浏览器登陆出现如下问题:
http://192.168.10.250/ganglia
There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error
#查了导致整个报错的原因是linux集群位关闭selinux
#我们可以使用setenforce 命令设置临时关闭selinux,命令如下
setenforce 0
#也可以一劳永逸的改变配置文件彻底关闭selinux,执行下面的命令修改配置
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled,保存重启即可
可参见:https://blog.csdn.net/qq_41698979/article/details/83246690
最后赴图一张,装一下:
就介绍到这里,欢迎大家提出宝贵意见。
参考文献
https://blog.csdn.net/dear_csdn/article/details/76528750
最后
以上就是犹豫大碗为你收集整理的Ganglia集群监控系统搭建的全部内容,希望文章能够帮你解决Ganglia集群监控系统搭建所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复