【摘 要】本文針對信息系統(tǒng)運(yùn)維過程的自動(dòng)告警手段在實(shí)際業(yè)務(wù)應(yīng)用中存在的問題,設(shè)計(jì)并實(shí)現(xiàn)了使用電話撥號的方式進(jìn)行自動(dòng)告警。首先從實(shí)際業(yè)務(wù)運(yùn)行遇到的問題出發(fā)給出設(shè)計(jì)思路,在此基礎(chǔ)上進(jìn)一步選擇關(guān)鍵的實(shí)現(xiàn)技術(shù),設(shè)計(jì)并實(shí)現(xiàn)出自動(dòng)撥號告警程序,并提供調(diào)用接口進(jìn)行平臺化,在實(shí)際應(yīng)用中表明能夠大大引起系統(tǒng)維護(hù)人員對告警信息的注意。
【關(guān)鍵詞】監(jiān)控 告警 撥號 AT指令 HTTP請求
在信息系統(tǒng)運(yùn)行以及維護(hù)的過程中,往往需要實(shí)現(xiàn)自動(dòng)監(jiān)控與自動(dòng)告警,從而提高系統(tǒng)運(yùn)行保障能力。自動(dòng)告警的方式一般為聲音、閃爍的屏幕或者變色標(biāo)注(畫)、短信等。聲畫兩種方式需要值班人員一直值守現(xiàn)場;在晚間休息的時(shí),值班人員可能對短信關(guān)注度不足,告警信息往往容易被忽略。在此情況下,就亟需一種監(jiān)控告警方式能夠有效引起值班人員的注意,其中撥打值班人員手機(jī)是一種效果顯著的方式,結(jié)合發(fā)送告警信息短信,能起到很好的提醒作用。
一、設(shè)計(jì)思路
(一)總體設(shè)計(jì)思路
為實(shí)現(xiàn)在信息系統(tǒng)運(yùn)維監(jiān)控中撥打手機(jī)進(jìn)行告警,需設(shè)計(jì)實(shí)現(xiàn)一套自動(dòng)撥號告警平臺??墒褂米詣?dòng)撥號器發(fā)送AT指令控制調(diào)制解調(diào)器(MODEM)進(jìn)行撥號,并實(shí)現(xiàn)一個(gè)標(biāo)準(zhǔn)化、跨平臺的調(diào)用接口,以供各種監(jiān)控程序進(jìn)行調(diào)用。HTTP協(xié)議請求的方式是一種能夠輕易讓多種外部程序訪問調(diào)用的接口實(shí)現(xiàn)方法,簡單的參數(shù)則可以直接使用URL進(jìn)行參數(shù)傳遞。
在硬件方面,可采用具有COM口的服務(wù)器或者工作站,使用RS232接口線纜連接計(jì)算機(jī)與MODEM,再把MODEM與電話線相連。采用V.90普通撥號MODEM即可。
(二)設(shè)計(jì)思路以及界面設(shè)計(jì)如圖所示:
本系統(tǒng)平臺主要在Microsoft Visual Studio 2010 下使用C#以及asp.net進(jìn)行開發(fā),調(diào)用接口使用IIS7.0運(yùn)行。
二、常用呼叫控制AT指令
AT即Attention,AT指令一般應(yīng)用于終端設(shè)備與PC應(yīng)用之間的連接和通信。每個(gè)AT命令行中只能包含一條AT指令,以回車作為結(jié)尾。常用呼叫控制AT指令包括:ATD
三、自動(dòng)撥號告警程序的設(shè)計(jì)、實(shí)現(xiàn)以及平臺化
(一)自動(dòng)撥號的實(shí)現(xiàn)
1. MODEM通信與撥號指令
計(jì)算機(jī)與MODEM使用串口進(jìn)行通信,無須安裝MODEM的驅(qū)動(dòng)程序即可使用。串口通信參數(shù)包括串口名稱(如COM1)、波特率、數(shù)據(jù)位、停止位、奇偶校驗(yàn)。
使用C#命名空間System.IO.Ports的SerialPort類,可方便進(jìn)行串口通信,只需要?jiǎng)?chuàng)建一個(gè)SerialPort的實(shí)例,調(diào)用其Open、Write、Close等方法。為實(shí)現(xiàn)簡化撥號器的實(shí)現(xiàn),可使用AT指令中的ATD以及ATH兩者搭配,即在執(zhí)行ATD前,無論MODEM狀態(tài)如何,先執(zhí)行一次ATH以掛斷電話,等待3秒后,再執(zhí)行ATD指令。根據(jù)AT指令的結(jié)束規(guī)則,使用’\r’回車符作為結(jié)尾。
2.循環(huán)撥號
為滿足業(yè)務(wù)需求,避免目標(biāo)手機(jī)短時(shí)網(wǎng)絡(luò)故障或者值班人員一時(shí)未留意手機(jī)聲響,設(shè)計(jì)循環(huán)撥號功能,使告警器保持呼叫,直至值班人員使用自動(dòng)撥號告警器界面上的“掛斷”按鈕為止。使用呼叫持續(xù)、循環(huán)間隔2個(gè)參數(shù)進(jìn)行控制。呼叫持續(xù):即發(fā)送ATD指令進(jìn)行撥號與發(fā)送ATH指令進(jìn)行掛斷之間的等待時(shí)間;循環(huán)間隔:即上一ATH掛斷指令后,再等待發(fā)送ATD撥號指令的間隔時(shí)間。
(二)平臺化
為使自動(dòng)監(jiān)控程序在發(fā)現(xiàn)異常時(shí),能方便調(diào)用自動(dòng)撥號告警器功能,需要使之平臺化,即實(shí)現(xiàn)一個(gè)調(diào)用接口,當(dāng)該接口被調(diào)用時(shí)能觸發(fā)撥號功能。設(shè)計(jì)思路為當(dāng)接口被調(diào)用時(shí)置標(biāo)識信息,撥號告警程序根據(jù)標(biāo)識信息執(zhí)行任務(wù)。
1.獲取自動(dòng)撥號告警標(biāo)識
以自動(dòng)撥號告警器同一目錄下dial.dat文件內(nèi)容為標(biāo)識,程序?qū)ξ募M(jìn)行輪詢讀取其內(nèi)容,判斷:若為’0’,不執(zhí)行任何撥號動(dòng)作;若為’1’,進(jìn)行1次撥號,撥號動(dòng)作完畢后,寫dial.dat文件內(nèi)容為’0’;若為’N’,執(zhí)行循環(huán)撥號,直至手工“掛斷”后寫dial.dat文件內(nèi)容為’0’。
2.HTTP調(diào)用接口的設(shè)計(jì)與實(shí)現(xiàn)
使用ASP.NET實(shí)現(xiàn)頁面Dial.aspx,帶參數(shù)mode=1或者mode=N,以標(biāo)識1次撥號或循環(huán)撥號模式。監(jiān)控程序在有需要的時(shí)候,利用 WebRequest直接訪問Dial.aspx?mode=1(或N)即可調(diào)用接口,從而對dial.dat文件進(jìn)行修改。
四、結(jié)語
實(shí)施該自動(dòng)撥號告警平臺后,結(jié)合發(fā)送短信進(jìn)行雙告警。在運(yùn)維監(jiān)控中使用多種告警方式,一方面減低了因告警系統(tǒng)本身的故障而影響的故障響應(yīng)速度,另一方面能各取所長達(dá)到信息傳達(dá)速度提高的目的,大大加強(qiáng)了信息系統(tǒng)運(yùn)維的保障力度。值班人員在夜間休息或者在其他地點(diǎn)處理故障時(shí),也能立刻獲得系統(tǒng)異常情況,對故障的響應(yīng)速度有較大的提高。
重要信息系統(tǒng)運(yùn)維過程中的故障響應(yīng)速度成為了工作質(zhì)量考核的非常重要的指標(biāo),在人力配備有限的情況下,實(shí)施有效的自動(dòng)監(jiān)控以及自動(dòng)告警是效果顯著的技術(shù)輔助手段。在一種手段不能完全滿足業(yè)務(wù)所需的情況下,可以采用多種手段進(jìn)行互補(bǔ)。
參考文獻(xiàn):
[1]孫東方,MODEM的AT指令及其應(yīng)用,惠州學(xué)院學(xué)報(bào),2000,4
[2](美)內(nèi)格爾,C#高級編程,清華大學(xué)出版社,2008
[3]李根明,企業(yè)計(jì)算機(jī)信息系統(tǒng)維護(hù)的強(qiáng)化措施探討,電子技術(shù)與軟件工程,2013,14
[4]潘藝鵬,結(jié)合手機(jī)短信搭建實(shí)時(shí)告警平臺,中國教育網(wǎng)絡(luò),2011,05