前段时间自己用两台工作站搭建了一个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集群监控系统搭建相关推荐

  1. RocketMQ 实战 集群监控平台搭建

    RocketMQ 实战 集群监控平台搭建 概述 RocketMQ有一个对其扩展的开源项目incubator-rocketmq-externals,这个项目中有一个子模块叫rocketmq-consol ...

  2. rocketmq-console集群监控平台搭建

    集群监控平台搭建 概述 RocketMQ有一个对其扩展的开源项目incubator-rocketmq-externals,这个项目中有一个子模块叫rocketmq-console,这个便是管理控制台项 ...

  3. kafka 集群_Kafka集群监控系统Kafka Eagle部署与体验

    Kafka Eagle是一款开源的Kafka集群监控系统 能够实现broker级常见的JMX监控: 能对consumer消费进度进行监控: 能在页面上直接对多个集群进行管理: 安装方式简单,二进制包解 ...

  4. 运维必备:ganglia集群监控服务端及客户端配置实战

    0x01.前言 Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点.Ganglia的核心包含gmond.gmetad以及一个Web前端.主要是用来监控系统性能 ...

  5. vivo 容器集群监控系统架构与实践

    vivo 互联网服务器团队-YuanPeng 一.概述 从容器技术的推广以及 Kubernetes成为容器调度管理领域的事实标准开始,云原生的理念和技术架构体系逐渐在生产环境中得到了越来越广泛的应用实 ...

  6. 如何构建 HBase 集群监控系统?

    2019独角兽企业重金招聘Python工程师标准>>> 公司有自己的监控系统,我们所要做的就是将 HBase 中我们关心的指标项发送到监控系统去,问题就转换为我们开发,采集并返回哪些 ...

  7. Ganglia集群监控

    介绍 Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于监控数以千计的节点.Ganglia主要是用来监控系统性能,如:cpu.mem.硬盘利用率,I/O负载.网络流量情况等,通 ...

  8. 集群监控系统的设计方案

    2019独角兽企业重金招聘Python工程师标准>>> 背景 一个项目发展了一段时间以后,总会分成为数众多的子应用,各自以集群的形式部署在不同的服务器上.当部署的应用多了以后,整个集 ...

  9. 构建一套高逼格 Nginx 集群监控系统!

    点击关注公众号,实用技术文章及时了解 搭建了Nginx集群后,需要继续深入研究的就是日常Nginx监控. Nginx如何监控?相信百度就可以找到:nginx-status 通过Nginx-status ...

最新文章

  1. Revit结构2021专业人士的选择:从入门到专业
  2. SAP零售行业解决方案初阶 4 – 维护品类
  3. Windows Mobile使用Shared Memory(共享内存)进行IPC(进程间通信)的开发
  4. mysql 查询 字段是否为空
  5. Chrome浏览器扩展开发系列之五:Page Action类型的Chrome浏览器扩展
  6. Bugku密码学(一)
  7. Pandas的学习(1.pandas的介绍以及pandas中的Series的创建)
  8. 分享几款linux的歌词插件
  9. 删除Linux下/tmp目录引起的不正常登录系统
  10. .NET应用迁移到.NET Core--调查案例
  11. 计算机考试一级考试基础知识,全国计算机等级考试一级msoffice基础知识
  12. [转]js实现简单的双向数据绑定
  13. 【Python CheckiO 题解】Date and Time Converter
  14. 开发指南专题八:JEECG微云快速开发平台数据字典
  15. python os模块手册_Python OS模块常用函数说明
  16. 2020 第十一届蓝桥杯大赛软件赛省赛(第一场),C/C++大学B组题解
  17. 探索性测试在哪里适合?
  18. 复联4里的钢铁侠原型是谁?(剧透警告慎入)
  19. csgo连接到任意官方服务器失败删除文件,CSGO连接到官方任意服务器失败怎么办...
  20. 时间序列分析——第三章 资产收益率序列

热门文章

  1. 必须要熬夜的时候的最佳伴侣是什么?亲测有效
  2. jQuery dataTables 的使用
  3. SpringBoot从介绍到各个框架的整合
  4. 2018.11.03-dtoj-3130-流浪者(rover)
  5. 简单介绍--TOSCA自动化测试工具
  6. poj 2683 Ohgas#39; Fortune 利率计算
  7. iOS6和iOS7代码的适配(1)
  8. hello!everyone.大家好,我是新人
  9. CentOs下php连mssql并配置unixODBC
  10. const char * 和 char const * 和 char * const 区别