朱夏迪 馬江華
摘要:本文通過(guò)介紹我院已上線的《內(nèi)網(wǎng)遠(yuǎn)程管理系統(tǒng)》的系統(tǒng)業(yè)務(wù)流程、以及主要模塊,來(lái)闡釋一種實(shí)現(xiàn)適合于規(guī)模中等的綜合性醫(yī)院的IT遠(yuǎn)程管理系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)思路。
關(guān)鍵詞:醫(yī)院 IT運(yùn)維? 遠(yuǎn)程管理? Python? wxPython? SQL Alchemy? TightVNC
引言:
信息中心作為負(fù)責(zé)全院IT運(yùn)維的部門(mén),需要處理各式各樣的院內(nèi)電腦主機(jī)問(wèn)題,但當(dāng)院區(qū)達(dá)到一定的規(guī)模時(shí),就很難及時(shí)地到現(xiàn)場(chǎng)處理每一個(gè)問(wèn)題。目前我院有1000多臺(tái)各種型號(hào)的主機(jī),而且數(shù)量還在不斷增長(zhǎng),信息中心人員有限,每天都需要處理各種軟硬件問(wèn)題,因此對(duì)于如何設(shè)計(jì)一套適合院內(nèi)IT運(yùn)維人員使用的遠(yuǎn)程管理系統(tǒng)成為我們迫切需要解決的問(wèn)題,以下通過(guò)對(duì)我院已上線的院內(nèi)遠(yuǎn)程管理系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)做簡(jiǎn)要介紹:
一、系統(tǒng)需求:
1.1 ???? 安全穩(wěn)定性:
為了符合安全規(guī)范,每臺(tái)主機(jī)均使用不同的遠(yuǎn)程密碼。IT管理端UI界面程序需要密碼登錄,IT管理員用戶(hù)名密碼在數(shù)據(jù)庫(kù)中加密存放,同時(shí)密碼復(fù)雜度需要符合安全等保規(guī)范,并且需要定期修改密碼。
1.2 ???? 操作便捷性:
IT管理人員只需通過(guò)簡(jiǎn)單的標(biāo)簽定位就可以找到需要遠(yuǎn)程的主機(jī),通過(guò)點(diǎn)擊主機(jī)色塊圖標(biāo)即可遠(yuǎn)程控制該主機(jī)。
1.3 跨平臺(tái)特性:
輔助服務(wù)以及IT管理界面程序均使用跨平臺(tái)編程語(yǔ)言開(kāi)發(fā),通過(guò)簡(jiǎn)單的編譯即可支持Windows、Linux、MaxOS等系統(tǒng)。
二、系統(tǒng)流程:
IT管理人員通過(guò)遠(yuǎn)程管理系統(tǒng)的IP地址維護(hù)界面手工維護(hù)或從Excel導(dǎo)入IP數(shù)據(jù),遠(yuǎn)程管理系統(tǒng)將IP地址通過(guò)標(biāo)簽歸類(lèi)然后將主機(jī)信息保存至數(shù)據(jù)庫(kù)。遠(yuǎn)程管理系統(tǒng)輔助服務(wù)通過(guò)腳本自動(dòng)抓取目標(biāo)主機(jī)的截屏及目標(biāo)主機(jī)VNC端口狀態(tài),并將截圖及主機(jī)狀態(tài)記錄到數(shù)據(jù)庫(kù)。遠(yuǎn)程管理系統(tǒng)定時(shí)從數(shù)據(jù)庫(kù)中讀取最新的數(shù)據(jù),并更新主界面顯示信息。IT管理人員可以通過(guò)左側(cè)、頂部、右側(cè)標(biāo)簽方便地定位到需要遠(yuǎn)程的主機(jī),點(diǎn)擊主機(jī)色塊后即可遠(yuǎn)程控制主機(jī)。
三、系統(tǒng)主要功能模塊:
3.1 受控端遠(yuǎn)程服務(wù)模塊:
在用戶(hù)主機(jī)上安裝并運(yùn)行遠(yuǎn)程服務(wù)Server端,IT管理員可以通過(guò)遠(yuǎn)程管理工具連接受控主機(jī)Server端,遠(yuǎn)程管理密碼以加密方式存儲(chǔ)在數(shù)據(jù)庫(kù)中。
3.2 主機(jī)輔助服務(wù)模塊:
3.2.1 通過(guò)定時(shí)腳本抓取目標(biāo)主機(jī)的截圖,并存儲(chǔ)到數(shù)據(jù)庫(kù)中。
3.2.2 通過(guò)Ping及主機(jī)端口探測(cè)方式獲取主機(jī)信息并存儲(chǔ)到數(shù)據(jù)庫(kù)中。
3.3遠(yuǎn)程工具模塊:
IT管理人員通過(guò)用戶(hù)名密碼驗(yàn)證后,從數(shù)據(jù)庫(kù)讀取主機(jī)信息、標(biāo)簽以及主機(jī)圖像信息,每臺(tái)主機(jī)在遠(yuǎn)程管理系統(tǒng)UI主界面通過(guò)不同顏色的色塊來(lái)表示,以便區(qū)分不同類(lèi)型的主機(jī),用戶(hù)通過(guò)直接點(diǎn)擊色塊即可調(diào)用遠(yuǎn)程控制界面。
四、系統(tǒng)主要采用技術(shù)及實(shí)現(xiàn):
4.1軟件部分:
4.1.1IT管理界面程序:
主界面程序采用了wxPython編寫(xiě),wxPython是wxWidgets的Python實(shí)現(xiàn)版本,其兼顧了Python的簡(jiǎn)單易用,以及wxWidgets的跨平臺(tái)特性,同時(shí)也開(kāi)源免費(fèi),比較適合規(guī)模較小的項(xiàng)目,后期代碼維護(hù)也比較容易。
4.1.2用戶(hù)數(shù)據(jù)庫(kù)對(duì)象模型:
使用SQLAlchemy,通過(guò)將數(shù)據(jù)庫(kù)對(duì)象類(lèi)化,來(lái)提供程序的可讀性、可移植性、穩(wěn)定性。
4.1.3程序自動(dòng)更新:
采用Python的AutoUpdater插件進(jìn)行版本控制以及服務(wù)的自動(dòng)更新。
4.2服務(wù)部署:
4.2.1 用戶(hù)主機(jī)截圖抓取服務(wù)以及用戶(hù)主機(jī)狀態(tài)抓取服務(wù)均部署在Linux環(huán)境XUbuntu上,為了保證以上兩個(gè)服務(wù)的穩(wěn)定運(yùn)行,在XUbuntu服務(wù)器上部署了supervisord用戶(hù)服務(wù)監(jiān)控服務(wù),supervisord能夠在服務(wù)器啟動(dòng)時(shí)自動(dòng)將被監(jiān)控的服務(wù)調(diào)起,同時(shí)如果被監(jiān)控的服務(wù)有意外退出等情況也能夠自動(dòng)化的嘗試重新啟動(dòng),并提供有詳細(xì)的日志記錄服務(wù)運(yùn)行情況。
4.3第三方接口:
受控主機(jī)服務(wù):
使用開(kāi)源軟件TightVNC Server作為受控主機(jī)的Server端,同時(shí)設(shè)定不同的主機(jī)遠(yuǎn)程訪問(wèn)密碼。
4.3.1IT管理人員遠(yuǎn)程服務(wù):
使用開(kāi)源軟件TightVNC Client,封裝采用Python編寫(xiě),同時(shí)具有跨平臺(tái)性,通過(guò)簡(jiǎn)單的重新編譯即可支持多種平臺(tái)。
4.3.2主機(jī)輔助服務(wù):
使用VNCDoTools作為基礎(chǔ),通過(guò)編寫(xiě)Python腳本來(lái)實(shí)現(xiàn)主機(jī)自動(dòng)截屏并存儲(chǔ)在數(shù)據(jù)庫(kù)中。
五、實(shí)施效果:
5.1 遠(yuǎn)程管理系統(tǒng)上線前:
報(bào)修人員打電話有問(wèn)題需要處理,我科室人員通過(guò)指導(dǎo)報(bào)修人員怎樣查看本機(jī)的IP地址(通常需要2分鐘左右,遇到不同類(lèi)型的操作系統(tǒng)需要不同的查看方式),容易造成矛盾,同時(shí)也影響臨床的就診,間接影響了患者的就醫(yī)體驗(yàn)。
5.2 遠(yuǎn)程管理系統(tǒng)上線后:
報(bào)修人員打電話有問(wèn)題需要處理,我科室人員通過(guò)報(bào)修人員反饋的地址,即可直接在遠(yuǎn)程管理系統(tǒng)中通過(guò)幾個(gè)標(biāo)簽的定位,直接定位到報(bào)修的主機(jī)。同時(shí)對(duì)于自助掛號(hào)機(jī)、醫(yī)生診間小屏、護(hù)士叫號(hào)大屏等,可直接通過(guò)查看主機(jī)截圖,主機(jī)狀態(tài)指示燈,即可完成對(duì)這些設(shè)備的巡檢工作,通過(guò)日常遠(yuǎn)程巡檢,主動(dòng)發(fā)現(xiàn)問(wèn)題,處理問(wèn)題。
六、后期改進(jìn):
對(duì)于該遠(yuǎn)程管理系統(tǒng)的使用情況,基本達(dá)到了預(yù)期的效果,但仍然有諸多需要改進(jìn)的地方:例如目前很多醫(yī)院都上線網(wǎng)絡(luò)準(zhǔn)入功能,網(wǎng)絡(luò)準(zhǔn)入軟件一般都帶有IP管理功能,有部分也帶有主機(jī)遠(yuǎn)程維護(hù)功能,但通常使用起來(lái)相對(duì)復(fù)雜不方便,因此可以通過(guò)與準(zhǔn)入軟件做接口的方式進(jìn)行對(duì)接,定時(shí)同步準(zhǔn)入的IP信息,同時(shí)也可以通過(guò)接口獲取主機(jī)、交換機(jī)情況及端口使用情況,這樣既方便了主機(jī)IP維護(hù),又豐富了遠(yuǎn)程管理工具的功能。