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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • hadoop生态圈的理解「建议收藏」

    hadoop生态圈的理解「建议收藏」 hadoop部分:hadoop生态圈的理解(HDFS,MapReduce,HBASE,zookeeper,hive,sqoop,flume,kafka,yarn,spark) 一、简介       &am

    2022年5月22日
    26
  • navicat prenium最新激活码 mac【最新永久激活】「建议收藏」

    (navicat prenium最新激活码 mac)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsaWNlbnNlSW…

    2022年3月27日
    48
  • python光流法算法学习「建议收藏」

    python光流法算法学习「建议收藏」基于python-opencv程序对光流法的理解光流法的定义Lucas-Kanade光流原理Shi-Tomasi角点检测python-opencv代码demo光流法的定义光流法是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是由于场景…

    2022年7月23日
    9
  • QQ开心农场外挂软件设计思路「建议收藏」

    QQ开心农场外挂软件设计思路「建议收藏」今天玩了一下QQ的开心农场,我有一堆朋友在玩。每次去偷别人的东西时,都要一个一个地点选,看看是否有可摘的东西。然后还要一个个地点摘取,这样才算偷到,感觉好像有点太麻烦了。有时候朋友的东西可摘了,但是我没时间去看(总不能每XX分钟查一次,每次查全部的朋友的吧。。@@,那样会累死。。)然后我就想,如果有一软件,可以自动去自己的好友的地里偷东西。每隔十分钟查一次,如果好友的地里有东西可以摘,就把它…

    2025年8月27日
    8
  • 用python爬虫爬取图片的步骤_python数据爬虫

    用python爬虫爬取图片的步骤_python数据爬虫因为平时爱好摄影,所以喜欢看看色影无忌论坛的获奖摄影作品,所以写了个小script用来抓取上面的获奖图片,亲自测试可以使用。#-*-coding:UTF-8-*-#作者RockyChenimportre,urllib,sys,os,time,urllib2,cookielib,stringclassDownload:def__init__(self

    2025年11月17日
    5
  • monkeybuddy插件_v8引擎是什么意思

    monkeybuddy插件_v8引擎是什么意思介绍   SpiderMonkey是Firefox使用的脚本引擎,V8是GoogleChrome使用的脚本引擎。这篇文章介绍了怎样在自己的C++程序中嵌入这两种脚本引擎,以及简单做了一些横向的对比。 编译SpiderMonkey

    2022年10月16日
    5

发表回复

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

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