java ganglia_Ganglia文档(一)

java ganglia_Ganglia文档(一)Ganglia 总结 ganglia 是一种分布式监控系统 ganglia 的设计便是基于大型集群进行设计的 主要体现在数据的获取方式以及分层设计 系统环境 CentOS5 5 64 位 服务器 DellR510 与 cacti 的比较起初 对于为什么非要使用 ganglia 而不使用 cacti 让我很迷惑 不过后来在部署过程中 以及后期的体验中 主要由两点 1 部署的方便性 相对于 cacti 的逐台服务器的

Ganglia总结

ganglia是一种分布式监控系统。ganglia的设计便是基于大型集群进行设计的。主要体现在数据的获取方式以及分层设计。

系统环境:CentOS 5.5 (64位)

服务器  :Dell R510

与cacti的比较

起初,对于为什么非要使用ganglia而不使用cacti,让我很迷惑。不过后来在部署过程中,以及后期的体验中。主要由两点

1. 部署的方便性。相对于cacti的逐台服务器的添加方式,ganglia类似与nagios的部署方式会更简单,更方便。有利于后期的大规模扩张。

2. 两者的数据获取方式(重点)

a:ganglia本身就是为集群监控进行设计的,这体现在其数据的获取方式(客户端主动推送)以及分层设计(node cluster grid)

b:cacti则是服务端主动去轮循(逐台服务器)这在一定程度上影响了数据的新鲜,以及所能监控节点的数量。

通信方式以及冗余

a:cacti属于点到点通信,并且不会在本地对信息进行存储。存在单点故障的风险

B:ganglia通过组播进行数据交互,配置得当,可以实现冗余避免单点故障。另外,同样由于组播,数据可以在客户机本地进行存放的(安装rrdtool)。

Ganglia体系结构

Ganglia系统组成:

gmetad:  从监听节点轮询出数据,并对数据进行聚合、存储(ganglia组件)

gmond:   组播包的发送和接受。发送本地信息,接受其他节点信息(ganglia组件)

Ganglia网页:提供ganglia的访问页面(ganglia组件)

rrdtool: 数据存储以及提供画图功能

Apache与php:网站功能,对ganglia提供的网页进行解析。

Ganglia工作原理:(网上找了一张图)

80f4db9b587f5156d464628aebd60868.gif

上图是描述在一个cluster环境中,数据的采集,传送,处理,存储,以及展示过程

1. 客户端数据的采集是通过gmond这个进程(端口8649)实现的。然后会将数据以xml的格式发送到一个组播地 址(默认是239.2.11.71 这个是可以更改的)

2. 由于在监控端也会有一个gmond进程,所以该进程会收到所有node发出的数据。(XML)

3. Gmetad进程是server进程。运行时将开启两个端口(8651与8652)

其中8651负责在监听地址上面收集gmond数据(填写本地IP即可配置后面说注)

其中8652负责数据的聚合,以及在rrd中的存储(这里有个问题不懂,最后描述)

4. 当通过浏览器访问的时候,php对ganglia的网页进行解析,rrdtool画图。从而将监控 结果进行展示。

Ganglia安装

Server安装

1. 初始环境安装

yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpmbuild glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel

2. yum -y install libconfuse

Rrdtool安装:

下载包:wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.4.2.tar.gz

tar -zxf rrdtool-1.4.2.tar.gz

cd rrdtool-1.4.2

./configure –prefix=/usr (网上说这样做会减少很多问题,比如ganglia安装时候的文件位置指定)

make

make install

ldconfig  (注意:这里一定要执行这条命令。否则会报错,因为如果不执行rrdtool这条命令本身会报一个错误动态库相关的)

Ganglia安装

下载包wget http://down1.chinaunix.net/distfiles/ganglia-3.0.6.tar.gz

tar -zxf ganglia-3.0.6.tar.gz

cd ganglia-3.0.6

./configure –with-gmetad   (默认不安装gmeta,一定要加上这一项)

make

make install

mkdir /var/www/html/ganglia

cp -a web/* /var/www/html/ganglia/

cp gmond/gmond.init /etc/init.d/gmond

cp gmetad/gmetad.init /etc/init.d/gmetad

cp gmetad/gmetad.conf /etc/

gmond -t>/etc/gmond.conf

mkdir -p /var/lib/ganglia/rrds

chown -R nobody.nobody /var/lib/ganglia/rrds

chkconfig –add gmetad

chkconfig –add gmond

至此大部分工作已经完成。(注意:网上很多资料将配置文件放在了/etc/ganglia下面。可能版本更新的问题,已经不在那个地方了,而是在/etc下面。这个可以在README中看到)

配置文件的更改 gmetad配置文件是/etc/gmetad.conf 。修改data_source即可

data_source “NeiMeng Hadoop” 10.101.0.251

Data_source 的值包含两部分 “Cluster名称”(也是一个简单的认证,在一个cluster中的所有node都必须配置为该值)

注:这里是要监听的地址,由于数据是组播,所以每个node都会收集到整个cluster的数据,所以填写本地的一个IP(ganglia使用的IP)就可以了。当然这里也可以将所有node的ip加进来。如果有node的端口不是默认的8649,也可以在这里指定端口IP:port

然后此时启动服务 httpd gmetad gmond 进行访问就会看见监控页面了(当然界面中只有本地)

这里有一项要特别注意:就是当有服务器有多个IP的时候,一定要为其添加一条到组播地址的路由,并指定网卡

route add -net 239.2.11.71 netmask 255.255.255.255 dev eth0  (不用重启网络)

或者添加路由文件

[root@dc01c01ts01 ~]# cat /etc/sysconfig/network-scripts/route-eth0

239.2.11.71 dev eth0

然后重启网络

否则会出现服务器“丢失”或者没有数据的问题。

客户端的添加

客户端安装相对简单,只需要拷贝需要的文件即可

由于服务器端,未指定安装路径,故出于方便考虑,拿了一台客户机操作,首先将源码包拷贝至该服务器,命令过程如下:

tar -zxf ganglia-3.0.6.tar.gz

cd ganglia-3.0.6

./configure –prefix=/usr/local/ganglia

make

make install

gmond -t > /etc/gmond.conf

ln -s /usr/local/ganglia/bin/* /usr/bin/

ln -s /usr/local/ganglia/sbin/* /usr/sbin/

然后修改/etc/gmond.conf

cluster {

name = “NeiMeng Hadoop”

将这里的name修改为在gmetad.conf中定义的名字即可。

然后将安装后的程序包,/etc/gmond.conf 、/etc/init.d/gmond 打包然后批量拷贝至其他所有客户端,解压然后做链接即可。或者通过cf同步亦可。

记住:如果有客户端有多个IP,一定要添加路由。

最后就是相关服务的制定:

Chkconfig –add gmond

Chkconf gmond on

Service gmond start

在所有客户机上面执行完这些命令以后,在ganglia的监控页面上面就能看到各个被监控机的状态了。

对于ganglia工作原理中提出的问题,问题如下,如果谁知道请告知我,问题如下:

Gmetad在启动的时候会开启两个端口8651和8652

其中在readme中有这么一句话

By default, gmetad exports its XML on port 8651 and gmond exports its XML on port 8649.

然后后期通过更改配置文件config.php将端口8652指向8651,页面是正常显示了,但是数据有很大的跳跃性,故判定此端口仅负责从gmond上面抓取数据,但是不对数据进行聚合。

然后telnet 8652得到了和8651端口中同样格式的数据,不过如果config.php中使用该端口,数据显示不会出现跳跃性,所以该端口应该是从8651中获取数据以后,对数据进行处理成为稳定的数据结果。

但是在存储上面,有些疑惑:

就是数据是通过gmetad直接存储的,还是通过gmetad调用php存储的,还是apache通过config.php中指定的8652端口去获取到数据以后再存储。

还有就是,到底是先画图后存储(php解析xml数据,然后通过rrdtool进行画图)

还是先存储后画图(gmetad存储后,php调用rrdtool存储)。

以下的内容是/etc/gmetad.conf中的定义(感觉不是很明晰各个端口的功能)

# The port gmetad will answer requests for XML

# default: 8651

# xml_port 8651

#

#——————————————————————————-

# The port gmetad will answer queries for XML. This facility allows

# simple subtree and summation views of the XML tree.

# default: 8652

# interactive_port 8652

README中没有对8652的解释

Config.php中却定义了8652

# If you want to grab data from a different ganglia source specify it here.

# Although, it would be strange to alter the IP since the Round-Robin

# databases need to be local to be read.

#

$ganglia_ip = “127.0.0.1”;

$ganglia_port = 8652;

感觉更混乱了。请把你的见解告诉我,谢谢!

Email: i19gomail#gmail.com

本文档是ganglia初级功能的实现,一些高级功能没有写。比如分层,备份,以及多个cluster的监控。

参考文献:

http://www.ibm.com/developerworks/cn/linux/l-ganglia-nagios-1/

Ganglia 和 Nagios,第 1 部分: 用 Ganglia 监视企业集群

http://www.javabloger.com/article/j2ee-linux-ganglia-rrdtool-java-mysql-1.html

集群下的ganglia多点系统监控 (一)

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MS WORD 表格自己主动调整列宽,自己主动变美丽,依据内容自己主动调整

    MS WORD 表格自己主动调整列宽,自己主动变美丽,依据内容自己主动调整

    2022年2月4日
    45
  • mt4下载和安装好后如何使用呢「建议收藏」

    mt4下载和安装好后如何使用呢「建议收藏」首先要了解一些基本的功能,先来认识一下工具栏。mt4的工具栏有市场报价、导航、新订单、数据窗口以及终端,这些都是很重要的工具。在MT4的窗口上,有交易产品的展示,哪些是可以销售和购买的,以及当前对应产品的价格。另外一个还要经常用到的就是图标数据分析的功能,例如选择图标的形态,时间的管理周期,缩放功能等等。常用的分析工具是K线图的时间周期,可以根据自己需要的时间周期,在工具栏的图标上进行选择,从而对交易产品进行研究观测和分析。另外如果想更加精确,还需要十字光标、划线工具、文字及文字标签进行辅助。.

    2022年8月15日
    4
  • OriginPro绘图过程中遇到的问题及解决办法

    OriginPro绘图过程中遇到的问题及解决办法y轴标题如何只显示单位不显示长名称?选中坐标轴标题,右击,选择属性,将文本内容由%(?Y)改为%(?Y,@lu),即可。此为软件内部代码,可以正常使用。

    2022年5月29日
    77
  • spss交叉表分析 + SPSS卡方检验

    spss交叉表分析 + SPSS卡方检验spss中交叉分析主要用来检验两个变量之间是否存在关系,或者说是否独立,其零假设为两个变量之间没有关系。在实际工作中,经常用交叉表来分析比例是否相等。例如分析不同的性别对不同的报纸的选择有什么不同。spss交叉表分析方法与步骤: 1、在spss中打开数据,然后依次打开:analyze–descriptive–crosstabs,打开交叉表对话框 2、将性别放到行列表,将

    2022年5月16日
    206
  • SuRF: 一个优化的 Fast Succinct Tries

    SuRF: 一个优化的 Fast Succinct Tries

    2022年4月3日
    47
  • 详细教你如何部署ICE服务(一)

    详细教你如何部署ICE服务(一)这系列文章将会一步步教你如何部署一个ICE服务,如果你正在读这篇博客,我想你已经了解了什么是ICE(InternetCommunicationsEngine),以及如何去实现ICE服务,并且了解什么是ICE对象、ICE对象标识符、ICE对象适配器、ICE服务实现servant、ICE通信器等概念,当然如果你连什么是ICE都不知道,我不建议你继续读下去。先说一下ICE的基本组件:(1)

    2022年5月30日
    32

发表回复

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

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