左珍勇
(中國航空無線電電子研究所,上海 200000)
?
整合多模塊開源軟件的信息監(jiān)控方案設計與實現(xiàn)*
左珍勇
(中國航空無線電電子研究所,上海 200000)
摘要:針對目前企業(yè)數(shù)據(jù)中心網(wǎng)絡與系統(tǒng)監(jiān)控能力存在的不足,研究并分析了開源監(jiān)控軟件Nagios與Cacti的工作原理,提出并設計了一種集成多模塊組件、整合Nagios與Cacti的網(wǎng)絡與系統(tǒng)的監(jiān)控方案,通過利用主流的SNMP協(xié)議實現(xiàn)了在多種平臺上對企業(yè)網(wǎng)絡與系統(tǒng)多項運行指標圖形化的監(jiān)控和告警,為企業(yè)數(shù)據(jù)中心提供了一個實時的資源與服務的監(jiān)控平臺。通過實際的網(wǎng)絡環(huán)境運行分析與仿真,證明了方案的有效性。
關鍵詞:監(jiān)控;多組件;Nagios;Cacti;SNMP協(xié)議;告警
0引言
隨著信息化技術的迅猛發(fā)展,以信息為導向、借助信息化手段創(chuàng)造的價值在企業(yè)的日常管理中不斷得到彰顯。而作為企業(yè)信息化的基礎設施及服務架構(IaaS),其將IT基礎設施作為一種通用服務借助網(wǎng)絡對企業(yè)進行了開放,便捷了業(yè)務系統(tǒng)運行環(huán)境的構建。在該架構下,IaaS平臺的可靠性與穩(wěn)定性是保證業(yè)務系統(tǒng)穩(wěn)定運行的關鍵。一方面,由于企業(yè)IaaS平臺與互聯(lián)網(wǎng)是邏輯隔離的,其穩(wěn)定性和可靠性受到來自互聯(lián)網(wǎng)的各類apt攻擊的影響[1];另一方面,則來自與內(nèi)部環(huán)境的影響,在現(xiàn)有條件下如何有效地對其進行管理和監(jiān)控、保證其穩(wěn)定性與可靠性成為當前企業(yè)內(nèi)IT部門迫在眉睫的問題。
目前企業(yè)內(nèi)IaaS資源通常包括網(wǎng)絡、服務器、存儲等相關硬件資源,云技術的出現(xiàn)把這些資源進行了整合,提高了資源的利用率。隨著企業(yè)不斷加大對信息化的投入力度,企業(yè)的私有云不斷膨脹,一些對企業(yè)私有云環(huán)境下的IaaS監(jiān)控手段應運而生,主流的監(jiān)控手段以開源軟件Nagios和Cacti為中心輔以外圍相關插件開發(fā)的監(jiān)控系統(tǒng)[1-9],以Nagios開發(fā)的監(jiān)控系統(tǒng)可以有效監(jiān)控企業(yè)數(shù)據(jù)中心網(wǎng)絡服務以及設備是否正常工作,其具備強大的報警功能,但在具體的配置以及圖形化顯示方面則相對不足;以Cacti開發(fā)的監(jiān)控系統(tǒng)可以利用其自身具備的強大數(shù)據(jù)收集功能通過圖形化的方式展現(xiàn)設備的狀態(tài),便于管理與操作,但其不具備報警功能。
本文對Nagios與Cacti的工作原理進行了分析,針對Nagios和Cacti在各自監(jiān)控方面存在的優(yōu)勢與不足設計了一套監(jiān)控方案:通過整合Nagios和Cacti,并借助以NagiosQL為代表的外圍相關插件的開發(fā),實現(xiàn)了對企業(yè)IaaS中網(wǎng)絡流量負載的圖形化顯示、網(wǎng)絡設備與系統(tǒng)服務狀態(tài)的監(jiān)測、故障報警以及數(shù)據(jù)分析等功能,方便了企業(yè)網(wǎng)絡管理員的日常運維,提高了IaaS平臺的穩(wěn)定性與可靠性。
1Nagios與cacti的工作原理分析
1.1Nagios概述
作為一款開源軟件,Nagios能有效監(jiān)控兩種類型操作系統(tǒng)的主機:Linux與Windows,其可根據(jù)公司既有的網(wǎng)絡拓撲將應用系統(tǒng)以及IT基礎設施環(huán)境納入到監(jiān)控范疇。當IT基礎設施或應用系統(tǒng)發(fā)生故障時提供多種報警機制,如可通過SMS或者E-mail的方式通知企業(yè)信息化運維人員。
Nagios運行在Linux環(huán)境下,其監(jiān)控功能由外圍組件實現(xiàn)。通過Linux命令輸入,可監(jiān)控IT基礎設施(網(wǎng)絡設備、服務器)的服務狀態(tài),監(jiān)測的結果調(diào)用、顯示與告警由 Nagios執(zhí)行。Nagios的監(jiān)控功能主要包括:
(1)監(jiān)控Ping、FTP、HTTP等網(wǎng)絡服務。
(2)監(jiān)控主機的CPU、內(nèi)存、磁盤利用率等資源。
(3)支持第三方功能插件擴展,也可自行開發(fā)監(jiān)控插件。
(4)具備定義網(wǎng)絡分層能力,監(jiān)控主機是否宕機或網(wǎng)絡是否可達。
(5)提供E-mail、短信等報警機制。
(6)可通過定義事件句柄定位更多的問題。
(7)具備舊日志自動刪除機制。
(8)具備對服務器或服務的多重監(jiān)控機制,可借助網(wǎng)頁查看當前故障通知、設備狀態(tài)等歷史信息。
Nagios的詳細組成如圖1所示。其中Nagios-plugins和Nagios是運行在服務器端的必要組件。為實現(xiàn)對Linux/Unix 和Windows 主機的資源監(jiān)控,NRPE 和NSClient++需分別部署到對應的系統(tǒng)內(nèi);NSCA用于激勵Linux/Unix 主機上報信息給Nagios 服務器;NDOUtils則將Nagios收集到的各種類型的事件信息存入相應的數(shù)據(jù)庫中,從而可進行快速檢索并處理。Nagios根據(jù)插件返回值判斷設備或服務狀態(tài),并通過 Web 方式顯示給IT管理員,幫助其及時排故。

圖1 Nagios架構
1.2Cacti概述
作為一款是基于SNMP、MySQL以及RRDTool等組件開發(fā)的開源軟件,Cacti可顯示企業(yè)當前的網(wǎng)絡拓撲狀態(tài),并對其中出現(xiàn)的故障給出相應的診斷措施,為用戶提供樹形結構的查看方式。Cacti系統(tǒng)框架具備多插件接口,支持第三方組件的無縫集成。Cacti系統(tǒng)借助簡單網(wǎng)絡傳輸協(xié)議程序中的相關指令進行數(shù)據(jù)獲取,并存放在內(nèi)置的數(shù)據(jù)庫中,圖形化的顯示則通過調(diào)用RRDTool進行繪制。內(nèi)置數(shù)據(jù)庫中的數(shù)據(jù)可重復使用,并可借助RRDTool繪制不同時間段的狀態(tài)圖。同時,Cacti還提供用戶和數(shù)據(jù)管理功能,可實現(xiàn)按用戶管理級別的不同分配操作權限。圖2是Cacti的系統(tǒng)框架圖。

圖2 Cacti框架結構
2系統(tǒng)架構體系的設計與實現(xiàn)
2.1系統(tǒng)架構體系設計
本文設計的監(jiān)控系統(tǒng)運行在Linux系統(tǒng)下,選擇目前主流的RedHat Linux作為監(jiān)控平臺的基礎運行環(huán)境。系統(tǒng)采用 B/S架構,主要組成包括Nagios模塊、Cacti模塊以及外圍插件。其中Nagios負責對操作系統(tǒng)(如Linux)服務以及設備(如交換機)協(xié)議運行狀態(tài)的監(jiān)測和異常報警(如短信、郵件或自定義)等。Cacti負責監(jiān)控網(wǎng)絡設備運行狀態(tài)和流量,繪制相應的顯示圖。外圍插件中NagiosQL通過WEB界面方式簡化Nagios的配置,RRDTool將Nagios中獲取的監(jiān)測數(shù)據(jù)通過圖形呈現(xiàn)給用戶;監(jiān)控的數(shù)據(jù)由NPC和Ndoutils組件負責收集,并導入到Cacti數(shù)據(jù)庫中,由其 以圖形的方式呈現(xiàn)給網(wǎng)絡管理員。系統(tǒng)的詳細架構設計見圖3。

圖3 監(jiān)控方案設計
2.2系統(tǒng)實現(xiàn)
本文設計的監(jiān)控系統(tǒng)實現(xiàn)主要包括Nagios與Cacti網(wǎng)絡檢測平臺的搭建以及兩款開源監(jiān)控軟件系統(tǒng)的整合等。
2.2.1Nagios平臺搭建
(1) 環(huán)境準備
yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server mysql-devel openssl-devel perl-ExtUtils-* #安裝Linux操作系統(tǒng)以及相關組件。
(2) Nagios賬戶
groupadd nagcmd #添加與nagios運行相關服務的組;
useradd -m nagios #添加nagios用戶;
usermod -a -G nagcmd nagios #將nagios用戶加入相應的組;
usermod -a -G nagcmd apache #將apache用戶賦權。
(3) Nagios部署與配置
Nagios的軟件包選擇tar jxf nagios-cn-3.2.3.tar.bz2與cd nagios-cn-3.2.3。
make install #安裝主程序,CGI和HTML文件;
make install-init #在/etc/rc.d/init.d安裝啟動腳本;
make install-commandmode #配置目錄權限;
make install-config #安裝示例配置文件;
make install-webconf #安裝nagios的web接口,會在/etc/httpd/conf.d目錄中創(chuàng)建nagios.conf文件。
(4) Nagios的WEB賬號創(chuàng)建
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin #為nagios用戶創(chuàng)建web賬號與密碼。
(5) 編譯安裝nagios-plugins
nagios-plugins負責完成nagios的監(jiān)測工作。具體的安裝如下:
nagios-plugins。./configure --with-nagios-user=nagios
--with-nagios-group=nagios --with-mysql
--enable-extra-opts --enable-libtap
--enable-perl-modules make && make install #編譯并安裝nagios-plugins插件。
(6) WEB管理工具NagiosQL安裝
NagiosQL依賴環(huán)境需要安裝如下軟件包:php、php-mysql、mysql、mysql-server、mysql-devel、perl、perl-DBI、perl-DBD-Mysql、httpd、gcc、glibc、glibc-common、gd、gd-*、gettext、php-pear。NagiosQL是一個WEB管理工具,只要把其放到Apache的虛擬目錄下即可進行安裝。通過NagiosQL可以極大簡化IT管理員通過命令行進行Nagios的配置。
2.2.2Cacti平臺搭建
(1) Cacti環(huán)境準備
Cacti安裝依賴軟件包 net-snmp、net-snmp-utils、net-snmp-libs、lm_sensors、rrdtool。軟件包可通過通過yum安裝。
(2) Cacti安裝
將下載的cacti源碼包釋放至WEB服務器的網(wǎng)頁目錄,添加一個用來讀寫監(jiān)測數(shù)據(jù)的用戶賬號(如cactiuser),并調(diào)整子目錄rra/、log/的屬主或權限,以便正常讀取及寫入數(shù)據(jù),
[root@CareriNagios src]# useradd cactiuser
[root@CareriNagios src]# cd /var/www/html/cacti/
[root@CareriNagios cacti]# chown -R cactiuser.cactiuser rra/ log/
創(chuàng)建用于cacti監(jiān)測平臺的數(shù)據(jù)庫,并授權一個數(shù)據(jù)庫用戶(如:cactiadmin),然后使用cacti源碼目錄下的cacti.sql腳本,導入預設的各種數(shù)據(jù)表。
Cacti的配置文件位于源碼目錄中的include/文件夾下,名稱為config.php。要使cacti系統(tǒng)能夠正確訪問并使用數(shù)據(jù)庫,必須修改config.php文件,確保數(shù)據(jù)庫連接參數(shù)正確無誤。
2.2.3Nagios與Cacti整合
整合cacti 與nagios 是利用了cacti 的一個插件:NPC,其功能是將nagios中監(jiān)控數(shù)據(jù)通過ndo2db導入到cacti的內(nèi)置數(shù)據(jù)庫中,然后通過NPC將cacti數(shù)據(jù)庫信息用圖形呈現(xiàn)出來。
(1) Ndoutils安裝
安裝ndoutils的目的是確保能夠?qū)agios中的數(shù)據(jù)導入到mysql 數(shù)據(jù)庫中,以下是安裝ndoutils的命令:
[root@CareriNagios src]# tar zxf ndoutils-1.4b7.tar.gz
[root@CareriNagios src]# cd ndoutils-1.4b7
[root@CareriNagios ndoutils-1.4b7]# ./configure --prefix=/usr/local/nagios/--with-mysql-inc=/usr/include/mysql --with-mysql-
lib=/usr/lib/mysql --enable-mysql --disable-pgsql --with-ndo2db-user=nagios--with-ndo2db-group=nagios
[root@CareriNagios ndoutils-1.4b7]# cp config/ndomod.cfg /usr/local/nagios/etc/
(2) 安裝NPC
[root@CareriNagios config]# cd /var/www/html/cacti/plugins
[root@CareriNagios plugins]# tar zxf /usr/local/src/npc-2.0.3.tar.gz
[root@CareriNagios plugins]# vim /var/www/html/cacti/include/config.php
在cacti系統(tǒng)中,通過plugin management模塊安裝npc,安裝完之后開啟npc即可實現(xiàn)cacti與Nagios的整合。
3應用效果分析
本文設計的監(jiān)控系統(tǒng)能夠?qū)δ壳捌髽I(yè)數(shù)據(jù)中心的網(wǎng)絡和系統(tǒng)進行有效的監(jiān)控,下面以某企業(yè)數(shù)據(jù)中心為例,對其中部分設備和服務進行監(jiān)控,并對其監(jiān)控效果進行說明。
3.1網(wǎng)絡流量監(jiān)控
圖4是對某核心交換機slot10第48端口的流量數(shù)據(jù)監(jiān)控圖,分別以一天、一周以及一月為時間周期對流入、流出交換機第48端口的數(shù)據(jù)流量進行了圖形化顯示。圖中陰影區(qū)域表示端口輸出流量,細實線表示端口輸入流量,從圖中可以清楚的查看每天交換機端口流量輸入和輸出的波峰期和波谷期所在的時間范圍。通過對網(wǎng)絡設備端口流量的監(jiān)控,IT網(wǎng)絡管理員可藉此為依據(jù)對企業(yè)的網(wǎng)絡管理進行及時優(yōu)化,并對企業(yè)網(wǎng)絡未來的發(fā)展做出合理性的規(guī)劃。

(a)核心交換機48端口一天輸入輸出數(shù)據(jù)量

(b)核心交換機48端口一周輸入輸出數(shù)據(jù)量

(c)核心交換機48端口一月輸入輸出數(shù)據(jù)量
3.2網(wǎng)絡服務監(jiān)控
在企業(yè)網(wǎng)絡日常運維過程中,IT網(wǎng)絡管理員除了要監(jiān)控網(wǎng)絡設備的流量之外,還需要對網(wǎng)絡設備的服務進行監(jiān)控。本文設計的系統(tǒng)不僅可以監(jiān)控網(wǎng)絡設備,同時可以有效的對網(wǎng)絡服務進行監(jiān)控。當網(wǎng)絡服務出現(xiàn)異常時會通過Nagios的報警功能通知網(wǎng)絡管理員。圖5、表1是通過本系統(tǒng)對網(wǎng)絡設備的ping服務進行的監(jiān)控,選取了RTA(往返平均響應時間:Round trip average)作為一個重要指標對網(wǎng)絡是否可達進行了監(jiān)控,從圖5和表1中可以發(fā)現(xiàn)在一天的時間周期內(nèi)RTA的最高值為4.75 ms,狀態(tài)顯示正常,日志顯示服務正常,丟包為0。

圖5 網(wǎng)絡服務監(jiān)控、狀態(tài)

事件開始時間事件結束時間事件持續(xù)時間事件/狀態(tài)類型事件/狀態(tài)的信息2014-11-1323:59:592014-11-1400:00:000日0時0分服務正常(硬-HARD)初始狀態(tài)2014-11-1400:00:002014-11-1500:00:001日0時0分服務正常(硬-HARD)PingOK,丟包0,往返平均響應時間0.81ms2014-11-1500:00:002014-11-1505:44:500日4時44分服務正常(硬-HARD)PingOK,丟包0,往返平均響應時間0.86ms2014-11-1505:44:502014-11-1600:00:000日18時15分服務正常(硬-HARD)PingOK,丟包0,往返平均響應時間38.85ms2014-11-1600:00:002014-11-1700:00:001日0時0分服務正常(硬-HARD)PingOK,丟包0,往返平均響應時間1.59ms2014-11-1700:00:002014-11-1800:00:001日0時0分服務正常(硬-HARD)PingOK,丟包0,往返平均響應時間1.04ms2014-11-1800:00:002014-11-1900:00:001日0時0分服務正常(硬-HARD)PingOK,丟包0,往返平均響應時間0.66ms2014-11-1900:00:002014-11-1910:56:520日10時56分服務正常(硬-HARD)PingOK,丟包0,往返平均響應時間0.82ms
3.3系統(tǒng)性能監(jiān)控
在企業(yè)的數(shù)據(jù)中心運維過程中,設備的硬件性能指標直接影響系統(tǒng)運行速度,因此對設備的性能指標進行實時監(jiān)控、合理調(diào)整硬件資源分配就顯得尤為重要。本文設計的系統(tǒng)可以有效的監(jiān)控硬件設備的性能指標,圖6選取了硬件設備中常用的三個性能指標:CPU、硬盤和內(nèi)存,通過一天的使用情況監(jiān)控,可以清晰的觀察每個性能指標的數(shù)值大小,從而可以為企業(yè)IT網(wǎng)絡管理員合理分配硬件資源提供依據(jù)于參考。

(a)CPU監(jiān)控

(b)硬盤監(jiān)控

(c)內(nèi)存監(jiān)控
4結語
本文通過對目前主流的開源監(jiān)控軟件Nagios和Cacti的工作原理研究,分析了兩款軟件各自在監(jiān)控方面的優(yōu)缺點,設計了一套集成多組件、并對Nagios與Cacti進行整合的網(wǎng)絡與系統(tǒng)監(jiān)控方案,并對方案進行了實現(xiàn),通過部分的監(jiān)控效果闡述了本方案在目前企業(yè)網(wǎng)絡日常運維過程中的有效性以及重要性。通過本系統(tǒng)進行的監(jiān)控可以為企業(yè)數(shù)據(jù)中心網(wǎng)絡與系統(tǒng)運行狀況的改善提供數(shù)據(jù)依據(jù),對于及時發(fā)現(xiàn)數(shù)據(jù)中心運行時出現(xiàn)的問題和隱患、節(jié)約企業(yè)數(shù)據(jù)中心運維成本以及保障企業(yè)數(shù)據(jù)中心網(wǎng)絡與系統(tǒng)正常運行具有非常重要的意義。
參考文獻:
[1]徐遠澤,張文科,尹一樺等.APT攻擊及其防御研究[J].通信技術,2015,48(06): 740-745.
XU Yuan-ze,ZHANG Wen-ke,YIN Yi-hua,et al.APT Attacks and Its Defense[J].Communications Technology,2015,48(06): 740-745.
[2]羅奕,陳粵.基于Nagios的銀行集中監(jiān)控系統(tǒng)的構建與應用[J].計算機時代,2013(06):30-33.
LUO Yi,CHEN Yue.Construction and Application of Nagios-based Centralized Monitoring System in Banks[J].Computer Era,2013(06):30-33.
[3]李剛,王曉磊,孫路強等.基于Nagios軟件的綜合短信聯(lián)動告警系統(tǒng)在地震行業(yè)中的應用研究[J].地震研究,2012(35):133-138.
LI Gang,WANG Xiao-lei,SUN Lu-qiang,et al.Application of the Integrated Short-Message Warning System based on Nagios Software to the Earthquake Profession[J].Journal of Semismological Research,2012(35):133-138.
[4]楊昌武,曹龍漢.飛信報警方式的Nagios網(wǎng)絡監(jiān)控系統(tǒng)在企業(yè)中的應用[J].網(wǎng)絡安全技術研究應用,2012(07):42-45.
YANG Chang-wu,CAO Long-han.Application of Nagios Network Monitoring System with the Method of Fetion Alarming in Enterprise[J].Network Security Technology & Application,2012(07):42-45.
[5]李元雄.構建基于Nagios的圖形化服務器監(jiān)控報警平臺[J].軟件導刊,2011(07):154-155.
LI Yuan-xiong.Construction of a Graphical Server Monitoring and Warning Platform based on Nagios[J].Software Guide,2011(07):154-155.
[6]王世輝,潘瑩,梁京章.基于Nagios 的IPv6 網(wǎng)絡監(jiān)控系統(tǒng)的研究與應用[J].廣西大學學報:自然科學版,2011(36):170-173.
WANG Shi-hui,PAN Ying,Liang Jing-zhang.Research and Application of Ipv6 Network Monitoring System based on Nagios[J].Journal of Guangxi University (Natural Science Edition),2011(36): 170-173.
[7]陳子國,劉金剛.基于Nagios的網(wǎng)絡監(jiān)控系統(tǒng)的設計和實現(xiàn)[J].微計算機信息,2010(26):120-121.
CHEN Zi-guo,LIU Jin-gang.Design and Implement of Network Monitoring System based on Nagios[J].Microcomputer Information,2010(26):120-121.
[8]呂偉春,胡洪新,湯劍.基于Nagios的網(wǎng)絡監(jiān)控系統(tǒng)研究[J].電腦知識與技術,2010(06):48-51.
LV Wei-chun,HU Hong-xin,TANG Jian.Research of Network Monitoring System based on Nagios[J].Computer Knowledge and Technology,2010(06):48-51.
[9]WANG Z,WANG Y,SHAO G.Research and Development of Monitoring System for Network Servers.[C] In: WiCOM ’08 4th International Conference on Wireless Communications.USA: IEEE Press,2008,1-3.
[10]Emir Imamagic,Dobrisa Dobrenic.GridInfrastructure Monitoring System based on Nagios [C].In: Proceedings of the 2007 workshop on Grid Monitoring.USA: ACM Press,2007.23-28.
A Monitoring Solution based on Integrated Multi-Module Open-Source Software
ZUO Zhen-yong
(China Aeronautical Radio Electronics Research Institute,Shanghai 200000,China)
Abstract:Aiming at the inadequate monitoring of the current enterprise data center on the network and system,the working principles for open-source monitoring software of Nagios and cacti are researched and analyzed,and a monitoring solution is proposed and designed.The method,based on Nagios and Cacti integrated multi-module open-source software and by using SNMP protocol of Nagios and Cacti,could implement monitoring and alarming of the enterprise network and system on multiple platforms,and also provides the enterprises data center with a real-time monitoring platform of resources and services.Analysis and simulation of the actual network environment indicate the effectiveness of the proposed solution.
Key words:monitoring; multi-component; Nagios; Cacti; SNMP protocol; alert
doi:10.3969/j.issn.1002-0802.2016.02.017
* 收稿日期:2015-09-03;修回日期:2015-12-28Received date:2015-09-03;Revised date:2015-12-28
中圖分類號:TP319
文獻標志碼:A
文章編號:1002-0802(2016)02-0211-06
作者簡介:

左珍勇(1984—),男,碩士,工程師,主要研究方向為信息安全與網(wǎng)絡監(jiān)控。