返回介绍

7.3 Ganglia 的工作原理

发布于 2025-04-21 21:33:22 字数 1560 浏览 0 评论 0 收藏

在介绍 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。