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