您的位置:首页 > 其它

《Monitoring with Ganglia》Chapter 2 Installing and Configuring Ganglia

2015-09-25 17:24 369 查看
一、安装

1、安装gmond

在每台需要被监控性能指标数据的计算机上安装gmond。以Linux下安装为例进行说明。

1)Debian-based distribution

sudo apt-get install ganglia-monitor
2)RPM-based distribution

sudo yum install ganglia-gmond
2、安装gmetad

在作为管理机的计算机上安装gmetad。以Linux下安装为例进行说明。

1)Debian-based distribution

sudo apt-get install gmetad
2)RPM-based distribution

sudo yum install gmetad
3、安装gweb

在作为管理机的计算机上安装gweb。自从Ganglia 3.4之后,gweb作为一个独立的项目进行开发。以Linux下安装为例进行说明。

1)Debian-based distribution

i、安装包依赖

需要安装的包有:Apache Web Server,PHP 5.2 or later,PHP JSON extension,rrdtool。具体是执行以下命令:

sudo apt-get install apache2 php5 php5-json rrdtool
ii、下载最新的gweb源码包

iii、设置Makefile中“DESTDIR”和“APACHE_USER”变量:“DESTDIR”变量表示gweb的安装目录,必须放在Apache Web Server的Web项目目录下,比如可以设置成:/var/www/html/ganglia2;”APACHE_USER“变量表示:以什么用户身份运行Apache Web Server

iv、安装

具体是执行以下命令:

sudo make install
2)RPM-based distribution

i、安装包依赖

需要安装的包有:Apache Web Server,PHP 5.2 or later,PHP JSON extension,rrdtool。具体是执行以下命令:

sudo yum install httpd php rrdtool
ii、下载最新的gweb源码包

iii、设置Makefile中“DESTDIR”和“APACHE_USER”变量:“DESTDIR”变量表示gweb的安装目录,必须放在Apache Web Server的Web项目目录下,比如可以设置成:/var/www/html/ganglia2;“APACHE_USER”变量表示:以什么用户身份运行Apache Web Server

iv、安装

具体是执行以下命令:

sudo make install


备注:

在RPM-based distribution上安装时需要首先添加"EPEL Repository",在Centos 6.5中添加"EPEL Repository"的命令如下:

sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm[/code] 
二、配置

一般情况下,默认配置已经足够。

1、配置gmond

1.1、配置同一个cluster内gmond进程之间拓扑关系的基础原理

1)一个gmond进程分为两个部分:send部分负责发送自己获取到的性能指标数据;receive部分负责接收传递过来的性能指标数据。同一个gmond进程内的send部分和receive部分不互相通信。关系如图1所示。

图1



send部分未激活,该gmond进程被称为mute;receive部分未激活,该gmond进程被称为deaf,gmond进程为"mute && deaf","!mute && !deaf","mute && !deaf"和"!mute && deaf"这4种状态之一。

2)gmond进程之间的通信方式有两种:UDP多路广播和UDP点对点单播。

3)不能给多于1个的cluster发送性能指标数据,也不能从多于1个的cluster获取性能指标数据。

1.2、gmond进程之间拓扑关系实例

介绍几种拓扑关系实例。

1)常见的拓扑关系实例

常见的一个cluster内gmond进程的拓扑关系实例如图2所示,在该拓扑关系实例中:通信方式是UDP多路广播;每个gmond进程的状态是"!mute && !deaf"。

图2



从该cluster内的某个gmond进程A角度进行分析,该cluster内所有gmond进程的send部分广播发送自身获取到的性能指标数据(包括A的send部分),A的receive部分接收这些性能指标数据,从而A中维护有cluster内所有gmond进程所获取到的性能指标数据。注意,A自身的性能指标数据不是直接从A的send部分传递给receive部分。

该cluster内其他gmond进程也是同理,都维护有一份整体的性能指标数据。

其实每个gmond进程都维护一份cluster内所有gmond进程获取到的性能指标数据是浪费计算资源,其实只要某个gmond进程维护这样的一份数据就可。

当cluster规模较小时,这种浪费微不足道,当cluster规模逐渐增大时,这逐渐成为瓶颈所在。

2)减少资源浪费的拓扑关系实例

一种可以减少资源浪费的拓扑关系实例如图3所示:

图3



在该拓扑关系实例中:通信方式是UDP多路广播;前两个gmond进程的状态是"!mute && deaf",最后一个gmond进程的状态是"mute && !deaf"。因而,前两个gmond进程不维护整体的性能指标数据,最后一个gmond进程维护整体的性能指标数据(不包括最后一个gmond进程自身的性能指标数据,如果最后一个gmond进程的状态是"!mute && !deaf",那么最后一个gmond进程自身的性能指标数据也被包含在内)

3)另外一种减少资源浪费的拓扑关系实例

另外一种可以减少资源浪费的拓扑关系实例如图4所示:

图4



在该拓扑关系实例中:通信方式是UDP点对点单播;前两个gmond进程的状态是"!mute && deaf",最后一个gmond进程的状态是"mute && !deaf"。因而,前两个gmond进程不维护整体的性能指标数据,最后一个gmond进程维护整体的性能指标数据(不包括最后一个gmond进程自身的性能指标数据,如果最后一个gmond进程的状态是"!mute && !deaf",且数据的发送目的计算机是自身,那么最后一个gmond进程自身的性能指标数据也被包含在内)

1.3、配置参数

1)配置文件路径

配置文件路径是“/etc/ganglia/gmond.conf”

2)配置文件格式规范

配置文件的内容由多个小节构成,小节的内容包含于“{}”大括号对之间。有些小节允许出现多次,有些小节只允许出现1次。小节的名称和小节中属性的名称都是大小写不敏感的。

3)具体配置内容

i、globals小节

只允许出现1次,重要的属性如下:

dubug_level:整型值,大于0时会打印日志信息,值越大,日志信息越详细
mute:true/false,设置是否为mute
deaf:true/false,设置是否为deaf

ii、cluster小节

只允许出现1次,重要的属性如下:

name:字符串型,cluster的名字

iii、host小节

只允许出现1次。

iv、udp_send_channel小节

如果不配置,gmond进程相当于mute状态。允许出现多次。重要的属性如下:

mcast_join:指定广播的目的IP地址,与host只能二选一
host:指定单播的目的IP地址,与mcast_join只能二选一
port:广播和单播中的目的UDP端口号,默认值为8649
ttl:数据存活时间

v、udp_receive_channel小节

如果不配置,gmond进程相当于deaf状态,允许出现多次。重要的属性如下:

mcast_join:指定广播的目的IP地址,从该地址接收广播数据;如果不配置,gmond进程的receive部分作为一个UDP Server,监听port端口,根据udp_send_channel中配置的主动的单播请求接收数据
port:从哪个UDP端口号获取数据
acl:可以包含一个子小节,来做类似防火墙的配置
bind:值为IP地址或者域名地址,表示只能接收来自于bind所表示地址的数据。一般情况下,不要配置该值,否则很容易出现接收不到数据的结果


vi、tcp_accept_channel小节

允许出现多次。重要的属性如下:

port:gmond进程监听的TCP端口号,gmetad请求数据需要访问该端口。默认值为8649。注意:TCP和UDP使用相同的8649端口不会冲突。
acl:可以包含一个子小节,来做类似防火墙的配置

vii、modules小节

允许出现多次,配置能够加载性能指标的模块。

viii、collection_group小节

允许出现多次。重要的属性如下:

collect_once:该性能指标数据只获取一次
colllect_every:该性能指标数据每隔多少秒获取一次
metric:子小节
metric子小节重要的属性有:
name:性能指标的名称。通过"gmond -m"命令可以获取所有合法的性能指标的名称。
title:性能指标的别名。
2、配置gmetad

2.1、gmetad进程运行方式

1)一个gmetad进程可以向多个计算机节点请求性能指标数据,连接方式是TCP,具体端口是gmond配置tcp_accept_channel小节中的port。这多个计算机节点可以来自同一个cluster,也可以来自不同的cluster,其实gmetad面向的是计算机节点,而没有cluster的概念,只不过获取得到的数据中有cluster层次而已

2)一般来说,gmetad进程可以作为一个服务,会监听8651和8652端口,供其他应用请求获取性能指标数据。

3)可以在多台机器上运行多个gmetad进程,多个gmetad进程关联的计算机节点可以重合

2.2、配置参数

1)配置文件路径

配置文件路径为:/etc/ganglia/gmetad.conf

2)配置文件格式规范

配置文件的内容为多条“属性名 = 属性值”。属性名不区分大小写,属性值区分大小写。有些属性名的配置只允许出现1次,有些属性名的配置允许出现多次

3)具体配置内容

i、data_source

值分为3个部分,允许出现多次。

第1部分:本data_source的自定义唯一标识符
第2部分:gmetad进程对该data_source请求数据的时间间隔,可省略,默认值为15。
第3部分:该data_source关联的计算机节点的“IP地址:端口号”或者“域名地址:端口号”,其中端口号可省略,默认为8649。可以配置多个计算机节点

ii、xml_port

普通服务端口,默认值为8651,返回全部数据。只允许出现1次。

iii、interactive_port

交互式服务端口,默认值为8652,允许返回特定部分数据。只允许出现1次。

iv、rrd_rootdir

RRD文件的存储目录,默认值为:/var/lib/ganglia/rrds。只允许出现1次。

v、gridname

gridname:字符串型,grid的名字。一个cluster对应0到多个计算机节点,一个grid对应0到多个cluster。只允许出现1次。

3、配置gweb

3.1、gweb的运行方式

1)gweb是PHP编写的Web程序,它获取数据(数据分为两部分:读取RRD文件得到和访问gmetad进程的8652端口得到,一般情况下gweb进程和gmetad进程运行于同一台计算机上),经过渲染(需要用到rrdtool命令),将其以图表的形式呈现出来。

2)通过支持PHP的Web Server来加载gweb程序,比如Apache Web Server。

3.2、配置参数

1)配置文件路径

gweb程序下的”conf_default.php“文件,如果安装gweb时,设定Makefile中的”DESTDIR“变量值为“/var/www/html/ganglia2”,那么该配置文件的具体路径为:/var/www/html/ganglia2/conf_default.php

2)配置文件格式规范

配置文件是一个PHP文件,格式规范遵循PHP语言语法

3)具体配置内容

i、$conf['rrdtool']

配置gweb程序需要用到的rrdtool命令的路径

ii、$conf['rrds']

配置gweb程序读取的RRD文件的存储目录,默认值为“/var/lib/ganglia/rrds”

iii、$conf['ganglia_ip']

配置gmetad进程所在的计算机IP或者域名

iv、$conf['ganglia_port']

配置gmetad进程的交互式服务端口,默认值为8652

三、运行

1、通过“service ganglia-monitor start”命令运行gmond进程

2、通过“service gmetad start”命令运行gmetad进程

3、通过“service apache2 start”命令运行apache进程

4、在浏览器中访问“http://localhost/ganglia2”(在安装gweb时,设定Makefile中的“DESTDIR”变量值为“/var/www/html/ganglia2”)

四、遇到的错误

刚开始没有安装rrdtool包,而gweb需要rrdtool包,最后导致在Web UI中图片展示不出来。如图5所示
图5

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: