初识ganglia
本文地址:http://www.cnblogs.com/qiaoyihang/
一、Ganglia是什么?Ganglia主要用来解决什么样的问题?
ganglia是一个可扩展的分布式监控系统,用于监控和显示分布式集群节点的状态信息,比如CPU、内存、磁盘利用率、I/O负载、网络流量情况等方面的数据,这些信息是由运行在各个节点上的gmond守护进程来采集,然后汇总到gmetad守护进程中。这些数据使用rrdtool来存储,然后将这些历史数据以图表或曲线的方式通过PHP页面展示出来。
二、Ganglia架构原理
三、gmond是啥玩应?
安装在待监控的主机上,负责和操作系统交互获得需要关注的指标数据,可以简单地把它理解为一个数据收集的工具。
gmond根据操作系统定制的插件(这些插件是用C语言编写的)进行监控,即gmond在内部采用模块化设计。
gmond可以增加更多的用C、C++或Python等语言编写的插件来支持新的指标。
四、gmond的架构
五、gmond集群
一个集群有很多主机,每台gmond主机将指标数据多播到集群内的其他主机,所以每台gmond也必须记录从集群内其他主机收到的指标数据,即ganglia集群内的每个节点都知道同一集群内所有主机当前的指标数据(这些数据都是XML格式的),远程轮询器通过端口8649向集群内任意节点请求获得该集群的XML格式的所有指标数据,所以说只轮询集群内的单个节点就可以获得集群所有指标的数据,这样就解决了因单点故障影响整个系统的问题。
六、多播
Ganglia的收集数据工作可以工作在单播(unicast)或多播(multicast)模式下,默认为多播模式。
多播:发送自己收集到的监控数据到同一网段内所有的机器上,同时收集同一网段内的所有机器发送过来的监控数据。因为是以广播包的形式发送,因此需要同一网段内。但同一网段内,又可以定义不同的发送通道。
单播:发送自己收集到的监控数据到特定的一台或几台机器上,可以跨网段。
七、Gmond拓扑结构
(一)默认多播拓扑
(二)单发/单收多播拓扑
(三)单播拓扑
八、Gmetad
gmetad是一个简单的轮询器,对网络中每个集群进行轮询,并将每台主机上返回的所有指标数据写到各个集群对应的轮询数据库中。
对gmond集群进行轮询,并将指标数据保存到硬盘上
gmetad也可以从其他gmetad中轮询数据,构成一个联合层次架构。
多个轮询引擎可以进一步分散和减轻大型网络中指标数据收集的相关负荷
九、Gmetad拓扑结构
(一)基本拓扑结构:一个gmetad进程轮询一个或多个gmond
(二)高可用拓扑结构
(三)层次化gmetad结构(gmetad还可以轮询其他的gmetad)
十、RRDtool:(数据存储)
(1)RRDtool是什么?
指标数据存储在RRDtool(Round Robin Database轮询数据库)
(2)RRDtool的数据管理方式是什么?
RRDtool内部以“循环覆盖”的方式管理数据,即将新数据的值叠加到原来的数值上来覆盖原有数据
(3)RRDtool的数据管理方式的好处是什么?
这种数据存储方案不仅可以使用户对近期数据进行详细分析,而且可以用少量的硬盘空间存储数年的历史数据,这样就可以预先分配磁盘空间
十一、gweb:(数据可视化)ganglia可视化工具
gweb是一种PHP程序,一般将其运行在Apache网络服务器上,因为要和轮询器创建的RRD数据库进行交互,所以gweb通常和gmetad安装在相同的物理硬件上
用一张张把集群指标组合起来的图表来图像化的展示整个网络状态,并为更多的具体化分析提供完善的点击展开功能
gweb:下一代数据分析
补充:在操作上,每个守护进程都是独立的,运行时只需要按照各自的配置文件来操作就行,但是三者又是相互协作的,需要同时使用才能发挥功效。
Ganglia在线安装
1、检查防火墙状态并关闭防火墙
service iptables status
2、检查SElinux状态
sestatus
3、检查是否安装ganglia
rpm -qa | grep ganglia
4、运行下面代码更新资源
rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
5、在需要监控的节点上安装gmond
yum install ganglia-gmond
6、修改/etc/ganglia/gmond.conf
7、启动gmond
使用命令service gmond start
8、然后执行telnet localhost 8649
出现了下面的XML内容表示gmond安装成功
9、安装gmetad
先下载 yum install ganglia-gmetad
10、cd /etc/ganglia
vi gmetad.conf
11、service gmetad start
12、telnet localhost 8651
13、安装gweb
yum install ganglia-web
14、cd /etc/httpd/conf.d
vi ganglia.conf
15、安装apache服务器以及PHP
yum install httpd php
16、将ganglia-web 安装目录链接到httpd 主站点目录apache服务器访问的根目录
ln -s /usr/share/ganglia /var/www/html
17、修改httpd 主站点目录下ganglia 站点目录的访问权限将ganglia 站点目录访问权限改为apache:apache否则会报错
chown -R apache:apache /var/www/html/ganglia
chmod -R 755 /var/www/html/ganglia
18、修改rrd 数据库存放目录访问权限将rrd 数据库存放目录访问权限改为ganglia:ganglia否则会报错
chown -R ganglia:ganglia /var/lib/ganglia/rrds
19、启动httpd
service httpd start
访问hostname/ganglia即可(这里的hostname是安装gweb以及gmetad的主机名或者ip