黃旭東 張盛男
醫(yī)院發(fā)生了一次殺毒軟件無(wú)法更新病毒庫(kù)的故障,醫(yī)院的運(yùn)維人員和殺毒軟件廠(chǎng)商的技術(shù)人員對(duì)故障原因進(jìn)行排查,原因是控制臺(tái)的數(shù)據(jù)庫(kù)文件寫(xiě)滿(mǎn)所致。針對(duì)這次事件,技術(shù)人員結(jié)合故障現(xiàn)象和控制臺(tái)日志對(duì)故障過(guò)程進(jìn)行了復(fù)盤(pán),并對(duì)故障原因追根溯源,在此基礎(chǔ)上對(duì)運(yùn)維工作提出了改進(jìn)措施。
殺毒軟件環(huán)境簡(jiǎn)介
某醫(yī)院部署了一套殺毒軟件,已使用10年左右。殺毒軟件是C/S結(jié)構(gòu),即一個(gè)服務(wù)端(通常稱(chēng)為殺毒軟件的控制臺(tái),簡(jiǎn)稱(chēng)控制臺(tái))以及安裝在PC機(jī)和服務(wù)器上的殺毒軟件客戶(hù)端(簡(jiǎn)稱(chēng)客戶(hù)端)。
病毒庫(kù)更新的流程,是控制臺(tái)每周一次自動(dòng)從殺毒軟件的官方網(wǎng)站下載病毒庫(kù),客戶(hù)端每天從控制臺(tái)更新病毒庫(kù)。
醫(yī)院的運(yùn)維人員每周做2次巡檢,內(nèi)容包括控制臺(tái)更新病毒庫(kù)是否成功、客戶(hù)端更新病毒庫(kù)成功的比例是否正常等。殺毒軟件廠(chǎng)商的技術(shù)支持人員每季度到醫(yī)院做一次深度巡檢,內(nèi)容包括控制臺(tái)運(yùn)行狀態(tài)是否正常、控制臺(tái)是否有隱患等。
事件經(jīng)過(guò)
1.發(fā)現(xiàn)疑點(diǎn)
201X年9月中旬,醫(yī)院的運(yùn)維人員某甲進(jìn)行例行巡檢,抽檢了50個(gè)服務(wù)器,其中一項(xiàng)巡檢內(nèi)容是殺毒軟件的病毒庫(kù)是否更新到最新。抽檢結(jié)果是7個(gè)客戶(hù)端病毒庫(kù)日期已超過(guò)2周,沒(méi)有更新到本周的日期,即過(guò)期比例是14 %,這個(gè)比例大大超出了經(jīng)驗(yàn)值,服務(wù)器處于7×24 h開(kāi)機(jī)狀態(tài),客戶(hù)端病毒庫(kù)都能及時(shí)更新,偶爾因?yàn)樘厥馇闆r才會(huì)不成功,過(guò)期的比例通常在4 %以?xún)?nèi)。這個(gè)異常的比例引起了某甲的注意,初步判定為殺毒軟件更新病毒庫(kù)異常,立即向領(lǐng)導(dǎo)上報(bào),領(lǐng)導(dǎo)批示繼續(xù)關(guān)注、持續(xù)跟蹤。
2.初步排查
客戶(hù)端更新病毒庫(kù)是自動(dòng)進(jìn)行的,也可以在客戶(hù)端界面上點(diǎn)擊“更新”手動(dòng)進(jìn)行。某甲在上述7個(gè)客戶(hù)端上嘗試手動(dòng)更新病毒庫(kù),反復(fù)點(diǎn)擊“更新”多次后,有2個(gè)客戶(hù)端的病毒庫(kù)更新到本周,另5個(gè)沒(méi)有變化。
2個(gè)客戶(hù)端能更新,表明控制臺(tái)是正常的。某甲查看了5個(gè)客戶(hù)端的磁盤(pán)空間,可用空間很充足,排除了磁盤(pán)空間不足的可能性。某甲在客戶(hù)端電腦上ping和telnet控制臺(tái),ping是通的、telnet也是通的,排除了網(wǎng)絡(luò)不通的可能性。經(jīng)過(guò)一系列檢測(cè)后,某甲排除了其他原因,將范圍縮小到殺毒軟件自身,因缺乏殺毒軟件更新病毒庫(kù)的工作原理資料,無(wú)法進(jìn)一步排除原因。
某甲聯(lián)系殺毒軟件的技術(shù)支持人員某乙,詳細(xì)描述了現(xiàn)象和排查過(guò)程。某乙判斷是客戶(hù)端在長(zhǎng)期運(yùn)行后,部分功能模塊或配置文件損壞,導(dǎo)致更新病毒庫(kù)的模塊無(wú)法正常工作。某乙提供了一些嘗試解決的方法:從更新正常的客戶(hù)端電腦上拷貝通信文件和策略文件,導(dǎo)入更新異常的客戶(hù)端;在電腦的控制面板中找到殺毒軟件,點(diǎn)“修復(fù)”,重啟操作系統(tǒng)。除了重啟系統(tǒng),某甲嘗試了某乙提供的其他方法,5個(gè)客戶(hù)端的病毒庫(kù)仍然沒(méi)有變化。生產(chǎn)服務(wù)器不能隨時(shí)重啟,需要與業(yè)務(wù)的使用方協(xié)商日期和時(shí)間才能重啟。某甲聯(lián)系業(yè)務(wù)使用方給出的重啟時(shí)間,最早是在10月底,在重啟操作系統(tǒng)之前,無(wú)法進(jìn)一步排查,只能等待、繼續(xù)觀(guān)察。
3.陷入僵局
9月最后一周,某甲例行巡檢時(shí),重點(diǎn)關(guān)注了上述5個(gè)服務(wù)器,有2個(gè)客戶(hù)端病毒庫(kù)更新到最新;同時(shí),在本周抽檢的50個(gè)服務(wù)器(與上周沒(méi)有重合)中,有3個(gè)客戶(hù)端病毒庫(kù)日期是上周的、沒(méi)有更新到最新。
控制臺(tái)統(tǒng)計(jì)數(shù)據(jù)時(shí),判斷客戶(hù)端病毒庫(kù)是否過(guò)期的標(biāo)準(zhǔn)是超過(guò)10天沒(méi)有更新的都算做“已過(guò)期”。某甲巡檢看到控制臺(tái)顯示病毒庫(kù)已過(guò)期的比例是27 %,超過(guò)了20 %的歷史經(jīng)驗(yàn)值,但臨近國(guó)慶節(jié)長(zhǎng)假,實(shí)習(xí)生等已提前休假,此時(shí)無(wú)法確定是殺毒軟件沒(méi)有更新病毒庫(kù),還是一些PC機(jī)沒(méi)有開(kāi)機(jī)。
連續(xù)幾周,某甲觀(guān)察到的現(xiàn)象總結(jié)起來(lái),是個(gè)別客戶(hù)端病毒庫(kù)未能更新,手動(dòng)更新有可能成功,也可能不成功,完全是隨機(jī)事件,沒(méi)有任何規(guī)律可循,排查原因一時(shí)陷入了困境。
10月第一周,情況和上周相似,病毒庫(kù)過(guò)期比例36 %,適逢國(guó)慶節(jié)放假期間,這個(gè)比例屬于正常情況。
10月第二周,情況和上周相同,病毒庫(kù)過(guò)期比例43 %,國(guó)慶節(jié)后第一周,這個(gè)比例稍微有點(diǎn)偏高,但是也可以算做正常情況。
4.真相浮現(xiàn)
10月第三周,某甲通過(guò)控制臺(tái)發(fā)現(xiàn)2個(gè)測(cè)試服務(wù)器的殺毒軟件病毒庫(kù)是上周的,經(jīng)聯(lián)系使用方確認(rèn)這2個(gè)測(cè)試服務(wù)器當(dāng)天中午可以重啟,此前發(fā)現(xiàn)病毒庫(kù)過(guò)期的客戶(hù)端都是生產(chǎn)服務(wù)器,這是首次出現(xiàn)在測(cè)試服務(wù)器上,于是轉(zhuǎn)機(jī)從此開(kāi)始。中午,某甲在2個(gè)測(cè)試服務(wù)器上進(jìn)行了完整的測(cè)試操作:卸載客戶(hù)端- >重啟操作系統(tǒng)- >安裝客戶(hù)端- >重啟操作系統(tǒng)- >手工多次更新病毒庫(kù),在這些試驗(yàn)后,病毒庫(kù)仍然沒(méi)有更新。
同時(shí),控制臺(tái)顯示的病毒庫(kù)過(guò)期比例是61 %。10月第三周,醫(yī)院各科室已恢復(fù)正常的工作秩序,過(guò)期比例這么高,明顯不正常,某甲判斷問(wèn)題出在控制臺(tái)的可能性非常大,但是沒(méi)有技術(shù)資料,無(wú)法進(jìn)一步分析是哪里出了問(wèn)題。
某甲電話(huà)聯(lián)系殺毒軟件的技術(shù)支持人員,講述了本周觀(guān)察到的現(xiàn)象,技術(shù)人員判斷客戶(hù)端病毒庫(kù)過(guò)期不是個(gè)例,是普遍現(xiàn)象,需要到現(xiàn)場(chǎng)進(jìn)行排查。
次日早上,殺毒軟件的技術(shù)支持人員某丁到某醫(yī)院現(xiàn)場(chǎng)。經(jīng)過(guò)一上午的排查,從控制臺(tái)的日志文件里找到一些報(bào)錯(cuò)信息,與數(shù)據(jù)庫(kù)空間已滿(mǎn)有關(guān)。打開(kāi)數(shù)據(jù)庫(kù)的設(shè)置界面,看到控制臺(tái)使用的數(shù)據(jù)庫(kù)文件AntiVirus.mdf的大小限制為20 000M(20 G),如下圖所示,而這個(gè)文件此時(shí)的大小是20 00M。
某丁與更資深的同事確認(rèn)之后,確定是數(shù)據(jù)庫(kù)文件寫(xiě)滿(mǎn)導(dǎo)致客戶(hù)端更新病毒庫(kù)失敗的概率很大。解決方法是把“最大文件大小”修改為“無(wú)限制”。修改設(shè)置之后,當(dāng)天16點(diǎn)查看控制臺(tái)數(shù)據(jù)時(shí),病毒庫(kù)過(guò)期比例降低到45 %。
10月最后一周,病毒庫(kù)過(guò)期比例降低到17 %,回落到歷史經(jīng)驗(yàn)數(shù)據(jù)20 %以?xún)?nèi),這個(gè)數(shù)據(jù)表明問(wèn)題已徹底解決、客戶(hù)端更新病毒庫(kù)的功能已恢復(fù)正常。
事件分析
1.事件復(fù)盤(pán)
結(jié)合巡檢觀(guān)察到的現(xiàn)象和控制臺(tái)的日志,技術(shù)人員對(duì)此次故障的全過(guò)程進(jìn)行了復(fù)盤(pán),內(nèi)容如下。
9月初到9月中,控制臺(tái)的數(shù)據(jù)庫(kù)文件大小接近20 G上限,個(gè)別客戶(hù)端更新病毒庫(kù)時(shí)需要寫(xiě)入數(shù)據(jù)庫(kù)的內(nèi)容較多,超出了可用空間,更新失敗。
9月中旬,更新病毒庫(kù)失敗的客戶(hù)端數(shù)量持續(xù)增多,巡檢時(shí)抽測(cè)的過(guò)期比例是14 %。
9月最后一周,控制臺(tái)釋放了一些數(shù)據(jù)庫(kù)文件的空間,所以有些上周不成功的客戶(hù)端本周更新病毒庫(kù)成功了;同時(shí),不斷有客戶(hù)端嘗試更新病毒庫(kù),向數(shù)據(jù)庫(kù)中寫(xiě)入數(shù)據(jù),使數(shù)據(jù)庫(kù)文件大小一直保持在很接近20 G的位置??蛻?hù)端的現(xiàn)象是哪個(gè)客戶(hù)端能更新成功,完全是隨機(jī)的、沒(méi)有規(guī)律。
10月第一周,國(guó)慶長(zhǎng)假,很多電腦沒(méi)開(kāi)機(jī),大量客戶(hù)端病毒庫(kù)過(guò)期,在統(tǒng)計(jì)數(shù)據(jù)中湮沒(méi)了有異常的客戶(hù)端。
10月第二周,信息中心沒(méi)有各科室回歸工作的統(tǒng)計(jì)表,也就沒(méi)有電腦開(kāi)機(jī)的數(shù)據(jù)。雖然控制臺(tái)顯示的過(guò)期比例是43 %,但是無(wú)法判斷客戶(hù)端病毒庫(kù)過(guò)期是電腦沒(méi)開(kāi)機(jī),還是更新病毒庫(kù)失敗。
10月第三周,數(shù)據(jù)庫(kù)文件在本周或之前已經(jīng)寫(xiě)滿(mǎn)20 G,控制臺(tái)能釋放非常有限的數(shù)據(jù)庫(kù)空間,只有少量幸運(yùn)的客戶(hù)端能成功更新病毒庫(kù)。巡檢看到的現(xiàn)象是過(guò)期比例已經(jīng)達(dá)到61 %。
11月第一周,修改數(shù)據(jù)庫(kù)設(shè)置之后,有了充足的數(shù)據(jù)庫(kù)文件空間,客戶(hù)端都能成功更新病毒庫(kù)。于是過(guò)期比例下降到17 %。
2.故障探源
故障原因找到了,處理起來(lái)也很快,但是這個(gè)風(fēng)險(xiǎn)點(diǎn)為什么一直沒(méi)有被發(fā)現(xiàn)呢?還要溯源查清楚,因此技術(shù)人員進(jìn)行深入分析。
某醫(yī)院安裝部署這個(gè)控制臺(tái)是在10年前,是殺毒軟件廠(chǎng)商的技術(shù)人員實(shí)施的??刂婆_(tái)是傻瓜化的安裝程序,雙擊運(yùn)行之后填寫(xiě)數(shù)據(jù)庫(kù)用戶(hù)名、密碼等參數(shù)后,安裝過(guò)程自動(dòng)進(jìn)行。安裝程序自動(dòng)創(chuàng)建了控制臺(tái)使用的數(shù)據(jù)庫(kù)實(shí)例、設(shè)置實(shí)例的參數(shù)如文件大小限制等,同時(shí)創(chuàng)建表機(jī)構(gòu)、創(chuàng)建控制臺(tái)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的用戶(hù)等。技術(shù)人員按照操作手冊(cè)進(jìn)行操作,操作手冊(cè)里面沒(méi)有更改數(shù)據(jù)庫(kù)設(shè)置的內(nèi)容,即使是最新版的手冊(cè)里也沒(méi)有。
控制臺(tái)的功能,設(shè)計(jì)了一些機(jī)制來(lái)刪除數(shù)據(jù)庫(kù)記錄,確保數(shù)據(jù)庫(kù)文件有充足的空間可以使用。所以按照廠(chǎng)商的設(shè)計(jì),20 G的大小是足夠的,廠(chǎng)商的巡檢列表檢查項(xiàng)里沒(méi)有設(shè)計(jì)相應(yīng)的檢查項(xiàng)。
某醫(yī)院的情況是在非常偶然的情況下出現(xiàn)的,在國(guó)內(nèi)的用戶(hù)中很罕見(jiàn)。
控制臺(tái)從官網(wǎng)更新病毒庫(kù)時(shí),寫(xiě)入數(shù)據(jù)庫(kù)的內(nèi)容很小,優(yōu)先級(jí)很高,在數(shù)據(jù)庫(kù)文件幾乎寫(xiě)滿(mǎn)的情況下,控制臺(tái)仍然能成功更新病毒庫(kù)。
工作建議
從故障出現(xiàn)苗頭,到最終解決,經(jīng)歷了近2個(gè)月的時(shí)間,我們總結(jié)出一些建議,可以更好地指導(dǎo)未來(lái)的工作。
1.建議殺毒軟件廠(chǎng)商完善巡檢細(xì)則
該殺毒軟件的技術(shù)支持人員每季度會(huì)給某醫(yī)院的控制臺(tái)做巡檢,但是多年來(lái)一直沒(méi)有發(fā)現(xiàn)這個(gè)隱患,原因是巡檢列表中沒(méi)有數(shù)據(jù)庫(kù)設(shè)置這個(gè)檢查項(xiàng)。此次事件后,某醫(yī)院已建議該廠(chǎng)商增加數(shù)據(jù)庫(kù)文件使用率等檢查項(xiàng)。
2.建議其他廠(chǎng)商完善巡檢項(xiàng)
除了殺毒軟件,某醫(yī)院還部署其他公司的軟件系統(tǒng),有一些軟件系統(tǒng)和殺毒軟件類(lèi)似,是成品軟件,因各種原因提供給醫(yī)院的技術(shù)資料非常少,醫(yī)院的運(yùn)維人員能做的巡檢和運(yùn)維工作非常有限,深度巡檢非常依賴(lài)廠(chǎng)商。醫(yī)院不清楚廠(chǎng)商的巡檢列表中是否有數(shù)據(jù)庫(kù)文件使用率、表空間使用率等檢查項(xiàng),因此建議廠(chǎng)商在巡檢列表中增加相應(yīng)的內(nèi)容,保障系統(tǒng)的穩(wěn)定性和可用性。
3.不放過(guò)工作中的任何疑點(diǎn)
很多故障,一開(kāi)始都是苗頭或征兆的,因?yàn)楹雎曰驔](méi)有及時(shí)排查,隨著時(shí)間的積累發(fā)展成了故障,進(jìn)而引起業(yè)務(wù)中斷等,因此碰到疑點(diǎn)要徹查。此次故障,某甲在巡檢中發(fā)現(xiàn)情況異于經(jīng)驗(yàn)值,每周和殺軟廠(chǎng)商的技術(shù)支持人員溝通,從疑似有問(wèn)題到一步一步確認(rèn)問(wèn)題,并且通過(guò)一系列測(cè)試把故障點(diǎn)縮小到控制臺(tái),為技術(shù)支持人員排查故障和解決問(wèn)題創(chuàng)造了有利條件。
4.及時(shí)獲取領(lǐng)導(dǎo)的支持
這次事件中,某甲上報(bào)領(lǐng)導(dǎo)后,領(lǐng)導(dǎo)給予某甲充分的時(shí)間跟進(jìn)此事,某甲得以連續(xù)數(shù)周投入大量時(shí)間跟蹤現(xiàn)象、進(jìn)行各種測(cè)試。這個(gè)故障,能及時(shí)發(fā)現(xiàn)且比較順利地解決,離不開(kāi)領(lǐng)導(dǎo)的大力支持。
5.相信專(zhuān)家,但不迷信專(zhuān)家
專(zhuān)家在大多數(shù)時(shí)候都是對(duì)的,所以要相信專(zhuān)家。但是智者千慮偶有一失,也不能完全迷信專(zhuān)家,不能認(rèn)為專(zhuān)家每次都是對(duì)的。較好的做法是收集更多的信息,給專(zhuān)家提供豐富的資料,協(xié)助專(zhuān)家做出正確判斷。
6.及時(shí)尋求技術(shù)支持
在國(guó)慶、春節(jié)等節(jié)假日之前發(fā)現(xiàn)的疑點(diǎn),要本著寧可虛驚一場(chǎng)也不放過(guò)一個(gè)的精神,及時(shí)進(jìn)行排查,需要廠(chǎng)商協(xié)助的,不能怕麻煩別人,也不能擔(dān)心占用廠(chǎng)商服務(wù)時(shí)長(zhǎng),一定要請(qǐng)廠(chǎng)商的技術(shù)人員來(lái)現(xiàn)場(chǎng)排查,避免因節(jié)假日而讓軟件系統(tǒng)長(zhǎng)期帶病運(yùn)行,從一個(gè)小隱患發(fā)展成大問(wèn)題。