摘 要:企業(yè)信息系統(tǒng)中的服務(wù)器、網(wǎng)絡(luò)等基礎(chǔ)設(shè)施的穩(wěn)定運(yùn)行是保障業(yè)務(wù)正常運(yùn)行的基礎(chǔ)。而要保證這些基礎(chǔ)設(shè)施穩(wěn)定、高效的運(yùn)行,設(shè)備故障及時(shí)有效的發(fā)現(xiàn)、設(shè)備運(yùn)行狀態(tài)信息及時(shí)有效的展示就顯得十分重要,信息系統(tǒng)的有效監(jiān)控已成為信息系統(tǒng)管理的重要問題。大中型企業(yè)內(nèi)部存在著成百上千臺(tái)服務(wù)器、網(wǎng)絡(luò)等設(shè)備,如何實(shí)現(xiàn)對(duì)這些設(shè)備的有效監(jiān)控,并且高效的解決各類系統(tǒng)故障,保障系統(tǒng)穩(wěn)定、高效的運(yùn)行呢?本文主要對(duì)Nagios監(jiān)控功能進(jìn)行分析,論述了如何利用它去監(jiān)控服務(wù)器等設(shè)備。
關(guān)鍵詞:nagios;監(jiān)控;網(wǎng)絡(luò)管理
中圖分類號(hào):TP393.18
隨著企業(yè)信息系統(tǒng)的不斷建設(shè),龐大的服務(wù)器等基礎(chǔ)設(shè)施的有效監(jiān)控已成為信息系統(tǒng)管理的重要問題。依靠人工巡檢的方式對(duì)于系統(tǒng)故障、潛在風(fēng)險(xiǎn)及安全隱患的發(fā)現(xiàn)效率越來(lái)越差,為提高發(fā)現(xiàn)故障的及時(shí)性、把運(yùn)維人員從繁重的工作中解放出來(lái),亟需引入新的工具來(lái)協(xié)助工程師解決當(dāng)前的問題。該工具能夠?qū)崿F(xiàn)對(duì)各類IT設(shè)備的監(jiān)視和管理,提高基礎(chǔ)設(shè)施的服務(wù)質(zhì)量和效率,因此自動(dòng)化工具對(duì)于運(yùn)維人員就十分必要。Nagios是一種開源網(wǎng)管軟件,利用它可以實(shí)現(xiàn)對(duì)企業(yè)中的服務(wù)器、網(wǎng)絡(luò)等設(shè)備進(jìn)行全面的監(jiān)控。
1 Nagios介紹
1.1 Nagios簡(jiǎn)介
Nagios是一款開源的監(jiān)視系統(tǒng)運(yùn)行狀態(tài)的網(wǎng)管監(jiān)控系統(tǒng)。它能監(jiān)視本地或遠(yuǎn)程設(shè)備以及服務(wù),同時(shí)提供異常告警通知功能等。Nagios能運(yùn)行在Linux/Unix平臺(tái),狀態(tài)監(jiān)測(cè)等可實(shí)現(xiàn)利用WEB瀏覽器展示。
1.2 Nagios的主要功能特點(diǎn)
監(jiān)視服務(wù)狀態(tài)(SMTP,POP3,F(xiàn)TP,HTTP,PING等)
監(jiān)視資源利用率(CPU、內(nèi)存,磁盤I/O等)
利用插件方式輕松擴(kuò)展監(jiān)視功能
支持各類服務(wù)等監(jiān)視的并發(fā)處理功能
支持錯(cuò)誤通知功能(通過email,短信等方法)
可指定自定義的事件處理控制器
基于WEB瀏覽器的界面以方便維護(hù)人員查看被監(jiān)控端狀態(tài)
支持通過手機(jī)終端查看監(jiān)控信息
1.3 Nagios工作原理
Nagios的功能是監(jiān)控服務(wù)和主機(jī),Nagios的監(jiān)控、檢測(cè)功能都是依賴各種插件來(lái)完成。Nagios啟動(dòng)后,它會(huì)定期的調(diào)用插件去檢測(cè)服務(wù)器狀態(tài),同時(shí)將所有插件返回來(lái)的狀態(tài)信息都進(jìn)入隊(duì)列,每次都從隊(duì)首開始讀取信息,處理后,把狀態(tài)結(jié)果通過web界面展示出來(lái)。
Nagios 提供了豐富的插件資源,利用不同功能的插件可以實(shí)現(xiàn)各類設(shè)備服務(wù)狀態(tài)的監(jiān)控。在nagios 主目錄下的/libexec目錄里放有nagios自帶的插件:例如如check_disk是檢查磁盤空間的插件,check_load是檢查CPU負(fù)載等。每一種插件都可以通過運(yùn)行./check_xxx–h命令來(lái)查看其使用方法和功能。
Nagios可以識(shí)別4種狀態(tài)返回信息,即0(OK)表示狀態(tài)正常、1(WARNING)表示出現(xiàn)一定的異常、2(CRITICAL)表示出現(xiàn)非常嚴(yán)重的錯(cuò)誤、3(UNKNOWN)表示被監(jiān)控的對(duì)象已經(jīng)停止了。Nagios根據(jù)插件返回來(lái)的值,來(lái)判斷監(jiān)控對(duì)象的狀態(tài),并通過web顯示出來(lái),以供維護(hù)人員及時(shí)發(fā)現(xiàn)故障。圖1Nagios系統(tǒng)結(jié)構(gòu)圖。
2 Nagios安裝
2.1 實(shí)現(xiàn)目標(biāo)
通過ping的方式檢測(cè)服務(wù)器是否存活,并通過SNMP協(xié)議采集網(wǎng)絡(luò)中各種服務(wù)器客戶端的性能數(shù)據(jù),依據(jù)ndoutils插件,將收集到的信息(信息以文本方式存在)導(dǎo)入到后臺(tái)數(shù)據(jù)庫(kù)中,后續(xù)通過對(duì)這些歷史數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析可實(shí)現(xiàn)對(duì)設(shè)備運(yùn)行性能等的評(píng)估,從而更早發(fā)現(xiàn)性能瓶頸,更好的指導(dǎo)后續(xù)設(shè)備擴(kuò)容工作。
2.2 安裝環(huán)境準(zhǔn)備
在安裝Nagios之前需要?jiǎng)?chuàng)建相關(guān)用戶組,并檢查關(guān)聯(lián)的軟件包:
# rpm -q wget httpd php gcc glibc glibc-common gd gd-devel make
2.3 安裝Nagios Core
Nagios Core是主程序,解壓縮并安裝軟件包:
# ./configure --with-command-group=nagcmd
2.4 安裝Nagios Plugins
解壓縮并安裝Nagios Plugins安裝包:
# ./configure --with-command-group=nagcmd
# make all
# make install
創(chuàng)建用于Web訪問賬號(hào):
# htpasswd –c /usr/local/nagios/etc/htpasswd.users nagiosadmin
2.5 配置MySQL
在mysql上創(chuàng)建Nagios數(shù)據(jù)庫(kù)和用戶,用于存放nagios service數(shù)據(jù)。
2.6 安裝配置ndoutils
Ndoutils是nagios的一個(gè)插件,就是可以用來(lái)把nagios的獲取的數(shù)據(jù)存入到數(shù)據(jù)庫(kù)中,也可以實(shí)現(xiàn)與cacti的集成。如圖2。
軟件包安裝,在ndoutils目錄下:
# ./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql
為mysql的nagios數(shù)據(jù)庫(kù)創(chuàng)建表和其它相關(guān)對(duì)象:
# ./installdb -unagios -ppasswd -hlocalhost.localdomain -d nagios
將ndo2db、ndomod復(fù)制到nagios腳本路徑,并修改nagios主配置文件中配置ndoutils調(diào)用:
broker_module=/usr/local/nagios/bin/ndomod-3x.o
config_file=/usr/local/nagios/etc/ndomod.cfg
另外還需要修改ndo2db.cfg配置文件中關(guān)于mysql數(shù)據(jù)庫(kù)的信息,包括nagios使用的數(shù)據(jù)庫(kù)名、用戶密碼等,ndoutils調(diào)用這些數(shù)據(jù)庫(kù)信息,連接并將數(shù)據(jù)寫入到數(shù)據(jù)庫(kù)中存儲(chǔ)。
3 Nagios監(jiān)控部署
3.1 實(shí)現(xiàn)原理
Nagios通過周期性的調(diào)用插件去檢測(cè)服務(wù)器狀態(tài),通過ping檢測(cè)主機(jī)是否存活,通過check_snmp抓取系統(tǒng)性能數(shù)據(jù),包括CPU、內(nèi)存使用量等。
3.2 配置
Nagios安裝后下面一共有bin、etc、libexec、sbin、var等幾個(gè)目錄,其中bin目錄下存放的是相關(guān)命令,etc目錄下存放的是配置文件,sbin目錄下存放的是通過的cgi腳本,libexec目錄下存放的是所有插件,而var則存放的是log和pid文件等。Nagios監(jiān)控實(shí)現(xiàn)是依靠執(zhí)行插件來(lái)實(shí)現(xiàn)的,首先需要在nagios中定義一個(gè)service,并且在這個(gè)service中指定監(jiān)控對(duì)象、監(jiān)控命令以及報(bào)警機(jī)制等。
在主配置文件nagios.cfg中既可以指定單獨(dú)包含一個(gè)cfg,也可以指定一個(gè)包含目錄,即該目錄下所有的cfg文件都會(huì)包含進(jìn)來(lái),本次使用兩種方式結(jié)合,即nagios.cfg中指定:cfg_file=/usr/local/nagios/etc/objects/commands.cfg
contacts.cfg
timeperiods.cfg
templates.cfg
cfg_dir=/usr/local/nagios/etc/target
target目錄中每個(gè)主機(jī)生成一個(gè)cfg文件,每個(gè)配置文件定義相應(yīng)的host、service,定義host的時(shí)候,指定主機(jī)名、別名、地址等信息,定義Service時(shí)需要指定相應(yīng)的主機(jī)、執(zhí)行的命令等,如抓取某臺(tái)主機(jī)的內(nèi)存使用量:
check_snmp -H $HOSTADDRESS$ -C PUBLIC -o .1.3.6.1.4.1.2021.4.6.0
配置完host之后,檢查nagios的配置無(wú)異常后,即可啟動(dòng)nagios服務(wù):
# service nagios start
# /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
3.3 界面展現(xiàn)
Nagios提供基于WEB瀏覽器的管理界面,方便維護(hù)人員人員監(jiān)控被監(jiān)測(cè)設(shè)備,如被監(jiān)控設(shè)備出現(xiàn)異常則圖標(biāo)會(huì)顯示為紅色,如某項(xiàng)性能指標(biāo)超過設(shè)定閥值也將有告警顯示。利用WEB瀏覽器可實(shí)現(xiàn)對(duì)被監(jiān)控設(shè)備運(yùn)行情況的全面管理。
4 結(jié)束語(yǔ)
本文主要是對(duì)Nagios在企業(yè)信息系統(tǒng)基礎(chǔ)設(shè)施資源基本監(jiān)控功能的應(yīng)用論述,如果要利用Nagios對(duì)企業(yè)信息系統(tǒng)進(jìn)行全面的監(jiān)控管理,想要實(shí)現(xiàn)更加復(fù)雜的監(jiān)控功能,那就需要部署更多的插件,并且根據(jù)實(shí)際運(yùn)行情況進(jìn)行不斷優(yōu)化,才能保證監(jiān)控?cái)?shù)據(jù)的正確無(wú)誤。雖然Nagios配置十分復(fù)雜,但配置完成后,都是基于標(biāo)準(zhǔn)的WEB應(yīng)用,操作很容易上手,而且功能非常易于擴(kuò)展。
Nagios是一款非常強(qiáng)大的網(wǎng)管工具,在它部署后,能夠幫助你輕松管理企業(yè)內(nèi)部各類基礎(chǔ)設(shè)施資源。具有開源及低成本的優(yōu)勢(shì),我們可以從Nagios社區(qū)中獲得幫助,能夠共享各種插件和經(jīng)驗(yàn)。
參考文獻(xiàn):
[1]楊云江.計(jì)算機(jī)網(wǎng)絡(luò)管理技術(shù)(第二版)[J].網(wǎng)絡(luò)與通信,2011.
[2]陶利軍.掌控——構(gòu)建Linux系統(tǒng)Nagios監(jiān)控服務(wù)器[M].清華大學(xué)出版社,2013.
作者簡(jiǎn)介:武冬春,畢業(yè)于吉林工學(xué)院計(jì)算機(jī)及應(yīng)用專業(yè),本科學(xué)歷,現(xiàn)供職于中國(guó)聯(lián)通集團(tuán)公司總部電子商務(wù)部,長(zhǎng)期從事中國(guó)聯(lián)通企業(yè)信息系統(tǒng)建設(shè)和維護(hù)工作。