易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 4361|回复: 0
收起左侧

Ganglia监控工具部署

[复制链接]
发表于 2017-8-31 22:36:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x

对于监控系统,之前已经有过两个系列的文章,分别对ZabbixPrometheus做了简要的架构介绍和部署方式详解。本文对于本人玩儿过的第三种分布式文件系统监控工具——Ganglia的使用理由、系统架构和集群部署作详尽的介绍。

概述

Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的中文意思是神经中枢,现在支持多部分操作系统(包括linux、unix、windows),可支持2000个节点的网络监控(当然这不是上限,只是一个大集群使用的范例)。

Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。


为什么使用Ganglia

Ganglia是一种分布式监控系统。ganglia的设计便是基于大型集群进行设计的。主要体现在数据的获取方式以及分层设计。主要有以下三个优点:

  • 部署的方便性:ganglia类似与nagios的部署方式会更简单,更方便。有利于后期的大规模扩张;
  • 数据获取方式:Ganglia本身就是为集群监控进行设计的,这体现在其数据的获取方式(客户端主动推送)以及分层设计(node cluster grid);
  • 通信方式以及冗余:Ganglia通过组播进行数据交互,配置得当,可以实现冗余避免单点故障。另外,同样由于组播,数据可以在客户机本地进行存放的(安装rrdtool)。
    , w- I; O3 x9 T) _8 A2 d

Ganglia体系结构

Ganglia底层使用RRDTool获得数据,Ganglia主要分为两个进程组件:

  • gmond(ganglia monitor deamon):组播包的发送和接受。发送本地信息,接受其他节点信息
  • gmetad(ganglia metadata deamon):从监听节点轮询出数据,并对数据进行聚合、存储7 o0 _; J" L9 C, ]/ n

除这两个Daemon进程外,Ganglia还依赖其他三个组件提供可视化和数据持久化的服务:

  • Ganglia网页:提供ganglia的访问页面
  • rrdtool: 数据存储以及提供画图功能
  • Apache与php:网站功能,对ganglia提供的网页进行解析
    * a/ _9 Y- ?. v" N2 k

其中,gmond运行在集群每个节点上,收集RRDTool产生的数据;gmetad运行在监控服务器上,收集每个gmond的数据。Ganglia还提供了一个PHP实现的web front end,一般使用Apache2作为其运行环境,通过Web Front可以看到直观的各种集群数据图表。

Ganglia的层次化结构做的非常好,由小到大可以分为node -> cluster -> grid,这三个层次:

  • 一个node就是一个需要监控的节点,一般是个主机,用IP表示。每个node上运行一个gmond进程用来采集数据,并提交给gmetad;
  • 一个cluster由多个node组成,就是一个集群,我们可以给集群定义名字。一个集群可以选一个node运行gmetad进程,汇总/拉取gmond提交的数据,并部署web front,将gmetad采集的数据用图表展示出来;
  • 一个grid由多个cluster组成,是一个更高层面的概念,我们可以给grid定义名字。grid中可以定义一个顶级的gmetad进程,汇总/拉取多个gmond、子gmetad提交的数据,部署web front,将顶级gmetad采集的数据用图表展示出来。' m( G8 v$ R/ R  v5 H6 p

显然,这种方式非常灵活,可以实现多种结构的数据监控。由下图,我们可以清晰的看出这种层次化的结构,和不同的部署方式。


集群部署

在这里,仅介绍ubuntu上的部署方式,因为很简单!只需要安装两个包:ganglia-monitor和ganglia-webfrontend。其中ganglia-webfrontend只需要安装在提供页面展示的服务器上,并且如果你的ubuntu没有PHP和Apache2环境的话,它也会自动帮你安装。

在这里我直接介绍多播(ganglia默认的方式,此外还支持单播)方式的集群部署,至于单机的方式,其实只要把ganglia-monitor和ganglia-webfrontend装在一台机器上就可以了。

集群环境

gmond:4台(192.168.1.101、192.168.1.102、192.168.1.103、192.168.1.104)
3 S* P$ S5 A9 [gmetad + ganglia web:1台(192.168.1.104)0 s; |: `+ M* D0 v& V6 L
操作系统:Ubuntu 14.04

部署过程

在192.168.1.101、192.168.1.102、192.168.1.103这三台仅运行gmond的节点上安装ganglia-monitor:

sudo apt-get install ganglia-monitor
. o) d$ Q- h! Z3 l
1" p! P/ W$ R3 r5 a) m
( C& d' C4 O+ V

在192.168.1.104这台包含所有ganglia服务的节点上安装gmetad、rrdtool、ganglia-monitor和ganglia-webfrontend,这个过程会默认为没有Apache和PHP的环境的系统安装Apache2和PHP:

sudo apt-get install ganglia-webfrontend ganglia-monitor gmetad rrdtool

在ganglia-webfrontend安装完毕后,ganglia-webfrontend这个包默认会将Web相关的代码安装在”/usr/share/ganglia-webfrontend/”路径下,这样apache访问不到。因此,可以使用软链接,或者直接将目录移到”/var/www/”目录下:

sudo ln -s /usr/share/ganglia-webfrontend/ /var/www/ganglia

或者:

sudo mv /usr/share/ganglia-webfrontend/ /var/www/ganglia
配置

配置gmond:打开/etc/ganglia/gmond.conf 修改 cluster name :

cluster {
    name = "ganglia"
    owner = "root"
    latlong = "unspecified"
    url = "unspecified"
}

配置gmetad:打开/etc/ganglia/gmetad.conf 添加数据源网格名称:

data_source "ganglia" localhost
data_source "another source" 1.3.4.7
gridname "MyGrid"
启动

重启192.168.1.104的gmated和httpd:

service gmetad restart
3 g) M7 T2 o0 }( S, Qservice httpd restart4 O7 ?7 L7 p( m- z- [" i

重启每个节点的gmond:

service gmond restart
页面

完成以上工作后,ganglia的部署就完成了,现在你可以在192.168.1.104上直接打开浏览器访问http://localhost/ganglia ,就能看到图形界面了,或者你可以通过IP直接访问,如果修改了端口记得加上新端口访问。


0 }. B5 s( K: F0 C$ P+ v* z
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 23:51 , Processed in 0.189747 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

快速回复 返回顶部 返回列表