国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SSH協(xié)議的CMACast智能維護(hù)系統(tǒng)設(shè)計(jì)

2019-12-23 09:28韓超
電腦知識(shí)與技術(shù) 2019年31期

韓超

摘要:讓基于Java語(yǔ)言開發(fā)的維護(hù)程序,通過(guò)SSH2協(xié)議遠(yuǎn)程登入到CMACast接收服務(wù)器,實(shí)時(shí)檢測(cè)當(dāng)前CMACast資料接收業(yè)務(wù)的運(yùn)行狀態(tài),形成系統(tǒng)運(yùn)行進(jìn)程、硬盤使用情況、FTP推送情況、衛(wèi)星入鎖情況、通道文件接收情況五個(gè)維度的運(yùn)行參數(shù),并利用這些狀態(tài)參數(shù)對(duì)業(yè)務(wù)運(yùn)行情況進(jìn)行診斷,然后針對(duì)診斷結(jié)果遠(yuǎn)程對(duì)Linux服務(wù)器作出相應(yīng)的操作,從而達(dá)到故障判斷和故障處理自動(dòng)化的目的。最后通過(guò)WebService技術(shù)將診斷結(jié)果實(shí)時(shí)推送給網(wǎng)頁(yè)、手機(jī)等多端監(jiān)控平臺(tái)。

關(guān)鍵詞:CMACast;SSH協(xié)議;自動(dòng)維護(hù);實(shí)時(shí)播報(bào)

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2019)31-0068-04

1背景

CMACast系統(tǒng)是中國(guó)氣象局自2012年6月正式投入業(yè)務(wù)使用的新一代氣象衛(wèi)星廣播系統(tǒng),它是目前各地區(qū)氣象局接收衛(wèi)星氣象數(shù)據(jù)的主要手段。CMACast接收服務(wù)器作為CMACast系統(tǒng)的重要一環(huán),自然也成了各氣象局網(wǎng)絡(luò)維護(hù)工作的重要科目。全新架構(gòu)下的CMACast衛(wèi)星接收系統(tǒng)在數(shù)據(jù)接收速率和接收時(shí)效上都有了質(zhì)的飛躍,就市級(jí)衛(wèi)星小站而言,單日數(shù)據(jù)接收量可達(dá)250G,接收文件數(shù)量達(dá)267萬(wàn)個(gè)。這也意味著在接收服務(wù)器上,平均每分鐘將產(chǎn)生1854個(gè)文件。所以對(duì)于網(wǎng)絡(luò)維護(hù)人員來(lái)說(shuō),時(shí)間就是珍貴的氣象數(shù)據(jù),一旦CMACast系統(tǒng)發(fā)生故障,能否第一時(shí)間發(fā)現(xiàn)并排除將直接影響當(dāng)天數(shù)據(jù)接收的完整性。設(shè)計(jì)一個(gè)能夠自動(dòng)監(jiān)控CMACast運(yùn)行狀態(tài),自動(dòng)排除CMACast常見故障的維護(hù)系統(tǒng),最大限度得保障衛(wèi)星資料接收的完整性,對(duì)于CMACast系統(tǒng)的維護(hù)工作顯得尤為重要。

2系統(tǒng)概述

CMACast數(shù)據(jù)接收服務(wù)的系統(tǒng)功能主要由Recv_daemon、MeidaRecv、FileFtp、CMACast四個(gè)進(jìn)程來(lái)配合實(shí)現(xiàn)。其中Recv_daemon和MeidaRecv負(fù)責(zé)數(shù)據(jù)接收和生成,F(xiàn)ileFtp負(fù)責(zé)數(shù)據(jù)推送,CMACast則負(fù)責(zé)系統(tǒng)運(yùn)行狀態(tài)的監(jiān)測(cè)顯示。CMA-Cast作為小站接收監(jiān)控軟件,整體基于C/S架構(gòu)設(shè)計(jì)。軟件開發(fā)者通過(guò)將系統(tǒng)運(yùn)行和系統(tǒng)監(jiān)控分離的方式,合理得將任務(wù)分配給了不同的系統(tǒng)進(jìn)程,并通過(guò)較為直觀的圖形界面,分別從系統(tǒng)硬件和服務(wù)軟件兩個(gè)方面進(jìn)行實(shí)時(shí)監(jiān)測(cè)和展示。

由于其監(jiān)控軟件整體基于C/S架構(gòu)設(shè)計(jì)的特點(diǎn),所以在系統(tǒng)運(yùn)行時(shí),服務(wù)進(jìn)程會(huì)對(duì)系統(tǒng)各項(xiàng)狀態(tài)都留有較為完整的運(yùn)行日志。這使得我們能夠基于這種架構(gòu),重新設(shè)計(jì)C/S架構(gòu)中的c端,通過(guò)查詢Linux系統(tǒng)和服務(wù)進(jìn)程留下的運(yùn)行日志,診斷CMACast運(yùn)行狀態(tài)以便程序進(jìn)行相應(yīng)的自主維護(hù)操作。

3維護(hù)程序與接收服務(wù)器的遠(yuǎn)程交互

3.1遠(yuǎn)程登入系統(tǒng)

SSH(安全外殼協(xié)議)是Secure Shell的縮寫,由IETF的網(wǎng)絡(luò)小組(Network Working Group)所制定。SSH是建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議,專為遠(yuǎn)程登人會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。SSH作為一種安全可靠的通訊協(xié)議已被廣泛應(yīng)用于Liunx系統(tǒng)的遠(yuǎn)程登入管理上。

JSch是一個(gè)純Java實(shí)現(xiàn)的第三方SSH2協(xié)議類庫(kù),項(xiàng)目地址為WrfirW.jcraft.com/jsch/,利用該類庫(kù)可實(shí)現(xiàn)遠(yuǎn)程登入到CMA-Cast接收服務(wù)器并執(zhí)行SHELL查詢命令的功能。下載類庫(kù)包并引入項(xiàng)目后,首先在項(xiàng)目里用代碼初始化Sessionf遠(yuǎn)程登入會(huì)話),運(yùn)行代碼如下所示。

jSch=new JSch();

session=jsch.getSession(用戶名,IP地址,端口);

session.setPassword(密碼);

由于嚴(yán)格的SSH公鑰檢查會(huì)影響Java維護(hù)系統(tǒng)的自動(dòng)化任務(wù),所以在Session初始化完成后需要取消SSH公鑰檢查。最后讓Java檢測(cè)遠(yuǎn)程登人CMACast服務(wù)器。運(yùn)行代碼如下所示。

session.setConfig(”StrictHostKeyChecking”,”no”);

session.connect(登人超時(shí)時(shí)間);

3.2執(zhí)行命令和獲取反饋

讓監(jiān)控程序通過(guò)SSH的22端口對(duì)遠(yuǎn)程服務(wù)器進(jìn)行管理,是實(shí)現(xiàn)CMACast服務(wù)器智能維護(hù)的基礎(chǔ)。它使我們不僅可以判斷出正在發(fā)生的故障,還能讓監(jiān)控系統(tǒng)全面接管CMACast接收服務(wù)器,從而達(dá)到智能維護(hù)的目的。

遠(yuǎn)程執(zhí)行命令并實(shí)時(shí)獲取執(zhí)行后的反饋,是監(jiān)控程序全面接管服務(wù)器的關(guān)鍵點(diǎn)。通過(guò)讓Java支持SSH2協(xié)議后,這一點(diǎn)并不難實(shí)現(xiàn)。首先用Session打開命令通道(channelExec),然后在新建的通道中運(yùn)行setCommand()來(lái)執(zhí)行查詢命令。因?yàn)镃hannelExec命令通道支持shell的分隔符,所以可以像在本機(jī)上執(zhí)行shell腳本一樣,運(yùn)用“;”和“I”等符號(hào)在一次查詢中提交多個(gè)命令。最后在命令通道中用getlnputStream方法獲取執(zhí)行結(jié)果。運(yùn)行代碼如下所示。

ChannelExec channel=(channelExec)session.openChannel("exec"):

4維護(hù)邏輯設(shè)計(jì)與實(shí)現(xiàn)

4.1常見故障

CMACast接收服務(wù)器的主要功能是衛(wèi)星資料接收和傳遞,因其特殊的功能定位,日常維護(hù)中時(shí)常會(huì)遇到三種常見的系統(tǒng)故障。首先是衛(wèi)星入鎖狀態(tài)異常,故障表現(xiàn)為系統(tǒng)無(wú)法接收到新的衛(wèi)星資料,同時(shí)監(jiān)控界面顯示“未入鎖”狀態(tài)。其次是硬盤剩余空間異常,當(dāng)“sdbl”“sdb2”“sdb3”三個(gè)磁盤分區(qū)的空間使用量長(zhǎng)時(shí)間停留在90%時(shí),會(huì)造成硬盤空間異常。最后是FTP推送異常,具體表現(xiàn)為系統(tǒng)無(wú)法將資料通過(guò)ftp推送至數(shù)據(jù)存儲(chǔ)服務(wù)器。

4.2日志系統(tǒng)

CMACast接收服務(wù)器內(nèi)各個(gè)資料的運(yùn)行流轉(zhuǎn)主要依賴四個(gè)掛載點(diǎn),分別是位于/dvbs2目錄下的“sdbl”“sdb2”“sdb3”和“sdb4”,其中容量為62G名為“sdb4”的掛載點(diǎn)內(nèi)存儲(chǔ)著系統(tǒng)運(yùn)行的各項(xiàng)日志。日志系統(tǒng)以天為單位形成記錄文件,并采用在文件末尾逐條添加的方式實(shí)時(shí)更新系統(tǒng)的各項(xiàng)狀態(tài)。有了系統(tǒng)日志的數(shù)據(jù)支持,我們便能夠以此為依據(jù),自行定制智能維護(hù)系統(tǒng)的程序邏輯。

4.3入鎖故障

入鎖故障常見于冬天降雪天氣,衛(wèi)星接收器的金屬拋物面被積雪覆蓋后,造成衛(wèi)星信號(hào)無(wú)法反射到信號(hào)焦點(diǎn)處的高頻頭內(nèi),導(dǎo)致接收設(shè)備無(wú)法入鎖。入鎖異常除了受雨雪天氣影響較大外,還可能受通訊電纜中斷和高頻頭損壞等因素的影響。實(shí)際維護(hù)時(shí),網(wǎng)絡(luò)值班人員需要時(shí)刻注意CMACast監(jiān)控界面的入鎖狀態(tài)顯示,發(fā)現(xiàn)入鎖異常后需要及時(shí)檢查室外的衛(wèi)星接收器。

在CMACast日志系統(tǒng)的運(yùn)行邏輯方面,系統(tǒng)當(dāng)前的入鎖狀態(tài)會(huì)以1分鐘的頻率,實(shí)時(shí)記錄在“/dvbs2/sdb4/log/dvb”路徑下,以“YYYYMMDD.log”命名的日志文件里。不同時(shí)次的數(shù)據(jù)以換行符為間隔,記錄下形如“12:46:25 Y 95 8.0 0.000000E+046657”樣式的數(shù)據(jù)。每個(gè)時(shí)次數(shù)據(jù)又以空格符為間隔,分別記錄下時(shí)間、狀態(tài)、信號(hào)強(qiáng)度、信噪比(Eb/No)、誤碼率和數(shù)據(jù)率6項(xiàng)衛(wèi)星入鎖參數(shù)。

在設(shè)計(jì)程序的維護(hù)邏輯時(shí),首先需要判斷“/dvbs2/sdb4/log/dvb”路徑下是否已經(jīng)生成了當(dāng)天的入鎖日志文件。讓維護(hù)程序通過(guò)“LS”命令獲取日志目錄下所有日志文件的名稱,從而判斷是否包含當(dāng)前日期的日志文件即可完成判斷過(guò)程。在代碼編寫上,由于ChannelExec命令通道支持shell的分隔符,所以在Java中可以使用“/n”換行符來(lái)連接多條查詢命令。把切換目錄和文件名顯示命令合并成一條語(yǔ)句后,代碼可以用如下方式組織。

String cmd=”cd ∧ncd/dvbs2/sdb4/log/dvb∧nls/n”:String message=shell.exeeCommand(cmd);

執(zhí)行查詢命令后,維護(hù)程序會(huì)獲得由所有日志文件名稱組成的字符串。最后判斷該字符串中是否包含當(dāng)前日期即可確定當(dāng)前的CMACast日志系統(tǒng)是否正常工作。

在確定當(dāng)天入鎖日志正常生成之后,可以讓維護(hù)程序以日志文件為依據(jù),檢測(cè)當(dāng)前衛(wèi)星的入鎖狀態(tài)。由于系統(tǒng)是在文件尾部逐條添加狀態(tài)參數(shù),所以可以用“tail-n”的命令,直接獲取日志文件尾部的最新狀態(tài)信息。程序可以重點(diǎn)監(jiān)控時(shí)間和狀態(tài)兩項(xiàng)參數(shù),當(dāng)檢測(cè)到日志生成異常或者衛(wèi)星入鎖異常時(shí),可以通過(guò)短信或語(yǔ)音的方式及時(shí)通知網(wǎng)絡(luò)管理員。

入鎖故障檢測(cè)邏輯如圖1所示。

4.4磁盤清理故障

磁盤清理異常是日常工作中出現(xiàn)幾率最高的故障之一。CMACast系統(tǒng)會(huì)依次在“sdbl”“sdb2”和“sdb3”三個(gè)路徑下存儲(chǔ)文件。當(dāng)三個(gè)掛載點(diǎn)的空間使用率都達(dá)到90%左右時(shí),CMA-Cast系統(tǒng)會(huì)選擇清空其中一個(gè)文件系統(tǒng)后繼續(xù)儲(chǔ)存文件。但是在日常工作中,磁盤清理功能時(shí)常會(huì)無(wú)法正確工作。這使得數(shù)據(jù)文件堆積達(dá)到設(shè)定闕值后無(wú)法被系統(tǒng)清空,導(dǎo)致新文件無(wú)法正常生成。在實(shí)際維護(hù)時(shí),管理員通常需要手動(dòng)重啟操作系統(tǒng)。系統(tǒng)重啟后一般能重新喚醒清理進(jìn)程再次檢查當(dāng)前的磁盤狀態(tài),并執(zhí)行相應(yīng)的清理命令。

由于CMACast系統(tǒng)并未在日志文件內(nèi)記錄硬盤的使用狀態(tài),所以在設(shè)計(jì)程序的維護(hù)邏輯時(shí),首先需要實(shí)時(shí)監(jiān)控當(dāng)前文件系統(tǒng)的使用情況。在維護(hù)程序遠(yuǎn)程打開CMACast系統(tǒng)的命令通道后,執(zhí)行“dr-h”命令,即可獲取形如圖2的反饋數(shù)據(jù)。其中“/dev/sda5”“/dev/sda6”和“/dev/sda7”三個(gè)文件系統(tǒng)分別對(duì)應(yīng)“/dvbs2/sdbl”“/dvbs2/sdb2”和“/dvbs2/sdb3”三個(gè)掛載點(diǎn)。正常狀態(tài)下,當(dāng)這三個(gè)掛載點(diǎn)的使用率達(dá)到90%時(shí),CMACast系統(tǒng)會(huì)直接將對(duì)應(yīng)的文件系統(tǒng)重新格式化。系統(tǒng)執(zhí)行格式化命令的耗時(shí)很短,通常在1分鐘以內(nèi)。所以當(dāng)我們以5分鐘的間隔去定時(shí)檢測(cè)系統(tǒng)硬盤時(shí),如果累計(jì)兩次都檢測(cè)到三個(gè)文件系統(tǒng)使用率停留在90%,即可確定系統(tǒng)沒(méi)能正常清理磁盤空間。

在檢測(cè)到系統(tǒng)出現(xiàn)磁盤清理故障之后,需要讓遠(yuǎn)端的維護(hù)程序代替CMACast進(jìn)程,在SUSE系統(tǒng)中執(zhí)行分區(qū)格式化的命令。在執(zhí)行格式化命令之前,需要先終止CMACast相關(guān)進(jìn)程使系統(tǒng)停止繼續(xù)接收衛(wèi)星數(shù)據(jù)。通過(guò)讓維護(hù)程序執(zhí)行“/home/cmacast/bin”目錄下的“stopdaemon”腳本,即可在系統(tǒng)中停止Recv_daemon、MeidaRecv、FileFtp、CMACast四個(gè)進(jìn)程。在CMACast停止接收數(shù)據(jù)之后,可讓維護(hù)程序通過(guò)以下四步完成分區(qū)格式化的任務(wù)。首先通過(guò)執(zhí)行“umount/dvbs2/sdbl”命令卸載“/dev/sda5”分區(qū)的掛載點(diǎn)“/dvbs2/sdbl”,然后讓程序繼續(xù)執(zhí)行“mkfs.reiserfs/dev/sdb5”命令,將“/dev/sda5”分區(qū)重新格式化成reiserfs文件系統(tǒng)。待系統(tǒng)執(zhí)行完畢后用“mount/dev/sda5/dvbs2/sdbl”命令將格式化后的文件系統(tǒng)重新掛載。最后執(zhí)行“chown-R emacast:users/dvbs2/sdbl”命令將cmacast用戶組添加到“/dvbs2/sdbl”。至此維護(hù)程序已通過(guò)命令行的方式,在遠(yuǎn)端完成磁盤清理任務(wù)。

磁盤分區(qū)被清空之后,維護(hù)程序需要重新運(yùn)行“/home/cma-cast/bin/”路徑下的start程序來(lái)恢復(fù)業(yè)務(wù)。由于維護(hù)程序和服務(wù)器之間的交互主要基于SSH協(xié)議來(lái)實(shí)現(xiàn),遠(yuǎn)端無(wú)法顯示系統(tǒng)的圖形界面,這導(dǎo)致基于圖形界面運(yùn)行的CMACast監(jiān)控程序無(wú)法被正常運(yùn)行。想要在無(wú)人值守的狀態(tài)下重新恢復(fù)業(yè)務(wù),需要在SUSE系統(tǒng)中添加so庫(kù)路徑,以便維護(hù)程序能夠繞過(guò)CMA-CAST監(jiān)控程序,直接啟動(dòng)數(shù)據(jù)接收和ftp推送進(jìn)程。通過(guò)在“/etc/ld.so.conf”系統(tǒng)文件中添加“/home/cmacast/lib/”路徑即可完成CMACast系統(tǒng)的so庫(kù)路徑加載設(shè)置。此時(shí)在系統(tǒng)控制臺(tái)輸入“l(fā)dd/home/cmacast/bin/Recv_daemon”后可以查看Recv_dae-mOB、MeidaRecv、FileFtp三個(gè)進(jìn)程所要調(diào)用的so庫(kù)能否被系統(tǒng)正常加載。最后讓維護(hù)程序遠(yuǎn)程提交“cd/home/cmacast/bin∧n./star/n./Recv_daemon\n”命令,即可重新恢復(fù)衛(wèi)星數(shù)據(jù)的接收和推送。

磁盤清理故障的檢測(cè)邏輯如圖3所示。

4.5FTP推送故障

數(shù)據(jù)文件推送是CMACast數(shù)據(jù)接收的最后一環(huán),由進(jìn)程“filenp”負(fù)責(zé)主要工作。當(dāng)數(shù)據(jù)文件在本地成功生成后,會(huì)由“filefn)”進(jìn)程推送至指定的FTP服務(wù)器。所以當(dāng)文件無(wú)法及時(shí)被推送到數(shù)據(jù)存儲(chǔ)服務(wù)器時(shí),其故障可能由CMACast服務(wù)器或者FTP服務(wù)器異常導(dǎo)致。

在CMACast日志系統(tǒng)的運(yùn)行邏輯方面,當(dāng)有數(shù)據(jù)文件推送失敗時(shí),系統(tǒng)會(huì)實(shí)時(shí)記錄下推送時(shí)間、推送失敗原因以及文件完整路徑三項(xiàng)內(nèi)容,并以換行符為單項(xiàng)文件分隔標(biāo)記,保存在路徑“/dvbs2/sdb4/log/fileftp/error/fileftp/”下。日志文件以天為單位獨(dú)立保存,當(dāng)天的新記錄在日志尾部逐條添加,其數(shù)據(jù)格式如圖4所示。其中“[Thread.c 14531”括號(hào)內(nèi)標(biāo)識(shí)的“1453”為錯(cuò)誤代碼,不同的故障原因各對(duì)應(yīng)不同的故障代碼。

在設(shè)計(jì)維護(hù)程序的運(yùn)行邏輯時(shí),主要考慮檢測(cè)FTP服務(wù)器和分析本地FTP推送日志兩個(gè)方面。首先檢測(cè)FTP服務(wù)器是否可用,讓維護(hù)程序在遠(yuǎn)端用ftp協(xié)議登入資料存儲(chǔ)服務(wù)器即可完成檢測(cè)任務(wù)。當(dāng)目標(biāo)ftp服務(wù)器發(fā)生異常無(wú)法登入時(shí),通過(guò)語(yǔ)音播報(bào)或手機(jī)短信的方式提醒管理員及時(shí)維護(hù)。在確定遠(yuǎn)端FTP服務(wù)器正??捎煤?,可繼續(xù)分析CMACast的FTP推送狀態(tài)。

FTP推送狀態(tài)的檢測(cè)分析可從兩個(gè)方面著手,一方面是檢測(cè)“fileftp”進(jìn)程是否被正常運(yùn)行。維護(hù)程序在遠(yuǎn)端提交“ps-A”命令后可獲取包含CMACast服務(wù)器所有進(jìn)程的反饋列表。分析反饋?zhàn)址惺欠癜癴ileftp”關(guān)鍵詞即可判斷FTP推送進(jìn)程是否被正常開啟。如果推送進(jìn)程未被正常開啟,則CMACast服務(wù)器無(wú)法執(zhí)行推送任務(wù)。另一方面是分析錯(cuò)誤推送日志。讓維護(hù)程序提交“cd/dvbs2/sdb4/log/fileftp/error/fileftpAnls\n”命令,來(lái)獲取“fileftp”進(jìn)程生成的錯(cuò)誤日志列表。由于系統(tǒng)以“YYYYMMDD.log”的格式來(lái)命名日志文件,所以當(dāng)維護(hù)程序發(fā)現(xiàn)有當(dāng)前日期的日志文件時(shí),則進(jìn)一步分析文件內(nèi)容。

在冗長(zhǎng)的日志文件中,維護(hù)程序主要提取三個(gè)方面的內(nèi)容。首先是統(tǒng)計(jì)FTP推送錯(cuò)誤的文件總數(shù)。由于系統(tǒng)用逐條添加的方式記錄日志,所以讓維護(hù)程序遠(yuǎn)程提交“we-l當(dāng)前日期.log”命令來(lái)獲取當(dāng)前日志文件的總行數(shù),即可得知錯(cuò)誤文件的總數(shù)。第二是分析近期推送錯(cuò)誤出現(xiàn)的頻率。如果維護(hù)程序發(fā)現(xiàn)CMACast服務(wù)器在短時(shí)間內(nèi)出現(xiàn)大量FTP推送錯(cuò)誤時(shí),則用語(yǔ)音或者短信的方式通知管理員及時(shí)維護(hù)。其代碼組織邏輯是讓維護(hù)程序在遠(yuǎn)端執(zhí)行“cd/dvbs2/sdb4/log/fileftp/error/fileftp∧ntail-n 100當(dāng)前日期.log”命令,以便截取當(dāng)前日志的最后100條錯(cuò)誤記錄,格式如圖5所示。在獲取錯(cuò)誤日志后,維護(hù)程序逐行分析錯(cuò)誤推送的發(fā)生時(shí)間,并統(tǒng)計(jì)最近5分鐘內(nèi)所發(fā)生的錯(cuò)誤次數(shù)。當(dāng)統(tǒng)計(jì)值超過(guò)報(bào)警闕值時(shí),維護(hù)程序?qū)㈤_始分析PrP推送出錯(cuò)的主要原因。維護(hù)程序要提取的第三項(xiàng)內(nèi)容是近期出現(xiàn)頻率最高的錯(cuò)誤代碼。不同的錯(cuò)誤代碼意味著不同的推送異常原因,分析并提煉出近期出現(xiàn)次數(shù)頻率最高的故障代碼,將對(duì)系統(tǒng)的維護(hù)工作有著重要的參考價(jià)值。在代碼邏輯方面,利用統(tǒng)計(jì)第二項(xiàng)內(nèi)容時(shí)所截取的部分日志,進(jìn)一步統(tǒng)計(jì)各類錯(cuò)誤代碼出現(xiàn)的次數(shù)。錯(cuò)誤代碼以“Thread.c”為開始標(biāo)識(shí),以之后第一次出現(xiàn)的“1:”符號(hào)為結(jié)束標(biāo)識(shí),截取這兩者間的字符串即可。通過(guò)對(duì)系統(tǒng)日志這三方面內(nèi)容的提取和分析,維護(hù)程序不僅能夠在FTP系統(tǒng)運(yùn)行的過(guò)程中及時(shí)發(fā)現(xiàn)問(wèn)題,還能歸納出錯(cuò)誤原因供管理員參考。其程序邏輯如圖5所示。

5通道文件的統(tǒng)計(jì)與監(jiān)控

通道文件的接收狀態(tài)被設(shè)計(jì)在CMACast監(jiān)控程序的首頁(yè),在界面左側(cè)占據(jù)著較大的版位。界面中時(shí)刻變化的接收文件數(shù)量,猶如心跳包一般,直接示意著當(dāng)前系統(tǒng)的運(yùn)行狀態(tài)。在傳統(tǒng)的維護(hù)工作中,通道組的文件接收狀態(tài)只能通過(guò)電腦顯示器進(jìn)行監(jiān)控,其監(jiān)控方式和維護(hù)效率有很大的局限性。讓維護(hù)程序通過(guò)SSH協(xié)議遠(yuǎn)程登入系統(tǒng)后,可以在無(wú)人值守的狀態(tài)下實(shí)時(shí)查詢各個(gè)通道組的文件接收狀態(tài),并借由WebService平臺(tái)向手機(jī)、網(wǎng)站等多端推送。

在CMACast日志系統(tǒng)的運(yùn)行邏輯方面,當(dāng)相應(yīng)的通道有數(shù)據(jù)文件被接收時(shí),會(huì)在“/dvbs2/sdb4/log/chan/”路徑下實(shí)時(shí)記錄兩類以“chan”字符開頭的日志文件。分別是“l(fā)og”結(jié)尾的完整接收文件日志和“err”結(jié)尾的未完整接收文件日志,其名稱為“chan通道號(hào)YYYYMMDD”。日志記錄仍以向文件尾部逐行添加的方式,記錄每個(gè)文件的完整路徑。

CMACast系統(tǒng)通過(guò)不同的通道組來(lái)分發(fā)各種類型的氣象數(shù)據(jù),不同的通道組由各種通道號(hào)組成,其分類與對(duì)應(yīng)關(guān)系如圖7所示。在設(shè)計(jì)維護(hù)程序的運(yùn)行邏輯時(shí),只需統(tǒng)計(jì)每個(gè)通道號(hào)對(duì)應(yīng)日志文件的行數(shù)后相加匯總,即可完成各個(gè)通道組的文件接收狀態(tài)提取。組織代碼時(shí),只要讓維護(hù)程序向服務(wù)器提交“wc-1日志文件路徑”命令后獲取反饋,最后按照?qǐng)D6的分組方式匯總所有數(shù)據(jù)即可完成信息提取。

6執(zhí)行效率評(píng)估

維護(hù)程序在遠(yuǎn)程登人CMACast服務(wù)器后,需要對(duì)系統(tǒng)進(jìn)程、硬盤狀態(tài)、CMACast運(yùn)行日志進(jìn)行統(tǒng)計(jì)和提取。雖然每次維護(hù)所涉及的資料達(dá)數(shù)百萬(wàn)行,但由于采用了文件行數(shù)統(tǒng)計(jì)和文件尾部資料提取等特殊的優(yōu)化方法,使得程序整體的執(zhí)行速度非??捎^。為驗(yàn)證其執(zhí)行效率,設(shè)定程序檢測(cè)項(xiàng)目如圖7所示,執(zhí)行維護(hù)并作出反應(yīng)的平均耗時(shí)為45秒左右。

7總結(jié)與討論

維護(hù)程序通過(guò)SSH協(xié)議,可以遠(yuǎn)程提取CMACast接收服務(wù)器的各項(xiàng)運(yùn)行狀態(tài)。在程序分析各項(xiàng)運(yùn)行參數(shù)的同時(shí)結(jié)合人工維護(hù)的一些經(jīng)驗(yàn),針對(duì)性得設(shè)計(jì)一系列智能維護(hù)邏輯,可以實(shí)現(xiàn)在無(wú)人值守的狀態(tài)下自動(dòng)處理大部分運(yùn)行故障。維護(hù)程序在提取CMACast系統(tǒng)的各項(xiàng)運(yùn)行狀態(tài)后,通過(guò)數(shù)據(jù)庫(kù)和WebService平臺(tái),可以實(shí)現(xiàn)向網(wǎng)頁(yè)、手機(jī)等多端分發(fā)系統(tǒng)狀態(tài)信息。

基于SSH協(xié)議的CMACast智能維護(hù)系統(tǒng),通過(guò)對(duì)監(jiān)控方式和維護(hù)手段的改進(jìn),打破了傳統(tǒng)維護(hù)工作的各種局限,增加了發(fā)現(xiàn)問(wèn)題的主動(dòng)性,提高了工作效率,使得整個(gè)維護(hù)工作更加智能化。

[通聯(lián)編輯:謝媛媛]

延长县| 砀山县| 邛崃市| 峨眉山市| 修文县| 莱州市| 馆陶县| 渭南市| 胶南市| 丹巴县| 黑河市| 清镇市| 馆陶县| 吉水县| 丘北县| 陈巴尔虎旗| 门头沟区| 衡南县| 韶关市| 三亚市| 深圳市| 浏阳市| 双牌县| 张家界市| 拜泉县| 河曲县| 玉门市| 武穴市| 乐清市| 门源| 桐梓县| 清水河县| 常德市| 布尔津县| 进贤县| 白水县| 淮南市| 尤溪县| 丰镇市| 公主岭市| 赫章县|