linux集群上配置Ganglia监控系统并监控solr_第1页
linux集群上配置Ganglia监控系统并监控solr_第2页
linux集群上配置Ganglia监控系统并监控solr_第3页
linux集群上配置Ganglia监控系统并监控solr_第4页
linux集群上配置Ganglia监控系统并监控solr_第5页
免费预览已结束,剩余13页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文档版本信息文档版本号更改内容简介更改人日期V1.0部署文档初稿梁永星2014/09/10V1.1增加技术技巧以及问题总结梁永星2014/09/11V1.2增加集群分组部署梁永星2014/09/12V1.3增加Ganglia对solr的监控梁永星2014/09/15安装环境CentOSServer6.4安装 gmetad 的机器:02安装 gmond 的机器:02,03,04安装浏览监控 web 页面的机器:02二、GangliaGanglia 的介绍Ganglia 监控套件包括三个主要部分:g

2、mondgmetad,和网页接口,通常被称为ganglia-web。gmond 是一个守护进程,他运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息。gmetad 也是一个守护进程,他定期检查 gmonds,从那里拉取数据,并将他们的指标存储在 RRD储引擎中。它可以查询多个集群并聚合指标。RRD&被用于生成用户界面的web 前端。ganglia-web 顾名思义,他应该安装在有 gmetad 运行的机器上,以便读取 RRD件。一般来说一个集群的每台机器上都需要安装 gmond 只要负责展示 web 界面的机器安装了 gmetad 即可。Gangl

3、ia 采用 InternetIPv4 类 D 地址中的的组播进行数据请求。主要是为了实现一对多节省带宽的需要。其实现原理为 gmetad 发送一个请求到一个组播地址,由于是组播地址,所以 gmetad 只需发送一次请求包即可完成对所有 gmond 的轮询。(如果是单播,则 Ganglia 需要向每台服务器均发送一次轮询请求,这样的话,集群数量多了,主服务器光发送就会占用不小的带宽。而 Ganglia 本身是为大规模集群所做的 HPC 而生的,如果占用很高的带宽和占用很大量的 CPU资源去处理网络数据就不符合其设计理念了。)然后 gmond过这个请求将采集到的数据返回给 gmetad,gmeta

4、d 将数据保存在 rrd 数据库中,然后通过 web 界面绘图展示。三、安装 GangliaGanglia在服务器端:# # 安装基础的开发包直接在 linux 中使用下面命令下载,会有几部提示,都按:y 全部下载即可yuminstallywgetapr-develapr-utilcheck-develcairo-develpango-devellibxml2-develrpmbuildglib2-develdbus-develfreetype-develfontconfig-develgcc-c+expat-develpython-devellibXrender-develrrdtool*#

5、 # 安装 jmxtransjmxtrans执行完之后,再以此执行以下的与语句,在上面安装执行完毕之后,执行以下的几个命令:rpm-ivhhttp:/ # 安装绘图工具:rrdtool它用于数据存储和可视化yuminstallrrdtool# # 安装相应的 gangliagangliayuminstallganglia*执行这个命令的时候也会有几个提示,Isthisoky/N:都按:y 全部下载即可至此,相应的 Ganglia 以及其需要的支撑软件全部安装完毕。在客户端:除了不需要安装 rrdtoolrrdtool 这个之外,其他的都需要进行安装,由于部署的是监控 solr 以及集群 cpu

6、、memory、tcp 等基础信息,所以不仅需要启动 gmond 服务,还需要启动 jmxtrans 的服务。因为在jmxtrans 的路径下增加了 solr.json 配置文件(针对 solr 监控的配置信息)。四、配置相应的文件配置 gmetad.conf 文件(ganglia 服务端配置文件)vim/etc/ganglia/gmetad.conf增力口 data_sourcesolrcluster”data_soucce10.11.1G2对网的工F地增为9打“机富的工F地年如果是集群环境配置,那么需要这样配置:data_sourcesolrclusterlocalhos

7、tclnode1clnode2其中 localhost 可以为:,也可以是你本服务器实际的地址即:02,后面的 clnode1,clnode2 为集群内的节点(注意:在主服务器上配置多个节点,使用这台服务器去监控集群中的所有节点的信息,我本地服务器默认是 102,来监控 102、103、104 这三台服务器的信息)那么此时的 clnode1 和 clnode2 即需要在 03 和 104上的 gmnod.conf 中的 cluster 的 name 里配置。如下图所示的配置。之后重新启动gmetad.conf 和 gmode.conf

8、这两个服务即可。data_sourcesolrclustersolrtest1solrtest2solrtest4注意:如果集群节点名字发生了改变,你需要修改集群节点管理器上的/etc/gmetad.conf文件,重启所有节点上的 gmond,然后重启集群节点管理器上的 gmetad 以使改变生效。data_source 中的每个节点都应该向 Ganglia 提供相同的信息进行监视,因为 Ganglia使用对称模式(多播)通讯,其中一个节点失效意味着 Ganglia 可以继续连接到下一个节点,因为这个原因,每个 data_source 条目中不一定要指定集群中的每个主机。配置 gmond.co

9、nf 文件(ganglia 客户端配置文件)vim/etc/ganglia/gmond.conf修改 cluster 中的 name,其中 name 可以是随意的,如下图:/*小Theqlu3工堂口口名匚二tbntf寸specifiedwillheused。pm二匚ofthe*ragthatwillwrapallhantmt口。Lu口匚Edbythisinstance*/cliiatgrIln.ajne-solreluaterHowner-unspecified1latlonq-unspecifiedurl=ftiin9pecified1,1这块配置的名称就会在首页面的节点信息显示出来,标示对

10、应的服务器的节点名称。注意:切忌,这里需要注意一点,我这里有 3 台服务器,那么对应的 name 值在 3台服务器上需要都要一致,因为所有 name 相同的节点将认为在同一个集群里,那么需要在配置/etc/ganglia/gmetad.conf 文件的时候,对应的名称也需要和这个 name 名称一致。【在问题总结处,有对应的各个块的详细解释】修改 ganglia.conf 文件(ganglia 服务配置文件)vim/etc/httpd/conf.d/ganglia.conf 将 Denyfromall 修改为 Allowfromalliliis/ganglia/usr/aliart/gangl

11、ialllowfromall|Allowfrom10,38,11,102AllowfTOlIll:1LoGationQ这即的秆?a 是此处的咎字要和下批配置的名礴定要致JI中R士h*口1侬民为*111ill,对的的IQ3811102也可以为以人的127。 。1.因为痛足只通小施般增加 solr.json 文件(针对监控内容配置文件)配置 jmxtrans 对应的监控 solr 的 json 文件,即在/var/lib/jmxtrans 文件夹下创建一个solr.json 文件,在其中里面新增内容如下:(加红色的地方需要修改,其中 alias 在每台服务器上都是用 solrtestl,这只不过是

12、一个别名,标志着这台服务器下的服务信息。但是必须要保证下面标红色的所有 alias 都要一致才可以)(servers:(host:02,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:Sol

13、r-JVM,host:1,port:8649,obj:java.lang:name=CMSOldGen,type=MemoryPool,resultAlias:solrtest1.cmsoldgen,attr:Usage,outputWriters:class:com.googlecode.jmxtrans.model.output.GangliaWriter,settings:groupName:Solr-JVM,host:1,port:8649,obj:java.lang:type=GarbageCollector,name=*,resultAlia

14、s:solrtest1.gc,attr:CollectionCount,CollectionTime,outputwriters:(class:com.googlecode.jmxtrans.model.output.GangliaWriter,settings:groupName:Solr-JVM,host:1,port:8649,obj:java.lang:type=Threading,resultAlias:solrtest1.threads,attr:DaemonThreadCount,PeakThreadCount,ThreadCount,TotalStarted

15、ThreadCount,outputWriters:class:com.googlecode.jmxtrans.model.output.GangliaWriter,settings:groupName:Solr-JVM,host:1,port:8649,obj:solr/collection1:type=queryResultCache,id=org.apache.solr.search.LRUCache,resultAlias:solrtest1.queryCache,attrwarmupTime,size,lookups,evictions,hits,hitratio

16、,inserts,cumulative_lookups,cumulative_hits,cumulative_hits,cumulative_hitratio,cumulative_inserts,cumulative_evictions,outputWriters:class:com.googlecode.jmxtrans.model.output.GangliaWriter,settings:groupName:Solr-JVM,host:1,port:8649,obj:solr/collection1:type=searcher,id=org.apache.solr.

17、search.SolrIndexSearcher,resultAlias:solrtest1.searcher,attr:maxDoc,numDocs,warmupTime,outputwriters:(class:com.googlecode.jmxtrans.model.output.GangliaWriter,settings:groupName:Solr-JVM,host:1,port:8649其中 1:8649 是 ganglia 默认的多点传输通道五、启动顺序主服务启动:启动 apache 服务/etc/init.d/httpdstart(启

18、动这个的时候可能会报出问题,请查看下面的问题总结)启动 ganglia 服务端服务也即绘图服务/etc/init.d/gmetadstart启动 ganglia 客户端服务也即数据收集服务/etc/init.d/gmondstart/jmx 的启动/etc/init.d/jmxtransstart启动 solr 的时候,需要加上一些有关 solr 配置的参数。可以在相应的配置文件中将该参数加入启动参数,例如我本机的是在:/etc/default/jetty 中加入的,如下图所示:(711(711OCT-IhaOCT-Iha1 1324m工TffEni-CztHz=aLrts3zL:21:1,s

19、nlrtESt;:21G1P5clrt5:i12L-Zlrnlr.5cZr.2jt33e=/haie/MCJ/50LT/EOife/aqlr-I1jniaerveTnD3tnine=lC,3011-Dcou3UD-unagKnl;,jscroDt-Dccc.sui.jmaoDtE,pait=300Q=Dan3im,UiugEXiit.JLT.jurficte.auitifL:Mhae/sLr/mLr/bodeJEnY_CR=soh!JiTT?_LT*S=/r:JiTT?_LT*S=/r:zne;m二li/aolr/ncZT/IDC?增加的启动参入如下:-Djava.rmi.server.hos

20、tname=02-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集群客户端的启动:启动 ganglia 客户端服务也即数据收集服务/etc/init.d/gmondstart/jmx 的启动/etc/init.d/jmxtransstart/sol

21、r 的启动/etc/init.d/jettystart(当然在启动 solr 服务的时候,也是需要将相应的启动参数配置到相应的配置文件中)每个服务器上都要按照此顺序进行启动,启动之后在浏览器上输入02/ganglia 就可以看到如下图所示的效果了:MKSitLwdMLtirw.frIw.1I卜方的 3 个服务器监控都会显示出来,可以点进去具体的一个查看详情等信息。sLrvluterClusUrftepnrlforFri.12SepI47WOFIIFILCAItrldAqrHrrl醛-rChHi#BH#Mirth虹卡Un顿f”i4ir口5ft”loadHvr益个1

22、HliK9 i*.Htwr!r-tTUrLL.GTkriMVrjIw_rw1rufeh,rYL*ldl*BfhSM*IIplfl,”,户1$(HiwilIQMilaElvUm,SiMl- MaCFOlii*g+rlrcij-:r6riiiETrLeqtioalawIA*4tIkrttan”MwcflF*4UW f1iFPccdRtwrry54MperrdIEwih*i.六、问题总结1 .启动 jmxtrans 的时候,会报出无法检测到对应的服务器 home 内容,即无法连接这是因为 jmxtrans 启动的时候会从 hosts 文件中寻找对应 hostname 值白 ip 地址,此时如果寻找不

23、到,那么需要我们在 hosts 中增加上对应 hostname 对应的本地 ip 地址,例如我增加如下:(注意:根据具体提示信息来进行配置)2 .在/etc/ganglia/gmod.conf 文件中,各个段对应的内容意思如下:globals 段:gmond 的全局配置,一般不需要修改cluster 段:这一段是重要的一段,至少需要定义 name 变量,所有 name 相同的节点将认为在同一个集群里,其他变量是对该集群的说明。host 段:只有一个变量,location,是对这个节点的一些说明udp_send_channel 段: 这也是很重要的一段, 可以定义多个这样的段, 不过如果在通一局

24、域网内,只有一个集群的环境下,这一段保持默认也可以工作的很好。ganglia默认采用多播发送监控数据,mcast_join 变量指定多播组。但是,并非所有环境都适合多播,例如,我的环境就不适合多播,幸运的是,ganglia 也支持单播的方式,host 变量指定一台 gmond 服务器接受监控数据。值得注意的是,mcast_join 和 host不能同时出现在一个 channel 里。 port 指定端口号, ttl 指定跳数一般为 1,如果需要经过 gmond中转,需要修改这个跳数。udp_recv_channel 段:对应于 udp_send_channel 段,也可以设置多个。如果采用单播

25、的方式,需要注意 bind 变量指出的 ip,你的所有其他 gmond 可以访问到,事实上,可以使用 tcp_accept_channel 段:指定一个端口,可以通过 TCP 的的方式,从这个端口读取 XML 格式向监控数据modules 段和 collection_group 段:这两段会在下一篇讲扩展 gmond 的文章中介绍七、集群的分组部署默认配置下,Ganglia 会把所有东西放在一个 Grid 里面,也就是一个网格。大的集群,不分组。但是真实的服务器集群有各种功能,每个群分管不同的事务,全放一起就太乱了。也不好识别,所以需要分组使用。其实 Ganglia 的分组很简单

26、,就是分端口,不同的组配置不同的监听端口就完事了。我的 gmetad.conf 是这样配置的。gmetaddata_sourceNamenode8:8653data_sourceDatanode7:8649data_sourcePortal3:8650data_sourceCollector5:8651data_sourceDB1:8652gridnameHadooprrd_rootdir/opt/modules/ganglia/html/rrds#配置rrd数据保存文件的路径,给we

27、b界面用的,这个是固定的,最好放在web文件夹下,并赋予正确的权限case_sensitive_hostnames0数据来源有 5 个,这 5 个分别是每个组的组长,相当于一道杠。但是组长是不需要配置gmetad 的,除非你要做多级组播收集数据。每个组长只需要分配不同的端口号就可以了。你可能会问, IP 不一样, 端口一样不行吗?不行, 因为这个 IP 是单播 IP,相当于一个路由指向, 而 Ganglia实际的数据传输是在多播 IP 上进行的,而多播 IP 只有一个。在客户端配置,如果你需要多级 gmetad,可以配多个多播 IP。客户端配置就比较复杂一些了。我只贴上需要修改的部分,其他都是

28、默认就可以了gmondclustername=Portal#对应 gmetad 中的 Portal,名称一定要写对。owner=unspecifiedlatlong=unspecifiedurl=unspecified/*Feelfreetospecifyasmanyudp_send_channelsasyoulike.Gmondusedtoonlysupporthavingasinglechannel*/udp_send_channel#bind_hostname=yes#Highlyrecommended,soontobedefault.#Thisoptiontellsgmondtouse

29、asourceaddress#thatresolvestothemachineshostname.Without#this,themetricsmayappeartocomefromany#interfaceandtheDNSnamesassociatedwith#thoseIPswillbeusedtocreatetheRRDs.mcast_join=1port=8650#gmetad 中的 Portal 所分配的端口号。ttl=1/*Youcanspecifyasmanyudp_recv_channelsasyoulikeaswell.*/udp_recv_channe

30、lmcast_join=1port=8650bind=1/*Youcanspecifyasmanytcp_accept_channelsasyouliketoshareanxmldescriptionofthestateofthecluster*/tcp_accept_channelport=8650红色部分就是 Portal 小组的端口,从 gmetad.conf 中可以看到,Portal 小组属于 8650端口,那么相应的在 gmond 中,也要将 udp 和 tcp 端口写为 8650。如果是另外一个组的,就写上在 gmetad 中配置的那个端口。

31、当然,你可以把这个端口号想像为小组的代号。可能更好理解一些。再加上另外一个组的成员 gmond 就更容易理解了clustername=DBowner=unspecifiedlatlong=unspecifiedurl=unspecified/*Thehostsectiondescribesattributesofthehost,likethelocation*/hostlocation=unspecified/*Feelfreetospecifyasmanyudp_send_channelsasyoulike.Gmondusedtoonlysupporthavingasinglechannel

32、*/udp_send_channel#bind_hostname=yes#Highlyrecommended,soontobedefault.#Thisoptiontellsgmondtouseasourceaddress#thatresolvestothemachineshostname.Without#this,themetricsmayappeartocomefromany#interfaceandtheDNSnamesassociatedwith#thoseIPswillbeusedtocreatetheRRDs.mcast_join=1port=8652ttl=1

33、/*Youcanspecifyasmanyudp_recv_channelsasyoulikeaswell.*/udp_recv_channelmcast_join=1port=8652bind=1/*Youcanspecifyasmanytcp_accept_channelsasyouliketoshareanxmldescriptionofthestateofthecluster*/tcp_accept_channelport=8652红色对红色,蓝色对蓝色。一目了然。附监控效果图:40 台服务器,228 颗 CPU 共计 900G 内存,网络流量峰

34、值总计 300M 字节左右。50:8655:8651:8651data_sourceanothersource:8655HQS&IUOaHenExdcwK口ILtB*j第:jEtx.1Iftl,nr五4HIifHM|M*pH*/14-*T1/H.-*i-设置监控频率通过datasource参数定义了一个监控集群,如果要监控多个应用系统,可以通过如下方式定义:data_:864:8655datasourcemygridIHUdwpCVM口J5*Ifai1SJWUf3200:01-LZ-4HgLMKAIBI-StaiS-C-ijTWtLnsdI,*.El1lei4啊inmr山EE0nlgrpSBwiiAikrah-sri-w-almpO* W*MD9n44他翻li-53lSCO01Iir在定义集群节点的时候,可以采用主机名、IP地址等形式,也可以加端口,如果不加端口的话,默认

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论