- 前言
- 为什么要写这本书
- 读者对象
- 如何阅读本书
- 勘误和支持
- 致谢
- 第一部分 安全运维篇
- 第 1 章 Linux 服务器安全运维
- 第 2 章 Linux 网络安全运维
- 第 3 章 数据安全工具 DRBD、extundelete
- 第二部分 运维故障排查篇
- 第 4 章 Linux 系统运维故障排查思路
- 第 5 章 Linux 故障排查案例实战
- 第三部分 自动化运维篇
- 第 6 章 轻量级运维利器 pssh、pdsh 和 mussh
- 第 7 章 分布式监控系统 Ganglia
- 第 8 章 基于 nagios 的分布式监控报警平台 Centreon
- 第 9 章 通过 Ganglia 与 Centreon 构建智能化监控报警平台
- 第四部分 集群架构篇
- 第 10 章 高性能 Web 服务器 Nginx
- 第 11 章 高性能集群软件 Keepalived
- 第 12 章 千万级高并发负载均衡软件 HAProxy
- 第 13 章 构建高性能的 MySQL 集群系统
- 第 14 章 高性能负载均衡集群软件 HAProxy
7.3 Ganglia 的工作原理
在介绍 Ganglia 的工作原理之前,需要介绍一下在 Ganglia 中经常用到的几个名词,这些是了解 Ganglia 分布式架构的基础。在 Ganglia 分布式结构中,经常提到的几个名词有 node、cluster 和 grid,这三部分构成了 Ganglia 分布式监控系统。
- node:Ganglia 监控系统中的最小单位,即被监控的单台服务器。
- cluster:表示一个服务器集群,由多台服务器组成,是具有相同监控属性的一组服务器的集合。
- grid:表示一个网格。grid 由多个服务器集群组成,即多个 cluster 组成一个 grid。
从上面的介绍可以看出这三者之间的关系:
- 一个 grid 对应一个 gmetad,在 gmetad 配置文件中可以指定多个 cluster。
- 一个 node 对应一个 gmond,gmond 负责采集其所在机器的数据,同时 gmond 还可以接收来自其他 gmond 的数据,而 gmetad 定时去每个 node 上收集监控数据。
7.3.1 Ganglia 数据流向分析
在 Ganglia 分布式监控系统中,gmond 和 gmetad 之间是如何传输数据的呢?接下来介绍 Ganglia 是如何实现数据的传输和收集的。图 7-3 是 Ganglia 的数据流向图,也是 Ganglia 的内部工作原理。
图 7-3 Ganglia 数据流向图
下面简述下 Ganglia 基本运作流程。
1)gmond 收集本机的监控数据,发送到其他机器上,并收集其他机器的监控数据,gmond 之间通过 UDP 通信,传递文件格式为 XDL。
2)gmond 节点间的数据传输方式支持单播点对点传送外,还支持多播传送。
3)gmetad 周期性地到 gmond 节点或 gmetad 节点上获取(poll)数据,gmetad 只有 TCP 通道,因此 gmond 与 gmetad 之间的数据都以 XML 格式传输。
4)gmetad 既可以从 gmond 也可以从其他的 gmetad 得到 XML 数据。
5)gmetad 将获取的数据更新到 rrds 数据库中。
6)通过 Web 监控界面,从 gmetad 取数据,并且读取 rrds 数据库,生成图片显示出来。
7.3.2 Ganglia 工作模式
Ganglia 的收集数据工作可以在单播(unicast)或多播(multicast)模式下进行,默认为多播模式。
- 单播:每个被监控节点发送自己收集到的本机数据到指定的一台或几台机器上。单播模式可以跨越不同的网段。如果是多个网段的网络环境,就可以采用单播模式采集数据。
- 多播:每个被监控节点发送自己收集到的本机数据到同一网段内所有的机器上,同时也接收同一网段内的所有机器发送过来的监控数据。因为数据是以广播包的形式发送,因此这种模式需要所有主机在同一网段内。但在同一网段内,又可以定义不同的发送通道。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论