【昊鼎王五】如何在centos7上安装ganglia之写在前面的话?
引子:
有读者来信咨询关于监控软件,问那款好?这个问题曾经也让我纠结了一段时间,但是本人现在从迷雾中走出。世界上没有最好,只有某款更适合你。那么哪款更适合你呢?请基于你自身的需求来寻找。
对于IT业者,我的建议是,先去做,做完了就有体会了。做完了,归纳总结了,就是你自己的东西了。个人职场的沉淀总结非常重要,这个关系到你未来的生存问题。
今天就来分享一款优秀的监控软件ganglia。那它到底优秀在哪里呢?
如下:
1.ganglia介绍
ganglia是一款为HPC(高性能计算) 集群设计的可扩展性 的分布式监控系统,它可以监视和显示集群中节点的各种状态信息,他由运行在各个节点上的gmond守护进程来采集 CPU、内存、磁盘利用率、I/O负载、网络流量情况等方面的数据。然后汇总到gmetad守护进程下,使用rrdtool存储数据,然后将历史数据以曲线方式通过PHP页面呈现。
ganglia自带了很多监控项,详细的比较详细,等后面搭建成功后,可以从截图中看出。ganglia相关的PDF书和资料还是较少的。
2.应用范围
Ganglia是一个集群监控工具,由UC Berkeley创建并开源。Ganglia的中文意思是神经中枢,现在支持多部分操作系统(包括linux、unix、windows),可支持2000个节点的网络监控(当然这不是上限,只是一个大集群使用的范例)。
3.基本结构
Ganglia底层使用RRDTool获得数据,Ganglia主要分为两个进程组件:
gmetad(ganglia metadata deamon)
gmond(ganglia monitor deamon)
其中,gmond运行在集群每个节点上,收集RRDTool产生的数据;gmetad运行在监控服务器上,收集每个gmond的数据。Ganglia还提供了一个PHP实现的web front end,一般使用Apache2作为其运行环境,通过Web Front可以看到直观的各种集群数据图表。
4.层次图
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采集的数据用图表展示出来。
显然,这种方式非常灵活,可以实现多种结构的数据监控。由下图,我们可以清晰的看出这种层次化的结构,和不同的部署方式。
图一:
图二:
5.运行模式
Ganglia的收集数据工作可以工作在单播(unicast)或多播(multicast)模式下,默认为多播模式。
单播:发送自己收集到的监控数据到特定的一台或几台机器上,可以跨网段。
多播:发送自己收集到的监控数据到同一网段内所有的机器上,同时收集同一网段内的所有机器发送过来的监控数据。因为是以广播包的形式发送,因此需要同一网段内。但同一网段内,又可以定义不同的发送通道。
6.三大组件
6.1gmond
gmond类似于传统监控系统中的代理,需要安装在每台主机上,负责和操作系统交互以获得需要关注的指标数据。
gmond再内部采用模块化设计,采用基于C语言编写、根据操作系统定制的插件进行监控。gmond为指标提供了大部分标准插件,而且可以增加更多的用C、C++或Python等语言编写的插件来支持新的指标。此外,内置的gmetric工具可以用来报告用任何语言编译的自定义指标数据。
gmond根据自身本地配置文件定义的调度方案进行轮询。监听数据时使用简单的监听/通告协议,通过XDR在集群内的主机之间共享。这些通告默认使用多播,而集群是由共享同一多播地址的主机所构成的。当然gmond也可以使用单播,将数据都汇聚到同一台中心节点。
因为每台gmond主机将指标数据多播到集群内的其他主机,每台gmond主机也记录了集群内其他主机的指标数据。远程轮询器通过默认的8649端口,向集群内任意节点请求获得该集群XML格式的所有数据。
如果服务器主机过多,因为只要轮询集群中任意节点就能获取所有集群内其他主机的性能指标数据,所以我们可以将众多的主机划分到不同的组里面,这样一来,收集数据的工作量将得到大大的减轻。
6.2gmetad
主要作用就是整合所有信息。
gmetad是一个简单的轮询器,对网络中每个集群进行轮询,并将每台主机上返回的所有指标数据写入各个集群对应的轮询数据库。轮询器对集群的“轮询”只需要打开一个用于读取的套接字,连接到目标gmond节点的8649端口即可,通过远程非常容易实现。
gmetad还有一些其他特性,如可以从其他的gmetad中轮询数据,gmetad通过tcp端口8651侦听远程gmetad连接,并且向授权主机提供XML格式的网格状态。从而构成一种联合层次结构。gmetad具有交互式查询功能,外部监控系统可以通过TCP 8652端口用简单文本协议进行轮询。gmetad也可以通过配置gmetad将指标数据转送到诸如Graphite外部系统发送数据。
gmetad默认将指标数据直接写入文件系统上的RRD文件,在有I/O限制的大型装置中,rrdcached充当gmetad和RRD文件之间的缓存。
6.3gweb
ganglia可视化工具。显示ganglia收集的主机各项指标。
gweb允许在图标中通过点击-拖拽改变时间周期,包含从不同文本格式(CSV,JSON等)中便捷提供数据的工具,显示完整、使用的URL接口,使用户可以通过预知的URL将感兴趣的图表嵌入其他程序。
gweb是一种PHP程序,因为需要与轮询器创建的RRD数据库交互,所以gweb通常安装在和gmetad相同的物理硬件上。
7.相关链接
7.1官网:
ganglia的官网:http://ganglia.info 下载链接:http://ganglia.info/?page_id=66
7.2书籍:
Ganglia权威指南书籍:
http://www.51niux.com/?id=83
http://www.51niux.com/?id=84
http://www.51niux.com/?id=85
好了,聪明如你,知道了ganglia大致情况,是不是很欢喜 _
还有其他问题的可以在评论区留言或者扫码加博主获取资源或者提问。