您好,登錄后才能下訂單哦!
Ganglia 是UC Berkeley發(fā)起的一個(gè)開(kāi)源監(jiān)視項(xiàng)目,設(shè)計(jì)用于測(cè)量數(shù)以千計(jì)的節(jié)點(diǎn)。每臺(tái)計(jì)算機(jī)都運(yùn)行一個(gè)收集和發(fā)送度量數(shù)據(jù)(如處理器速度、內(nèi)存使用量等)的名為gmond
的守護(hù)進(jìn)程。它將從操作系統(tǒng)和指定主機(jī)中收集。接收所有度量數(shù)據(jù)的主機(jī)可以顯示這些數(shù)據(jù)并且可以將這些數(shù)據(jù)的精簡(jiǎn)表單傳遞到層次結(jié)構(gòu)中。正因?yàn)橛羞@種層次結(jié)構(gòu)模式,才使得Ganglia 可以實(shí)現(xiàn)良好的擴(kuò)展。gmond
帶來(lái)的系統(tǒng)負(fù)載非常少,這使得它成為在集群中各臺(tái)計(jì)算機(jī)上運(yùn)行的一段代碼,而不會(huì)影響用戶性能。
所有這些數(shù)據(jù)收集會(huì)多次影響節(jié)點(diǎn)性能。網(wǎng)絡(luò)中的 “抖動(dòng)(Jitter)” 發(fā)生在大量小消息同時(shí)出現(xiàn)時(shí)。我們發(fā)現(xiàn)通過(guò)將節(jié)點(diǎn)時(shí)鐘保持一致,就可以避免這個(gè)問(wèn)題。
RRDTool 表示:輪循數(shù)據(jù)庫(kù)工具(Round Robin Database Tool)。它是由Tobias Oetiker創(chuàng)建的,并且為許多高性能監(jiān)視工具提供了引擎。Ganglia是其中之一,但是Cacti 和Zenoss 是另外兩個(gè)。
要安裝 Ganglia,首先需要讓RRDTool 運(yùn)行在監(jiān)視服務(wù)器上。RRDTool將提供其他程序使用的兩個(gè)非常優(yōu)秀的功能:
它將在輪循數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)。隨著捕捉的數(shù)據(jù)變得越來(lái)越舊,解析的精確性將變得越來(lái)越低。這將占用很少的內(nèi)存并且在大多數(shù)情況下仍然有用。
它可以通過(guò)使用命令行實(shí)參根據(jù)捕捉的數(shù)據(jù)生成圖形。
工作原理圖
Ganglia的核心包含gmetad、gmond以及一個(gè)Web前端。主要是用來(lái)監(jiān)控系統(tǒng)性能,如:cpu、mem、硬盤(pán)利用率,I/O負(fù)載、網(wǎng)絡(luò)流量情況等,通過(guò)曲線很容易見(jiàn)到每個(gè)節(jié)點(diǎn)的工作狀態(tài),對(duì)合理調(diào)整、分配系統(tǒng)資源,提高系統(tǒng)整體性能起到重要作用。
gmetad可以部署在集群內(nèi)任一臺(tái)節(jié)點(diǎn)或者通過(guò)網(wǎng)絡(luò)連接到集群的獨(dú)立主機(jī),它通過(guò)單播路由的方式與gmond通信,收集區(qū)域內(nèi)節(jié)點(diǎn)的狀態(tài)信息,并以XML數(shù)據(jù)的形式,保存在數(shù)據(jù)庫(kù)中。
每臺(tái)計(jì)算機(jī)都運(yùn)行一個(gè)收集和發(fā)送度量數(shù)據(jù)的名為gmond(帶來(lái)的系統(tǒng)負(fù)載非常少)的守護(hù)進(jìn)程。
由RRDTool工具處理數(shù)據(jù),并生成相應(yīng)的的圖形顯示,以Web方式直觀的提供給客戶端。
安裝軟件包依賴性
yum install -y libart_lgpl_devel gcc gcc-c++ python-devel pcre-devel expat-devel rrdtool-devel apr-devel rpm-build
rpm -ivh libconfuse-2.6-3.el6.x86_64.rpm libconfuse-devel-2.6-3.el6.x86_64.rpm
rpmbuild -tb ganglia-3.3.7.tar.gz cd /root/rpmbuild/RPMS/x86_64 //放有g(shù)anglia源碼包rpmbuild的包5個(gè) ganglia-devel-3.6.0-1.x86_64.rpm ganglia-gmetad-3.6.0-1.x86_64.rpm ganglia-gmond-3.6.0-1.x86_64.rpm ganglia-gmond-modules-python-3.6.0-1.x86_64.rpm libganglia-3.6.0-1.x86_64.rpm
rpm -ivh *
vi /etc/ganglia/gmond.conf cluster { name = "my cluster" owner = "unspecified" latlong = "unspecified" url = "unspecified" }
service gmetad start
service gmond start
rpmbuild -tb ganglia-web-3.4.2.tar.gz
cd /root/rpmbuild/RPMS/noarch
ganglia-web-3.5.10-1.noarch.rpm
yum localinstall ganglia-web-3.5.10-1.noarch.rpm (默認(rèn)安裝路徑是/var/www/html/ganglia)
/etc/init.d/httpd restart //現(xiàn)在就可以用打開(kāi)ganglia-web(http://ip/ganglia)查看本機(jī)檢測(cè)信息
此時(shí)本機(jī)是server+client,若想再監(jiān)測(cè)其他主機(jī),須在其上安裝以下包:
ganglia-gmond-3.6.0-1.x86_64.rpm
ganglia-gmond-modules-python-3.6.0-1.x86_64.rpm
libganglia-3.6.0-1.x86_64.rpm
libconfuse-2.6-3.el6.x86_64.rpm
vi /etc/ganglia/gmond.conf //和上邊修改一樣
/etc/init.d/gmond start
現(xiàn)在可以重新啟動(dòng) gmetad,刷新Web 瀏覽器,然后應(yīng)當(dāng)會(huì)看到節(jié)點(diǎn)現(xiàn)在出現(xiàn)在列表中
進(jìn)入/var/lib/ganglia/rrds目錄,可以看到每個(gè)主機(jī)的度量指標(biāo),生成了易于查看的圖形.
-------------------------------------------------------------
ganglia+nagios整合:
Ganglia 和Nagios,這是兩個(gè)用于監(jiān)視數(shù)據(jù)中心的工具。這兩個(gè)工具被大量用于高性能計(jì)算(HPC)環(huán)境中,但是它們對(duì)于其他環(huán)境也具有很大的吸引力(例如云、呈
現(xiàn)集群和托管中心)。此外,兩者對(duì)監(jiān)視的定義也采取了不同的側(cè)重點(diǎn)。Ganglia更多地與收集度量數(shù)據(jù)并隨時(shí)跟蹤這些數(shù)據(jù)有關(guān),而Nagios 一直致力于成為一種報(bào)警機(jī)制。
tar zxf ganglia-3.6.0.tar.gz
cd ganglia-3.6.0/contrib
./check_ganglia.py -h ip -m disk_free -w 20 -c 10 //-h后根檢測(cè)主機(jī)的ip或hostname,-m后跟要監(jiān)測(cè)的對(duì)象,-w、-c指定警告和緊急的閥值
cp /ganglia-3.1.7/contrib/check_ganglia.py /usr/local/nagios/libexec 注:ganglia與nagios可以部署在不同的主機(jī)
vi /usr/local/nagios/libexec/check_ganglia.py //注意此處格式要求嚴(yán)格 if critical > warning: if value >= critical: print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric,value) sys.exit(2) elif value >= warning: print "CHECKGANGLIA WARNING: %s is %.2f" % (metric,value) sys.exit(1) else: print "CHECKGANGLIA OK: %s is %.2f" % (metric,value) sys.exit(0) else: if critical >= value: print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric,value) sys.exit(2) elif warning >= value: print "CHECKGANGLIA WARNING: %s is %.2f" % (metric,value) sys.exit(1) else: print "CHECKGANGLIA OK: %s is %.2f" % (metric,value) sys.exit(0)
chown nagios.nagios check_ganglia.py
配置nagios:
vi /usr/local/nagios/etc/objects/commands.cfg
define command {
command_name check_ganglia
command_line $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w $ARG2$ -c $ARG3$
}
vi /usr/local/nagios/etc/objects/templates.cfg
define service {
use generic-service
name ganglia-service
hostgroup_name ganglia-servers
service_groups ganglia-metrics
}
vi /usr/local/nagios/etc/objects/hosts.cfg
define host {
use linux-server
host_name ty2.org
address 192.168.0.21
}
define hostgroup {
hostgroup_name ganglia-servers
alias ganglia-servers
members ty2.org //hostgroup中的members必須要有host定義匹配
}
vi services.cfg
define service{
use ganglia-service
service_description 根分區(qū)
check_command check_ganglia!disk_free_percent_rootfs!20!10
}
define service{
use ganglia-service
service_description 系統(tǒng)負(fù)載
check_command check_ganglia!load_one!4!5
}
define service{
use ganglia-service
service_description 內(nèi)存空閑
check_command check_ganglia!mem_free!50000!30000
}
define servicegroup {
servicegroup_name ganglia-metrics
alias Ganglia Metrics
}
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
/etc/init.d/nagios reload
監(jiān)控成功,nagios下就可以看見(jiàn)ganglia監(jiān)測(cè)主機(jī)的信息
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。