linux集群上配置Ganglia监控系统并监控solrWord格式.docx

上传人:b****6 文档编号:21732593 上传时间:2023-02-01 格式:DOCX 页数:16 大小:536.61KB
下载 相关 举报
linux集群上配置Ganglia监控系统并监控solrWord格式.docx_第1页
第1页 / 共16页
linux集群上配置Ganglia监控系统并监控solrWord格式.docx_第2页
第2页 / 共16页
linux集群上配置Ganglia监控系统并监控solrWord格式.docx_第3页
第3页 / 共16页
linux集群上配置Ganglia监控系统并监控solrWord格式.docx_第4页
第4页 / 共16页
linux集群上配置Ganglia监控系统并监控solrWord格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

linux集群上配置Ganglia监控系统并监控solrWord格式.docx

《linux集群上配置Ganglia监控系统并监控solrWord格式.docx》由会员分享,可在线阅读,更多相关《linux集群上配置Ganglia监控系统并监控solrWord格式.docx(16页珍藏版)》请在冰豆网上搜索。

linux集群上配置Ganglia监控系统并监控solrWord格式.docx

∙gmond是一个守护进程,他运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息。

∙gmetad也是一个守护进程,他定期检查gmonds,从那里拉取数据,并将他们的指标存储在RRD存储引擎中。

它可以查询多个集群并聚合指标。

RRD也被用于生成用户界面的web前端。

∙ganglia-web顾名思义,他应该安装在有gmetad运行的机器上,以便读取RRD文件。

一般来说一个集群的每台机器上都需要安装gmond,只要负责展示web界面的机器安装了gmetad即可。

Ganglia采用InternetIPv4类D地址中的的组播进行数据请求。

主要是为了实现一对多节省带宽的需要。

其实现原理为gmetad发送一个请求到一个组播地址,由于是组播地址,所以gmetad只需发送一次请求包即可完成对所有gmond的轮询。

(如果是单播,则Ganglia需要向每台服务器均发送一次轮询请求,这样的话,集群数量多了,主服务器光发送就会占用不小的带宽。

而Ganglia本身是为大规模集群所做的HPC而生的,如果占用很高的带宽和占用很大量的CPU资源去处理网络数据就不符合其设计理念了。

)然后gmond通过这个请求将采集到的数据返回给gmetad,gmetad将数据保存在rrd数据库中,然后通过web界面绘图展示。

三、安装Ganglia

在服务器端:

#安装基础的开发包

直接在linux中使用下面命令下载,会有几部提示,都按:

y全部下载即可

yuminstall–ywgetapr-develapr-utilcheck-develcairo-develpango-devellibxml2-develrpmbuildglib2-develdbus-develfreetype-develfontconfig-develgcc-c++expat-develpython-devellibXrender-develrrdtool*

#安装jmxtrans

执行完之后,再以此执行以下的与语句,在上面安装执行完毕之后,执行以下的几个命令:

rpm-ivh

#安装绘图工具:

rrdtool

它用于数据存储和可视化

yuminstallrrdtool

#安装相应的ganglia

yuminstallganglia*

执行这个命令的时候也会有几个提示,Isthisok[y/N]:

都按:

至此,相应的Ganglia以及其需要的支撑软件全部安装完毕。

在客户端:

除了不需要安装rrdtool这个之外,其他的都需要进行安装,由于部署的是监控solr以及集群cpu、memory、tcp等基础信息,所以不仅需要启动gmond服务,还需要启动jmxtrans的服务。

因为在jmxtrans的路径下增加了solr.json配置文件(针对solr监控的配置信息)。

四、配置相应的文件

●配置gmetad.conf文件(ganglia服务端配置文件)

vim/etc/ganglia/gmetad.conf

增加data_source“solrcluster”127.0.0.1

如果是集群环境配置,那么需要这样配置:

data_source"

solrcluster"

localhostclnode1clnode2

其中localhost可以为:

127.0.0.1,也可以是你本服务器实际的地址即:

10.38.11.102,后面的clnode1,clnode2为集群内的节点(注意:

在主服务器上配置多个节点,使用这台服务器去监控集群中的所有节点的信息,我本地服务器默认是102,来监控102、103、104这三台服务器的信息)那么此时的clnode1和clnode2即需要在10.38.11.103和104上的gmnod.conf中的cluster的name里配置。

如下图所示的配置。

之后重新启动gmetad.conf和gmode.conf这两个服务即可。

solrtest1solrtest2solrtest4

注意:

如果集群节点名字发生了改变,你需要修改集群节点管理器上的/etc/gmetad.conf文件,重启所有节点上的gmond,然后重启集群节点管理器上的gmetad以使改变生效。

data_source中的每个节点都应该向Ganglia提供相同的信息进行监视,因为Ganglia使用对称模式(多播)通讯,其中一个节点失效意味着Ganglia可以继续连接到下一个节点,因为这个原因,每个data_source条目中不一定要指定集群中的每个主机。

●配置gmond.conf文件(ganglia客户端配置文件)

vim/etc/ganglia/gmond.conf

修改cluster中的name,其中name可以是随意的,如下图:

这块配置的名称就会在首页面的节点信息显示出来,标示对应的服务器的节点名称。

切忌,这里需要注意一点,我这里有3台服务器,那么对应的name值在3台服务器上需要都要一致,因为所有name相同的节点将认为在同一个集群里,那么需要在配置/etc/ganglia/gmetad.conf文件的时候,对应的名称也需要和这个name名称一致。

【在问题总结处,有对应的各个块的详细解释】

●修改ganglia.conf文件(ganglia服务配置文件)

vim/etc/httpd/conf.d/ganglia.conf

将Denyfromall修改为Allowfromall

●增加solr.json文件(针对监控内容配置文件)

配置jmxtrans对应的监控solr的json文件,即在/var/lib/jmxtrans文件夹下创建一个solr.json文件,在其中里面新增内容如下:

(加红色的地方需要修改,其中alias在每台服务器上都是用solrtest1,这只不过是一个别名,标志着这台服务器下的服务信息。

但是必须要保证下面标红色的所有alias都要一致才可以)

{

"

servers"

:

[

host"

"

10.38.11.102"

alias"

solrtest1"

port"

3000"

queries"

obj"

java.lang:

type=Memory"

resultAlias"

:

solrtest1.heap"

attr"

["

HeapMemoryUsage"

"

NonHeapMemoryUsage"

],

outputWriters"

{

@class"

com.googlecode.jmxtrans.model.output.GangliaWriter"

settings"

groupName"

Solr-JVM"

239.2.11.71"

8649"

}

}]

},

name=CMSOldGen,type=MemoryPool"

solrtest1.cmsoldgen"

Usage"

type=GarbageCollector,name=*"

solrtest1.gc"

CollectionCount"

CollectionTime"

],

type=Threading"

solrtest1.threads"

DaemonThreadCount"

PeakThreadCount"

ThreadCount"

TotalStartedThreadCount"

solr/collection1:

type=queryResultCache,id=org.apache.solr.search.LRUCache"

solrtest1.queryCache"

warmupTime"

"

size"

lookups"

evictions"

hits"

hitratio"

inserts"

cumulative_lookups"

cumulative_hits"

cumulative_hitratio"

cumulative_inserts"

cumulative_evictions"

type=searcher,id=org.apache.solr.search.SolrIndexSearcher"

solrtest1.searcher"

maxDoc"

numDocs"

}

其中239.2.11.71:

8649是ganglia默认的多点传输通道

五、启动顺序

主服务启动:

//启动apache服务

/etc/init.d/httpdstart(启动这个的时候可能会报出问题,请查看下面的问题总结)

//启动ganglia服务端服务也即绘图服务

/etc/init.d/gmetadstart

//启动ganglia客户端服务也即数据收集服务

/etc/init.d/gmondstart

//jmx的启动

/etc/init.d/jmxtransstart

启动solr的时候,需要加上一些有关solr配置的参数。

可以在相应的配置文件中将该参数加入启动参数,例如我本机的是在:

/etc/default/jetty中加入的,如下图所示:

增加的启动参入如下:

-Djava.rmi.server.hostname=10.38.11.102-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=3000-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false

//solr的启动

/etc/init.d/jettystart

集群客户端的启动:

/etc/init.d/jettystart(当然在启动solr服务的时候,也是需要将相应的启动参数配置到相应的配置文件中)

每个服务器上都要按照此顺序进行启动,启动之后在浏览器上输入http:

//10.38.11.102/ganglia就可以看到如下图所示的效果了:

下方的3个服务器监控都会显示出来,可以点进去具体的一个查看详情等信息。

六、问题总结

1.启动jmxtrans的时候,会报出无法检测到对应的服务器home内容,即无法连接

这是因为jmxtrans启动的时候会从hosts文件中寻找对应hostname值的ip地址,此时如果寻找不到,那么需要我们在hosts中增加上对应hostname对应的本地ip地址,例如我增加如下:

(注意:

根据具体提示信息来进行配置)

127.0.0.1

2.在/etc/ganglia/gmod.conf文件中,各个段对应的内容意思如下:

globals段:

gmond的全局配置,一般不需要修改

cluster段:

这一段是重要的一段,至少需要定义name变量,所有name相同的节点将认为在同一个集群里,其他变量是对该集群的说明。

host段:

只有一个变量,location,是对这个节点的一些说明

udp_send_channel段:

这也是很重要的一段,可以定义多个这样的段,不过如果在通一局域网内,只有一个集群的环境下,这一段保持默认也可以工作的很好。

ganglia默认采用多播发送监控数据,mcast_join变量指定多播组。

但是,并非所有环境都适合多播,例如,我的环境就不适合多播,幸运的是,ganglia也支持单播的方式,host变量指定一台gmond服务器接受监控数据。

值得注意的是,mcast_join和host不能同时出现在一个channel里。

port指定端口号,ttl指定跳数一般为1,如果需要经过gmond中转,需要修改这个跳数。

udp_recv_channel段:

对应于udp_send_channel段,也可以设置多个。

如果采用单播的方式,需要注意bind变量指出的ip,你的所有其他gmond可以访问到,事实上,可以使用0.0.0.0

tcp_accept_channel段:

指定一个端口,可以通过TCP的的方式,从这个端口读取XML格式的监控数据

modules段和collection_group段:

这两段会在下一篇讲扩展gmond的文章中介绍

七、集群的分组部署

默认配置下,Ganglia会把所有东西放在一个Grid里面,也就是一个网格。

大的集群,不分组。

但是真实的服务器集群有各种功能,每个群分管不同的事务,全放一起就太乱了。

也不好识别,所以需要分组使用。

其实Ganglia的分组很简单,就是分端口,不同的组配置不同的监听端口就完事了。

我的gmetad.conf是这样配置的。

gmetad

Namenode"

192.168.1.28:

8653

Datanode"

192.168.1.27:

8649

Portal"

192.168.1.43:

8650

Collector"

192.168.1.35:

8651

DB"

192.168.1.51:

8652

gridname"

Hadoop"

rrd_rootdir"

/opt/modules/ganglia/html/rrds"

#配置rrd数据保存文件的路径,给web界面用的,这个是固定的,最好放在web文件夹下,并赋予正确的权限

case_sensitive_hostnames0

数据来源有5个,这5个分别是每个组的组长,相当于一道杠。

但是组长是不需要配置gmetad的,除非你要做多级组播收集数据。

每个组长只需要分配不同的端口号就可以了。

你可能会问,IP不一样,端口一样不行吗?

不行,因为这个IP是单播IP,相当于一个路由指向,而Ganglia实际的数据传输是在多播IP上进行的,而多播IP只有一个。

在客户端配置,如果你需要多级gmetad,可以配多个多播IP。

客户端配置就比较复杂一些了。

我只贴上需要修改的部分,其他都是默认就可以了

gmond

cluster{

 

name="

 

#对应gmetad中的Portal,名称一定要写对。

owner="

unspecified"

latlong="

url="

/*Feelfreetospecifyasmanyudp_send_channelsasyoulike. 

Gmond

usedtoonlysupporthavingasinglechannel*/

udp_send_channel{

#bind_hostname=yes#Highlyrecommended,soontobedefault.

#Thisoptiontellsgmondtouseasourceaddress

#thatresolvestothemachine'

shostname. 

Without

#this,themetricsmayappeartocomefromany

#interfaceandtheDNSnamesassociatedwith

#thoseIPswillbeusedtocreatetheRRDs.

mcast_join=239.2.11.71

port=8650

#gmetad中的Portal所分配的端口号。

ttl=1

/*Youcanspecifyasmanyudp_recv_channelsasyoulikeaswell.*/

udp_recv_channel{

bind=239.2.11.71

/*Youcanspecifyasmanytcp_accept_channelsasyouliketoshare

anxmldescriptionofthestateofthecluster*/

tcp_accept_channel{

红色部分就是Portal小组的端口,从gmetad.conf中可以看到,Portal小组属于8650端口,那么相应的在gmond中,也要将udp和tcp端口写为8650。

如果是另外一个组的,就写上在gmetad中配置的那个端口。

当然,你可以把这个端口号想像为小组的代号。

可能更好理解一些。

再加上另外一个组的成员gmond就更容易理解了

/*Thehostsectiondescribesattributesofthehost,likethelocation*/

host{

location="

#Thisoptiontellsgmondtouse

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1