《輕松監(jiān)控上萬(wàn)臺(tái)服務(wù)器:企業(yè)運(yùn)維監(jiān)控平臺(tái)架構(gòu)設(shè)計(jì)與實(shí)踐指南》要點(diǎn):
本文介紹了輕松監(jiān)控上萬(wàn)臺(tái)服務(wù)器:企業(yè)運(yùn)維監(jiān)控平臺(tái)架構(gòu)設(shè)計(jì)與實(shí)踐指南,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
Cacti是一套基于PHP,MySQL,SNMP及RRDTool開發(fā)的網(wǎng)絡(luò)流量監(jiān)測(cè)圖形分析工具.
簡(jiǎn)單的說(shuō)Cacti?就是一個(gè)PHP?程序.它通過使用SNMP?協(xié)議獲取遠(yuǎn)端網(wǎng)絡(luò)設(shè)備和相關(guān)信息,(其實(shí)就是使用Net-SNMP軟件包的snmpget?和snmpwalk?命令獲取)并通過RRDTOOL?工具繪圖,通過PHP?程序展現(xiàn)出來(lái).我們使用它可以展現(xiàn)出監(jiān)控對(duì)象一段時(shí)間內(nèi)的狀態(tài)或者性能趨勢(shì)圖.
Nagios是一款開源的免費(fèi)網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機(jī)狀態(tài),交換機(jī)路由器等網(wǎng)絡(luò)設(shè)置,打印機(jī)等.在系統(tǒng)或服務(wù)狀態(tài)異常時(shí)發(fā)出郵件或短信報(bào)警第一時(shí)間通知網(wǎng)站運(yùn)維人員,在狀態(tài)恢復(fù)后發(fā)出正常的郵件或短信通知.
zabbix是一個(gè)基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)的開源解決方案.zabbix能監(jiān)視各種網(wǎng)絡(luò)參數(shù),保證服務(wù)器系統(tǒng)的安全運(yùn)營(yíng);并提供柔軟的通知機(jī)制以讓系統(tǒng)管理員快速定位/解決存在的各種問題.
zabbix由2部分構(gòu)成,zabbixserver與可選組件zabbix agent.zabbix server可以通過SNMP,zabbix agent,ping,端口監(jiān)視等方法提供對(duì)遠(yuǎn)程服務(wù)器/網(wǎng)絡(luò)狀態(tài)的監(jiān)視,數(shù)據(jù)收集等功能,它可以運(yùn)行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平臺(tái)上.
Ganglia是一款為HPC(高性能計(jì)算)集群而設(shè)計(jì)的可擴(kuò)展的分布式監(jiān)控系統(tǒng),它可以監(jiān)視和顯示集群中的節(jié)點(diǎn)的各種狀態(tài)信息,它由運(yùn)行在各個(gè)節(jié)點(diǎn)上的gmond守護(hù)進(jìn)程來(lái)采集CPU?、內(nèi)存、硬盤利用率、I/O負(fù)載、網(wǎng)絡(luò)流量情況等方面的數(shù)據(jù),然后匯總到gmetad守護(hù)進(jìn)程下,使用rrdtool存儲(chǔ)數(shù)據(jù),最后將歷史數(shù)據(jù)以曲線方式通過PHP頁(yè)面呈現(xiàn).
Ganglia監(jiān)控系統(tǒng)有三部分組成,分別是gmond、gmetad、webfrontend.
Centreon是一款功能強(qiáng)大的分布式IT監(jiān)控系統(tǒng),它通過第三方組件可以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)、操作系統(tǒng)和應(yīng)用程序的監(jiān)控:首先,它是開源的,我們可以免費(fèi)使用它;其次,它的底層采用nagios作為監(jiān)控軟件,同時(shí)nagios通過ndoutil模塊將監(jiān)控到的數(shù)據(jù)定時(shí)寫入數(shù)據(jù)庫(kù)中,而Centreon實(shí)時(shí)從數(shù)據(jù)庫(kù)讀取該數(shù)據(jù)并通過Web界面展現(xiàn)監(jiān)控?cái)?shù)據(jù);最后,我們可以通過Centreon管理和配置nagios,或者說(shuō)Centreon就是nagios的一個(gè)管理配置工具,通過Centreon提供的Web配置界面,可以輕松完成nagios的各種繁瑣配置.
構(gòu)建一個(gè)智能的運(yùn)維監(jiān)控平臺(tái),必須以運(yùn)行監(jiān)控和故障報(bào)警這兩個(gè)方面為重點(diǎn),將所有業(yè)務(wù)系統(tǒng)中所涉及的網(wǎng)絡(luò)資源、硬件資源、軟件資源、數(shù)據(jù)庫(kù)資源等納入統(tǒng)一的運(yùn)維監(jiān)控平臺(tái)中,并通過消除管理軟件的差別,數(shù)據(jù)采集手段的差別,對(duì)各種不同的數(shù)據(jù)來(lái)源實(shí)現(xiàn)統(tǒng)一管理、統(tǒng)一規(guī)范、統(tǒng)一處理、統(tǒng)一展現(xiàn)、統(tǒng)一用戶登錄、統(tǒng)一權(quán)限控制,最終實(shí)現(xiàn)運(yùn)維規(guī)范化、自動(dòng)化、智能化的大運(yùn)維管理.
智能的運(yùn)維監(jiān)控平臺(tái),設(shè)計(jì)架構(gòu)從低到高可以分為6層,三大模塊,如下圖:
運(yùn)維監(jiān)控平臺(tái)實(shí)現(xiàn)拓?fù)鋱D,請(qǐng)看下圖:
Ganglia監(jiān)控系統(tǒng)有三部分組成,分別是gmond、gmetad、webfrontend,如下圖所示:
同時(shí),Ganglia支持多種監(jiān)控架構(gòu),這是由gmetad的特性決定的,gmetad可以周期性地去多個(gè)gmond節(jié)點(diǎn)收集數(shù)據(jù),這就是ganglia的兩層架構(gòu).同時(shí),gmetad不但可以從gmond收集數(shù)據(jù),也可以從其他的gmetad得到數(shù)據(jù),這就形成了Gnaglia的三層架構(gòu).多種架構(gòu)方式也體現(xiàn)了Ganglia作為分布式監(jiān)控系統(tǒng)的靈活性和擴(kuò)展性.
CentOS系統(tǒng)中默認(rèn)的yum源并沒有包含Ganglia,所以我們必須安裝擴(kuò)展的yum源.從下面這個(gè)地址下載Linux附加軟件包(EPEL),然后安裝擴(kuò)展yum源:
完成yum源安裝,就可以直接通過yum方式安裝Ganglia了.
Ganglia的安裝分為兩個(gè)部分,分別是gmetad和gmond,gmetad安裝在監(jiān)控管理端,gmond安裝在需要監(jiān)控的客戶端主機(jī),對(duì)應(yīng)的yum包名稱分別為ganglia-gmetad和ganglia-gmond.
下面介紹通過yum方式安裝Ganglia的過程.
以下操作是在監(jiān)控管理端進(jìn)行的,首先通過yum命令查看下可用的Ganglia安裝信息:
安裝gmetad需要rrdtool的支持,而通過yum方式,會(huì)自動(dòng)查找gmetad依賴的安裝包,自動(dòng)完成安裝,這也是yum方式安裝的優(yōu)勢(shì).
最后在需要監(jiān)控的所有客戶端主機(jī)上安裝gmond服務(wù):
這樣,Ganglia監(jiān)控系統(tǒng)就安裝完成了.通過yum方式安裝的Ganglia默認(rèn)配置文件位于/etc/ganglia中.
監(jiān)控管理端的配置文件是gmetad.conf,這個(gè)配置文件內(nèi)容比較多,但是需要修改的配置僅有如下幾個(gè):
上面通過data_source參數(shù)定義了一個(gè)服務(wù)器集群Cluster1,對(duì)于要監(jiān)控多個(gè)應(yīng)用系統(tǒng)的情況,還可以對(duì)不同用途的主機(jī)進(jìn)行分組,定義多個(gè)服務(wù)器集群,分組方式可以通過下面的方法定義:
可以通過定義多個(gè)data_source來(lái)實(shí)現(xiàn)監(jiān)控多個(gè)服務(wù)器集群,而每個(gè)服務(wù)器集群在定義集群節(jié)點(diǎn)的時(shí)候,可以采用主機(jī)名或IP地址等形式,也可以加端口,如果不加端口,默認(rèn)端口是8649,同時(shí)可以設(shè)定采集數(shù)據(jù)的頻率,如上面的“10 localhost、50 1.3.4.7:8655”等,分別表示每隔10秒鐘、50秒鐘采集一次數(shù)據(jù).
Ganglia監(jiān)控客戶端gmond安裝完成后,配置文件位于Ganglia安裝路徑的etc目錄下,名稱為gmond.conf,這個(gè)配置文件稍微復(fù)雜,如下所示:
Ganglia的web監(jiān)控界面是基于PHP的,因此需要安裝PHP環(huán)境.
有兩種方式安裝Ganglia的web監(jiān)控界面,一種是yum直接安裝,另一種是通過源碼安裝.PHP環(huán)境的安裝這里不做介紹,大家可以在http://sourceforge.net/projects/ganglia/files/下載ganglia-web的最新版本,然后將ganglia-web程序放到Apche Web的根目錄即可,這里我們下載的版本是ganglia-web-3.7.1.
配置Ganglia的Web界面比較簡(jiǎn)單,只需要修改幾個(gè)php文件即可.首先是conf_default.php,可以將conf_default.php重命名為conf.php,也可以保持不變,Ganglia的Web默認(rèn)先找conf.php,找不到會(huì)繼續(xù)找conf_default.php,需要修改的內(nèi)容如下:
這里需要說(shuō)明的是:“$conf[‘dwoo_compiled_dir’]”和“$conf[‘dwoo_cache_dir’]”指定的路徑在默認(rèn)情況下可能不存在,因此需要手動(dòng)建立compiled和cache目錄,并授予Linux下“777”的權(quán)限.另外,rrd數(shù)據(jù)庫(kù)的存儲(chǔ)目錄/opt/app/ganglia/rrds一定要保證rrdtool可寫,因此需要執(zhí)行授權(quán)命令:
這樣rrdtool才能正常讀取rrd數(shù)據(jù)庫(kù),進(jìn)而將數(shù)據(jù)通過Web界面展示出來(lái).其實(shí)ganglia-web的配置還是比較簡(jiǎn)單的,一旦配置出錯(cuò)會(huì)給出提示,根據(jù)錯(cuò)誤提示進(jìn)行問題排查,一般都能找到解決方法.
gmetric是Ganglia的一個(gè)命令行工具它可以將數(shù)據(jù)直接發(fā)送到負(fù)責(zé)收集數(shù)據(jù)的gmond節(jié)點(diǎn),或者廣播給所有g(shù)mond節(jié)點(diǎn).
在Ganglia安裝完成后,會(huì)在bin目錄下生成gmetric命令.下面通過一個(gè)實(shí)例介紹一下gmetric的使用方法:
-n,表示要監(jiān)控的指標(biāo)名.
-v,表示寫入的監(jiān)控指標(biāo)值.
-t,表示寫入監(jiān)控?cái)?shù)據(jù)的類型.
-u,表示監(jiān)控?cái)?shù)據(jù)的單位.
-d,表示監(jiān)控指標(biāo)的存活時(shí)間.
-c,用于指定ganglia配置文件的位置.
-S,表示偽裝客戶端信息,8.8.8.8代表偽裝的客戶端地址,cloud1代表被監(jiān)控主機(jī)的主機(jī)名.
現(xiàn)成可用擴(kuò)展插件:
https://github.com/ganglia/gmond_python_modules
作者介紹 高俊峰
原文出處:DBAplus社群微信公眾號(hào)
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/4505.html