張嘉豪 趙 亮 翁銘隆 張華俊 李文欣
(廣東東軟學(xué)院,廣東 佛山528225)
在信息化社會的建設(shè)中,全球服務(wù)器的數(shù)量成幾何級增長,服務(wù)器的正常運(yùn)行支撐著社會的每一個環(huán)節(jié)。因此,每一個服務(wù)器都必須得到時刻的監(jiān)控,否則,一旦發(fā)生“宕機(jī)”(服務(wù)器崩潰),將會為社會、企業(yè)、個人帶來巨大的損失。根據(jù)美國標(biāo)準(zhǔn)技術(shù)研究所(NIST)所公布的數(shù)據(jù):金融行業(yè)每停機(jī)一分鐘,平均損失900,000 美元。(信息來源于電子信息產(chǎn)業(yè)網(wǎng))
但目前市場上現(xiàn)有的服務(wù)器監(jiān)控服務(wù)并不完善。第一是大部分的監(jiān)控服務(wù)只能在服務(wù)器宕機(jī)后才進(jìn)行報警,預(yù)警功能不強(qiáng),并不能防止損失的發(fā)生;第二是價格高,阻礙服務(wù)器監(jiān)控服務(wù)的推廣。為此,我們制作并成功制作了一個具有更高性價比、監(jiān)控功能更完善的服務(wù)器監(jiān)控系統(tǒng)。
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個開源框架整合而成(SpringMVC 是Spring 中的部分內(nèi)容)。常作為數(shù)據(jù)源較簡單的web 項(xiàng)目的框架。
Spring:Spring 就像是整個項(xiàng)目中裝配bean 的大工廠,在配置文件中可以指定使用特定的參數(shù)去調(diào)用實(shí)體類的構(gòu)造方法來實(shí)例化對象。也可以稱之為項(xiàng)目中的粘合劑。Spring 的核心思想是IoC(控制反轉(zhuǎn)),即不再需要程序員去顯式地`new`一個對象,而是讓Spring 框架幫你來完成這一切。
SpringMVC:SpringMVC 在項(xiàng)目中攔截用戶請求,它的核心Servlet 即DispatcherServlet 承擔(dān)中介或是前臺這樣的職責(zé),將用戶請求通過HandlerMapping 去匹配Controller,Controller 就是具體對應(yīng)請求所執(zhí)行的操作。SpringMVC 相當(dāng)于SSH 框架中struts。
Mybatis:Mybatis 是對jdbc 的封裝,它讓數(shù)據(jù)庫底層操作變的透明。Mybatis 的操作都是圍繞一個SQLSessionFactory 實(shí)例展開的。Mybatis 通過配置文件關(guān)聯(lián)到各實(shí)體類的Mapper 文件,Mapper 文件中配置了每個類對數(shù)據(jù)庫所需進(jìn)行的SQL 語句映射。在每次與數(shù)據(jù)庫交互時,通過SQLSessionFactory 拿到一個SQLSession,再執(zhí)行SQL 命令。頁面發(fā)送請求給控制器,控制器調(diào)用業(yè)務(wù)層處理邏輯,邏輯層向持久層發(fā)送請求,持久層與數(shù)據(jù)庫交互,后將結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)。
首先是在開發(fā)語言的選擇上的分析,C 語言對于底層有著得天獨(dú)厚的優(yōu)勢,但是在Windows 系統(tǒng)以及ISO 系統(tǒng)上就會變得復(fù)雜,主要是環(huán)境的依賴,因此我們選用了Java 語言作為開發(fā)語言,主要是看重其跨平臺的特性,其次是其擁有很好框架支持--Spring,這里選用了SSM以及Spring Boot 框架最為我們的整體開發(fā)框架,對于底層的數(shù)據(jù)獲取選用了Sigar 以及自己編寫了一套可以繞過虛擬機(jī)獲取真實(shí)信息的方案,數(shù)據(jù)通過MySQL 數(shù)據(jù)庫進(jìn)行數(shù)據(jù)儲存。
技術(shù)圖示:
圖1 服務(wù)器監(jiān)控管理系統(tǒng)技術(shù)圖
SMS 平臺分為兩部分,一個部分是使用SSM搭建打管理平臺,另一部分是用Spring Boot 搭建的監(jiān)控工具,通過劃分兩部分的方案,既保證平臺高可用,又保證監(jiān)控穩(wěn)定,減少過多的數(shù)據(jù)交互,只在必要的時候進(jìn)行數(shù)據(jù)備份以及預(yù)警處理。
基于互聯(lián)網(wǎng)思維,將注重用戶體驗(yàn)、快速迭代等因素,加強(qiáng)產(chǎn)品UI 的美觀度、設(shè)計(jì)感,通過交互設(shè)計(jì)提升用戶參與體驗(yàn)感,充分考慮用戶的喜好和意見。功能設(shè)計(jì)方面,個人信息、增加服務(wù)器信息、增加服務(wù)器信息、刪除服務(wù)器信息。讓用戶對產(chǎn)品功能存在自然期待,提升關(guān)注指數(shù),提高系統(tǒng)吸引力和粘性,主要功能分為用戶管理功能、系統(tǒng)日志、信息查詢等。
表1 SMS 服務(wù)器監(jiān)控管理系統(tǒng)功能表
主要有以下功能區(qū):
用戶管理功能:用戶可以自行注冊賬號密碼和對監(jiān)管服務(wù)系統(tǒng)的權(quán)限控制,根據(jù)權(quán)限控制遠(yuǎn)程監(jiān)視系統(tǒng)。
系統(tǒng)日志:對于系統(tǒng)的操作,如系統(tǒng)報警,用戶登陸和退出、系統(tǒng)運(yùn)行情況等等,都會有相關(guān)的日志記錄。
信息查詢:登陸用戶可查詢系統(tǒng)的使用和運(yùn)行情況,如服務(wù)器信息,故障信息等等。
圖2 系統(tǒng)功能架構(gòu)圖
4.1 先進(jìn)性:作為一個輕量級跨平臺方案,首先是在代碼層面上是精簡配置、高內(nèi)聚低耦合,符合REST 接口思想,其次是Linux、Windows、IOS 系統(tǒng)上都可以完全接入使用,完全不用擔(dān)心過多環(huán)境依賴的問題;配置簡單,只需要基本環(huán)境就可以運(yùn)行。我們選用最新的開源框架Spring,該框架具有輕量、安全性高、易用等特性;其次開發(fā)語言是對應(yīng)的Java,同樣在整個市場上是有一定的地位,同時其跨平臺的特性也是非常重要的。
目前市面上同類產(chǎn)品的缺點(diǎn):(1)可移植性差:阿里云、騰訊云具有自己的云服務(wù)平臺,也有屬于自己的監(jiān)控系統(tǒng),但是都只能在其平臺使用,無法進(jìn)行遷移到其他的平臺上。 VMware的產(chǎn)品具有一定的遷移性,但是對于MacOS 系統(tǒng)則需要另一個專門的系統(tǒng)去支持。而我們的系統(tǒng)則是在三大操作系統(tǒng)上暢通無阻,甚至可以跨云平臺進(jìn)行使用。(2)系統(tǒng)笨重:阿里、騰訊和VMware 在云服務(wù)領(lǐng)域是起步比較早的,那么選用的模型會比較舊,底層的技術(shù)也跟不上時代的發(fā)展,再加上其功能繁雜,特別當(dāng)有新的功能需要整合時,需要考慮到整體項(xiàng)目的框架以及兼容性,那么這些需求就會導(dǎo)致整體系統(tǒng)不夠輕量化,特別是整體升級的時候,需要去處理的內(nèi)容特別多。但是我們選用的是最新的Spring5 框架,其輕量化程度高,是當(dāng)下使用量最多的輕量型框架,因此我們在這一方面是有得天獨(dú)厚的優(yōu)勢。(3)易用性低:阿里、騰訊和VMware 都有一定的積累,那么其功能也是越來越多,但也導(dǎo)致其上手難度增大,用戶無法快速學(xué)習(xí)并使用,這導(dǎo)致大部分用戶在使用其服務(wù)的時候就別其專業(yè)術(shù)語以及操作難度搞而放棄使用,轉(zhuǎn)而使用簡單高效的云平臺。我們的系統(tǒng)側(cè)重考慮這些情況,將整體功能進(jìn)行整合,讓用戶簡單易上手,可以在3 分鐘內(nèi)學(xué)會如何操作。(4)價格虛高:市面上大部分這樣系統(tǒng)基本價格都是虛高,低至5000(阿里巴巴),上至幾萬(騰訊云),但是其功能基本相同,本系統(tǒng)價格低廉,市面上的基本功能我們都有。
4.2 獨(dú)特之處:具有信息有效性:大部分的監(jiān)控系統(tǒng)展示的數(shù)據(jù)都是歷史數(shù)據(jù),并不能做到保護(hù)服務(wù)器的效果,只能說回顧服務(wù)器的狀態(tài),但是該系統(tǒng)做到了信息實(shí)時有效,保證了數(shù)據(jù)價值;多方位信息反饋:通過多終端方案進(jìn)行信息反饋,在服務(wù)器出現(xiàn)異常的第一時間通過郵箱、短信等消息通知方案向用戶發(fā)送異常報告,保證用戶能在第一時間做出處理,減少不必要的時間浪費(fèi)以及財(cái)產(chǎn)損失。絕對精確性:該系統(tǒng)采用端到端方案建立連接,即保證在服務(wù)器通訊的安全,又能精確獲取到真實(shí)有效的目標(biāo)信息,不論是底層的硬件信息還是當(dāng)前的服務(wù)器運(yùn)行狀態(tài),都可以在瞬息之間獲??;簡易性:大部分的系統(tǒng)從安裝到使用是非常的麻煩的,需要配置過多的信息,但是該系統(tǒng)已經(jīng)做了相對應(yīng)的系統(tǒng)優(yōu)化,不論是部署還是使用都是非常簡單,可以說是“傻瓜式”啟動,甚至是開箱即用;提升并強(qiáng)化安全監(jiān)控:對服務(wù)器的資源進(jìn)行綜合監(jiān)控管理,保證每一個服務(wù)器都在監(jiān)控范圍內(nèi),讓用戶有效利用服務(wù)器資源,讓每一個服務(wù)器的價值發(fā)揮到最大。對服務(wù)器的進(jìn)行安全漏洞的檢查,并反饋給用戶進(jìn)行維護(hù),以此減少安全隱患。
本系統(tǒng)能夠?qū)崿F(xiàn)實(shí)時“高可用性”信息反饋;并具有可靠性,靈活性和擴(kuò)展性;可以快速判斷服務(wù)器異常發(fā)生,提高服務(wù)器的穩(wěn)定性;為網(wǎng)絡(luò)管理員提供良好的信息來源,減少網(wǎng)絡(luò)故障率,縮短失效時間;并且針對中小型企業(yè),大部分的服務(wù)器是內(nèi)網(wǎng)訪問,但可以通過該平臺建立監(jiān)控可以間接的獲取到服務(wù)器的狀態(tài),為企業(yè)的收益保駕護(hù)航;其次針對政府民生系統(tǒng),在異常發(fā)生前就進(jìn)行預(yù)警,減少項(xiàng)目負(fù)責(zé)企業(yè)以及政府的損失,以保證廣大人民的權(quán)益。
SMS 是一個基于Spring+SpringMVC+Mybatis 框架的輕量級服務(wù)
控管理系統(tǒng),采用具有很好的跨平臺特性Java 作為后臺,一個無需專用客戶端即可為用戶提供簡潔的服務(wù)器監(jiān)控管理系統(tǒng),以讓用戶隨時隨地監(jiān)控自己的服務(wù)器狀態(tài),該系統(tǒng)可以監(jiān)控跨平臺的云服務(wù)器和實(shí)體服務(wù)器,將其整合,方便用戶使用,并且能夠?qū)崟r反饋服務(wù)器的相關(guān)信息,并在第一時間將異常信息反饋用戶,減少用戶的損失。