Ganglia_简述

Ganglia_简述一 Ganglia 概述规模的问题 Ganglia 的运行和绝大多数监控系统是不一样的 Ganglia 设计最大的考虑就是为了解决规模的问题 主机即监控系统基于冗余的结构 Ganglia 假设用户主机存在冗余 或至少按照某种意义进行分组 Ganglia 是否适合基于以下一些前提 拥有一些装有多用途操作系统的计算机 如非路由器 交换机等 并且希望获得它们近实时的性能信息 实际上 结合 sFlow 代理

一、Ganglia概述

  1. 规模的问题

    Ganglia的运行和绝大多数监控系统是不一样的, Ganglia设计最大的考虑就是为了解决规模的问题。

  2. 主机即监控系统
  3. 基于冗余的结构

    Ganglia 假设用户主机存在冗余,或至少按照某种意义进行分组。

  4. Ganglia是否适合基于以下一些前提:
  5. Ganglia在结构上由三种守护进程组成gmond 、gmetad和gweb。在操作上,每种守护进程都是独立的,运行时只需要自己的配置文件来操作即可,任意守护进程在缺少其他两种守护进程的情况下也可以正常启动和运行。然而, 三者在结构上又是相互协作的,需要同时使用才能发挥功效。
  6. gmond
  7. gmetad:整合所有信息
  8. gweb
    Ganglia可视化工具——gweb无需用户进行任何自定义设置即可便捷、及时地访问网络中任意一台主机的任意一种指标数据。

二、Ganglia的安装和配置

  1. 安装gmond
    gmond ( Ganglia Monitoring Daemon )是一种轻量级服务,安装在每台需要收集指标数据的节点主机上。gmond在每台主机上完成实际意义上的指标数据收集工作,并通过侦听/通告协议和集群内其他节点共享数据。使用gmond ,可以很容易收集很多系统指标数据,如CPU 、内存、磁盘、网络和活跃进程的数据等。

    Debian Linux:sudo apt-get install ganglia-monitor RPM Linux:yum installganglia-gmond 
  2. 安装gmetad
    gmetad ( Ganglia Meta Daemon )是一种从其他gmetad或gmond源收集指标数据,并将其以RRD格式存储至磁盘的服务。gmetad为从主机组收集的特定指标信息提供了简单的查询机制,并支持分级授权,使得创建联合监测域成为可能。

    Debian Linux:sudo apt-get install gmetad RPM Linux:sudo yum install ganglia-gmetad 
  3. 安装gweb
    完整的Ganglia不能缺少网络接口: gweb ( Ganglia Web ) 。为了评估集群的运行状态,在收集多种不同指标数据后,我们需要这些指标数的展现形式可视化,更希望能够在Web界面中以图表方式展现。gweb 由此应运而生。gwe b是一种利用浏览器显示gmetad所存储数据的PHP前端。

    Debian Linux:apt-get install apache2 php5 php5-json 

    如果执行以上命令后,gweb还不能运行,执行以下命令以启动PHP JSON模块:

    grep ^extension=json.so /etc/php5/conf.d/json.ini 

    如果该模块还不能运行,执行以下命令:

    echo ‘extension=json.so’ >> /etc/php5/conf.d/json.ini 

    接下来下载最新版本的gweb(https ://ganglia.info/download),解压并编译Makefile来安装gweb:

    tar -xvzf ganglia-web-major.minor.release.tar.gz cd ganglia-web-major.minor.release 

    编译Makefile并设置变量DESTDIR和APACHE_USER。在Debian Linux上,默认设置为:

    # Location where gweb should be installed to
    DESTDIR = /var/www/html/ganglia2
    APACHE USER =WWW-data
    ...
    

    最后,运行以下命令:

    make install 
  4. Ganglia的配置

    多播并不是所有拓扑所必需的。在多播不适用的情况下,这种单发/单收拓扑可以使用UDP单播来实现。

    配置文件:

    命令:gmond -t 
    data source ” my cluster" 10 localhost my.machine.edu:8649 1.2.3.5:8655 data_source "my grid" 50 1.3.4,7:8655 grid.org:8651 grid-backup.org:8651 data source ” another source” 20 1.3.4,8:8655 1.3,4,8 
  5. 启动进程
    ①如果使用UDP单播拓扑,首先启动UDP汇聚节点,以确保它在其他节点首次传输元数据时处于侦听状态
    ②启动所有其他gmond程序。
    ③如果使用rrdcached ,启动所有rrdcached程序。
    ④启动层次结构中最低级别的gmetad程序
    ⑤按照层次顺序启动其他所有的gmetad程序。
    ⑥启动Apache网络服务器。Web 服务器应在gmetad之后启动。












  6. 检查安装
    gmond 和gmetad都通过TCP socket侦听入站连接。为了检查gmond是否在指定的主机上工作, telnet到gmond的TCP端口:

    telnet localhost 8649 

    gmond会输出XML格式的指标数据作为应答。

三、可扩展性

  1. gmond和ganglia集群的可扩展性
    在发送/接收节点数量不多的小型网络中,通常默认的多播拓扑就够用了,但是在大型网络中最好进行可扩展性分析。
    内存影响:节点数越多,从每个节点上收集的指标就越多,则用来收集其他节点指标的gmond进程的内存消耗也就越大。
    CPU影响:gmond是单线程工作的,因此网络中指标到达速率越快, CPU 内核使用就越多。指标到达速率依赖三方面:节点数量、每个节点的指标数量和节点配置的传输新值的速率。






  2. RRD文件结构和可扩展性
    Ganglia对每个检测指标创建一个RRD文件,而不是将多个数据源的指标数据包含在同一个RRD文件中。

  3. gmetad启动阶段的大量I/O需求
    为了确保主机长时间停机后的顺利启动,规划时要认真考虑存储系统、采样间隔和保留时间等问题。

  4. 正常运行期间gmetad的I/O需求
    实时写入的负荷:
    非连续写入和并发存取一起造成了磁盘写访问模式的随机化
    网络图表/报告的读取操作
    报告的读取操作








  5. 预测I/O负荷
    仔细规划和实时监测gmetad服务器时非常有必要的:
    ①取决于所需的RRA结构(采样间隔、保留时间以及MIN 、MAX或AVERAGE等函数)。
    ②为一个RRD文件创建足够大的逻辑卷( 4MB 即可)。格式化井挂载该逻辑卷。在新的文件系统上创建一个RRD文件样本。
    ③使用iostat观察逻辑卷上的写I/O:
    iostat -k 60 -x /dev/dm-X
    其中X代表实际的设备节点。
    ④为了观察iostat I/O级别,可以使用rrdupdate命令( man rrdupdate )手动向RRD文件写入更新
    ⑤观察iostat命令的输出,查看发生了多少读写IOPS ,注意查看的是IOPS计数值,而非速率。
    ⑥将IOPS计数值除以$PERIOD得到系统实时运行的真实IOPS速率(仿真运行速率大于实际运行速率,所以iostat报告的速率没有意义)。将IOPS速率乘以主机数和需要收集的指标数量,即可估计实时I/0 负荷
    ⑦用rrdcached重复仿真。




















  6. 处理gmetad大量I/O需求的通用策略
    ①将RRD文件存储在高速磁盘(RAID0、SAN、SSD)
    事实证明在SAN或SSD (solid-state drive )中存储RD文件时,系统性能更好。
    ②使用具有较大写人缓存的磁盘控制器
    许多RAID控制器现在提供512MB 或IGB 的写入缓存。此外,这些控制器通常提供电池备份和闪存备份选项,以保证大容量写入缓存的可靠性。
    ③不要使用NFS
    NFS通过严格的协议来确保完全执行硬盘写入。虽然这种方法在客户端/服务器模式中非常可靠(必需),但是对于I/O需求很大的应用,尤其是还需要访问多个文件时,NFS就不适用了。
    ④使用noatime选项挂载文件
    开启noatime选项可以减少大量非必需的1/0操作,从而获得大量增益。
    ⑤在RAM磁盘上存储RRD文件
    ⑥使用rrdcached
    rrdcached 是一种接收RRD文件更新,并计算更新量的守护进程,当接收到足够的更新或超过预定义时间时,该守护进程将向RRD文件中写入更新。
    ⑦设置反向代理
    使用Squid之类的Web代理可以缓存图表,当多用户使用同一图表时就没有必要重复产生。通过这种方式可以动态减少I/O读取负荷。
    ⑧预先生成报告
    设置计划任务( cron job )以预期间隔准备静态HTML报告。使用户方问静HTML报告,而不是直接访问gweb
    ⑨确保有足够的RAM
    当更新RRD时, rrdtool必须读取和写入整个磁盘块,而不是只写入需要更改的字节。因此使用足够多的RAM作为页面存储器来缓存活动的磁盘块(每个RRD文件至少一个4096字节的块),可以避免在写I/O执行前rrdtool需要从磁盘读取块。


































四、指标管理和扩展

  1. gmond:指标收集代理
    在单播模式中,叶子节点是通过UDP连接,而非多播通道进行数据发送。在同一集群内可以同时使用多播模式和单播模式。

  2. 基本指标
    使用Ganglia 自带的小型实用程序gmetric ,可以收集附加指标,并将其写入gmond代理所监听的单播通道和多播通道中。虽然gmetric提供了一种将新指标插入系统的方法,但实际上gmond还是不能收集
    硬编码指标集合外的任何指标。扩展功能的引人必将增加gmond的主机占用,使指标偏差的风险加大,但如果采用模块接口的方式扩展gmond,用户可以通过配置将gmond的主机占用做到可控。




  3. 扩展指标
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213354.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午6:01
下一篇 2026年3月18日 下午6:01


相关推荐

  • wenstorm 激活码(最新序列号破解)

    wenstorm 激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    65
  • ubuntu cuda卸载干净_ubuntu18安装cuda10

    ubuntu cuda卸载干净_ubuntu18安装cuda10cd/usr/local/cuda/bin sudo./cuda-uninstaller (根据cuda版本不同,名称略有不同)

    2025年9月19日
    9
  • mse均方误差例题_误差函数计算器

    mse均方误差例题_误差函数计算器文章目录背景函数代码调用方法调用测试函数背景本人最近需要写多个仿真,需要大量用到MSE(均方误差)计算,于是干脆将MSE运算封装为函数,后续使用直接进行调用即可。函数代码%Project:均方误差函数%Author:Jace%Data:2021/11/01%====================函数体====================function[MSE]=MSE(Dim,Step,N,xkf,x)%====================分配空间=======

    2026年4月19日
    3
  • Django的MVT模式

    Django的MVT模式MVT 模式有一种程序设计模式叫 MVC 其核心思想是分工 解耦 让不同的代码块之间降低耦合 增强代码的可扩展性和可移植性 实现向后兼容 MVC 的全拼为 Model View Controller 最早由 TrygveReensk 在 1978 年提出 是施乐帕罗奥多研究中心 XeroxPARC 在 20 世纪 80 年代为程序语言 Smalltalk 发明的一种软件设计模式 是为了将传统的输入 input

    2026年3月16日
    2
  • 【深度思考】郑州java培训机构排名

    【深度思考】郑州java培训机构排名前言分布式,是程序员必备技能之一,在面试过程中属于必备类的,在工作中更是会经常用到。而Kafka是一个分布式的基于发布订阅的消息队列,目前它的魅力是无穷的,对于Kafka的奥秘,还需要我们细细去探寻。要谈对Kafka有多熟悉,我相信还是阿里的大佬们最有发言权,所以今天分享的内容,就是Alibaba内部供应的“限量笔记”,关于Kafka的精髓全部写在这里面了,不得不感叹:不愧是Alibaba的技术官啊,真的服了!一、背景我们日常在电商网站购物时经常会遇到一些高并发的场景,例如电商App上经常出现的

    2022年10月3日
    3
  • Vue、Element-ui项目中如何使用Iconfont(阿里图标库)[通俗易懂]

    Vue、Element-ui项目中如何使用Iconfont(阿里图标库)[通俗易懂]我们使用element-ui、vue开发网站的时候,往往图标是起着很重要的作用。2018-11-9更新1.傻瓜式引用:由于这种方法及其简单省去了很多繁琐的步骤,a.引入项目生成的,图标地址。b.使用推荐使用这种,详情请看文档!!文档够详细的了。http://www.iconfont.cn/help/detail?spm=a313x.7781069.1998910419.d8cf4…

    2022年4月20日
    94

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号