• https://github.com/ganglia

作者: 德哥

正文转载自 https://yq.aliyun.com/articles/9087

本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

传统的监控系统, 通常采用agent+server的方式, agent负责收集监控信息, 主动或被动发送给server, server负责向agent请求监控数据(agent被动), server和agent都通常使用TCP来进行连接.

传统监控的主要弊端, 当被监控的主机很多的情况下, server端的压力会很大, 例如要监控2万台主机的30个监控项, 就有60万个监控数据要从agent收集, 假设每分钟收集一次监控数据, 每秒需要上千次的metric get请求.

ganglia的设计思路比较巧妙, 有效的避免了这些问题.

ganglia分成3个主要组件: gmond/gmetad/gweb

gmond: 负责收集监控数据(metric), 有别于传统的agent, gmond除了收集自己的数据, 同时可以整合整个多播域的监控数据, 也就是说, 一个多播域里面, 单个gmond就可以包含所有的数据. 例如一个多播域有200台主机, 那么200台主机的监控数据可以只从1台gmond获取, 从而减少了服务端以往要从200个主机获取的链接. 并且gmond之间是使用UDP来传输消息的, 在本地网络中比tcp效率要高. gmond 整合了一些常规监控(metric)例如cpu, network, memory, 同时支持c, python, gmetric来扩展监控项.

配置文件在gmond本地配置, 监控数据则通过XDR格式传输(http://en.wikipedia.org/wiki/External_Data_Representation)

gmond之间共享数据主要交给2个模块进行, sender和receiver, sender只负责往多播域发数据, receiver只负责从多播地址监听端口接收数据. 而且sender和receiver可以独立开启, 也就是说一个gmond可以配置为只发数据的模式, 那就类似传统的agent. 而如果配置为只接收数据的话, 就类似传统解决方案的proxy. 例如把整个多播域的所有gmond的数据全部接收到一个或几个gmond主机, 然后server则只需要从这几台中的任意一台gmond get metric即可.

只发不收的成为deaf(聋子), 只收不发的成为mute(哑巴).

gmetad: 负责从gmond获取metric数据, 解析gmond的监控数据, 按照每台主机的每个metric, 将数据写入RRDtools文件, 即每台主机的每个metric对应一个rrdtools文件(s).

因为gmetad的功能比较单一, 所以不使用gmetad, 直接使用SHELL或python写相关功能的脚本也可以代替gmetad的功能.

gmetad除了基本的功能, gmetad还支持从其他gmetad获取数据, 将数据发生给其他监控系统(如Graphite), 或者其他监控系统主动向gmetad请求数据(如nagios).

gweb: 负责监控数据的可视化, 使用RRD数据库.

扩展模块: c, python, gmetric, 因为gmond只整合了一些常见的metric, 如果要扩展监控的话, 需要写扩展模块, 或者直接使用gmetric来向gmond的sender通道发送监控数据, 例如我们要监控一个数据库的指标, 可以自己扩展监控模块.


其他阅读材料

  • https://blog.51cto.com/slevin/1574053

https://blog.csdn.net/weixin_34072458/article/details/92151387

2019-11-24转载Ganglia 安装和使用相关推荐

  1. 《惢客创业日记》2019.11.24(周日)标签为王

    今天,终于和两位小伙伴确定了主菜单中间图标的设计思路.要说这也缘于我最近体验王者游戏中所获得的一些灵感.最近,每天都会抽出一点时间,来刷一下王者. 刚开始我一直想不明白,为什么有那么多的人对王者如此沉 ...

  2. CFA课程打卡-2019.11.24

    学习时长:298分钟 学习内容:今天学习了财务三大报表,分别是现金流量表.损益表.资产负债表,其中最主要的是资产负债表,资产是资金的来源,负债是资金的去处,资产代表的是将来有经济利益流入的.还学习了两 ...

  3. ganglia安装与配置

    ganglia安装与配置 实验: Redhat 5.4 + ganglia 3.2.0 1. 装备工作 1.1在所有的网站上查找最新的软件包 Ganglia 下载地址 http://sourcefor ...

  4. (11/24) css进阶:Less文件的打包和分离

    (11/24) css进阶:Less文件的打包和分离 写在前面:在前面我们对css打包和分离进行了描述.此节我们开始学习如何对less文件进行打包和分离. Less 是一门 CSS 预处理语言,它扩展 ...

  5. 云监控 Ganglia 安装步骤 (含python module)

    文章转载自:https://my.oschina.net/duangr/blog/181585      ,仅用于个人学习.收藏,转载请注明原作者地址. 前言 最近在研究云监控的相关工具,感觉gang ...

  6. 接口学习笔记(2009.11.24)

    了解接口,主要是为了一道经典面试题:接口与抽象类的区别,对接口的理解却很少,现在学习一下. 接口只包含方法.属性.事件或索引器的签名.成员的实现是在实现接口的类或结构中完成的. Interface n ...

  7. 开源监控软件ganglia安装手册

    Ganglia是一个监控服务器,集群的开源软件,能够用曲线图表现最近一个小时,最近一天,最近一周,最近一月,最近一年的服务器或者集群的cpu负载,内存,网络,硬盘等指标. Ganglia的强大在于:g ...

  8. Mac 10.11系统下cocoaPods安装注意事项

    本文读者需具备的知识:cocoaPods相关概念及常用命令. 今天初次使用cocoaPods(下面我就称其为可可豆好了),为其在OS X 10.11系统下的安装折腾了半天,衰x10^n... 先反省一 ...

  9. 【292天】跃迁之路——程序员高效学习方法论探索系列(实验阶段50-2017.11.24)...

    实验说明 从2017.10.6起,开启这个系列,目标只有一个:探索新的学习方法,实现跃迁式成长 实验期2年(2017.10.06 - 2019.10.06) 我将以自己为实验对象. 我将开源我的学习方 ...

最新文章

  1. GDB调试:观察点(数据断点)【GDB调试】
  2. 计算机系学生的简单立体宿舍装潢大赏
  3. 局域网arpsniffer源码剖析
  4. Web服务器性能估算
  5. Python中使用psutil查看内存占用的情况(内存)
  6. iOS 第五期考核题(字典与数组嵌套,字典的排序/删除)
  7. file标签样式修改
  8. IPMI IPMB协议
  9. 进行单元测试时一直报这个错,原因是缺少aspectjweaver包
  10. estimating the Flood kirs——曼哈顿距离
  11. PHP按符号截取字符串的指定部分
  12. vue使用echarts图表渲染异常本地正常,线上时有时无的渲染
  13. [计算流体力学][Ansys Fluent] 使用 Fluent 计算方腔热对流和卡门涡街
  14. 5G China unicom 直放站 网管协议 实时性要求
  15. R语言进行数据分组聚合统计变换(Aggregating transforms)、计算dataframe数据的分组四分位距(IQR)
  16. 栈的操作(入栈、出栈)之一:顺序栈
  17. 「镁客·请讲」小不点刘筱璇:新制造时代,用3D打印让世界个性起来
  18. 『WPF』TextBox元素过滤键盘输入
  19. 深入理解 Proxy 和 Reflect-- JavaScript
  20. channel 1:open failed : administratively prohibited : open failed

热门文章

  1. SpringMVC控制类的Controller方法返回值
  2. Shiro JSP 标签
  3. mysql 数据库缓冲池_MySQL5.6新特性快速预热Buffer_Pool缓冲池
  4. 四轮驱动机器人(SSMR)的运动规律
  5. html view设置全屏,uni-app 如何设置web-view 不全屏,不自动铺满,动态控制web-view的高度...
  6. iView UI常用组件DatePicker清空技巧
  7. pcl之编译VTK时CMAKE中找不到Qt5X11Extras
  8. Qt之控件资源标识的含义
  9. spring里restTemplate向目的URL发送post请求
  10. transform 二维转变