溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ganglia運(yùn)維監(jiān)控解決方案及與nagios監(jiān)控整合

發(fā)布時(shí)間:2020-07-14 22:29:14 來(lái)源:網(wǎng)絡(luò) 閱讀:1676 作者:劃舞魚(yú) 欄目:移動(dòng)開(kāi)發(fā)

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運(yùn)維監(jiān)控解決方案及與nagios監(jiān)控整合

工作原理圖


Ganglia的核心包含gmetad、gmond以及一個(gè)Web前端。主要是用來(lái)監(jiān)控系統(tǒng)性能,如:cpumem、硬盤(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ī)的iphostname-m后跟要監(jiān)測(cè)的對(duì)象,-w-c指定警告和緊急的閥值


cp /ganglia-3.1.7/contrib/check_ganglia.py /usr/local/nagios/libexec :ganglianagios可以部署在不同的主機(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ī)的信息




向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI