Ganglia监控
一、Ganglia是什么?
? ???Ganglia是由UC Berkeley發(fā)起的一個(gè)開源項(xiàng)目,主要通過收集各節(jié)點(diǎn)上的度量數(shù)據(jù)(如處理器速度、內(nèi)存使用量等)實(shí)現(xiàn)系統(tǒng)性能的監(jiān)控。Ganglia的核心包含gmetad、gmond以及Web前端三部分,這三部分之間通過XDL(xml的壓縮格式)或者XML格式傳遞監(jiān)控?cái)?shù)據(jù),達(dá)到監(jiān)控效果。
二、Ganglia工作原理圖
? ? Ganglia監(jiān)控的大致過程為:集群內(nèi)的節(jié)點(diǎn)通過運(yùn)行g(shù)mond收集并相互發(fā)布節(jié)點(diǎn)狀態(tài)信息,然后gmetad利用RRDTool工具周期性的輪詢gmond收集到的信息,然后存入rrd數(shù)據(jù)庫,最后再利用RRDTool工具將收集到的數(shù)據(jù)創(chuàng)建成圖表,并通過web前端將其顯示出來。
二、Ganglia的組件
(1)Gmetad程序
?????????Gmetad用于輪詢gmond節(jié)點(diǎn)存儲(chǔ)的信息,并更新到rrd數(shù)據(jù)庫中
?? ??? ???一個(gè)數(shù)據(jù)源節(jié)點(diǎn)就是是一個(gè)gmond節(jié)點(diǎn)。一個(gè)gmetad節(jié)點(diǎn)可以設(shè)置多個(gè)數(shù)據(jù)源節(jié)點(diǎn),每個(gè)數(shù)據(jù)源節(jié)點(diǎn)可以有多個(gè)備份,一個(gè)數(shù)據(jù)源節(jié)點(diǎn)失敗了還可以從其他節(jié)點(diǎn)取數(shù)據(jù)。可以把Gmetad理解為服務(wù)器。
?? ??? ???Gmetad只有TCP通道,一方面它向datasource發(fā)送請求,獲取數(shù)據(jù)源節(jié)點(diǎn)的XML文件,另一方面會(huì)使用一個(gè)8651的默認(rèn)TCP端口發(fā)布自身收集的XML文件,因此,Gmetad即可以從Gmond也可以從其他Gmetad節(jié)點(diǎn)獲取XML數(shù)據(jù)。
(2)Gmond程序
?????????Gmond收集:一般用于收集本機(jī)的監(jiān)控?cái)?shù)據(jù),用gmond.conf的udp_rev_channel來配置
? ? ? ? ?Gmond存儲(chǔ):并不是所有的gmond的都用來存儲(chǔ),可以找出其中的一臺(tái)或者幾臺(tái)來存儲(chǔ)即可,用gmond.conf的udp_send_channel來配置
?? ??? ??Gmond節(jié)點(diǎn)之間的信息發(fā)送接收主要用udp協(xié)議,傳遞文件格式為XDL。
?? ??? ?每個(gè)Gmond收集到的數(shù)據(jù)供Gmetad讀取,Gmond通過默認(rèn)端口8649監(jiān)聽到Gmetad請求后將XML格式數(shù)據(jù)發(fā)送給Gmetad。可以將Gmond理解為客戶端。
??? ??? ?Gmond收集數(shù)據(jù)有muticast和unicast兩種。Gmond本身具有UDP的發(fā)送(send)和接受(recv)通道以及TCP的接收(recv)通道。其中UDP通道用于向其他Gmond節(jié)點(diǎn)發(fā)送或接收數(shù)據(jù),TCP通道主要接受來自Gmetad的請求,向Gmetad發(fā)送XML文件。在muticast模式下,Gmond節(jié)點(diǎn)之間通過UDP向多播目標(biāo)相互傳遞數(shù)據(jù)。
Gmond節(jié)點(diǎn)模塊結(jié)構(gòu)主要有三個(gè)模塊組成:
1)collect and publish模塊,該模塊周期性的調(diào)用一些內(nèi)部命令獲得metric data,然后將這些數(shù)據(jù)通過UDP通道發(fā)布給其他Gmond節(jié)點(diǎn)。
2)Listen Threads監(jiān)聽其他Gmond節(jié)點(diǎn)發(fā)送的UDP數(shù)據(jù),并將這些數(shù)據(jù)存放在內(nèi)存中
3)XML Export Threads負(fù)責(zé)將數(shù)據(jù)以XML格式發(fā)布出去,比如交給Gmetad。
在unicast模式下,多個(gè)Gmond節(jié)點(diǎn)通過UDP向單播的目標(biāo)主機(jī)host的Gmond發(fā)送數(shù)據(jù),Gmetad然后向目標(biāo)主機(jī)的Gmond請求XML文件。
在Unicast模式下,Gmond、Gmetad、rrd數(shù)據(jù)庫以及web前端通常位于集群內(nèi)的同一個(gè)節(jié)點(diǎn)上,該節(jié)點(diǎn)負(fù)責(zé)收集、存儲(chǔ)、顯示被監(jiān)控的各節(jié)點(diǎn)的狀態(tài)信息。
(3)Web前端
???? ??? ?Web前端通常和Gmetad安裝在同一個(gè)節(jié)點(diǎn)上,它從Gmetad中取數(shù)據(jù),并且讀取rrd數(shù)據(jù)庫,生成圖片顯示出來。
本文轉(zhuǎn)自西鼠 51CTO博客,原文鏈接:http://blog.51cto.com/10630401/1976444,如需轉(zhuǎn)載請自行聯(lián)系原作者
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生
總結(jié)
- 上一篇: Exchannge 2013数据库副本频
- 下一篇: Docker修改空间大小