馬延立
(許昌職業技術學院信息中心 河南 許昌 461000)
計算機機房終端管理主要包括終端設備硬件的日常維護、系統軟件優化、網絡信息配置與管理、故障終端的維修等。傳統機房終端管理軟件往往以客戶端的形式安裝在每個機房管理機,不能做到集中管理,且功能較為簡單,智能化水平不高[1-3]。針對傳統系統設計模式和功能存在的問題,本文設計實現了一套機房終端在線監測與遠程管理系統,該系統可實現機房管理員遠程監測所有終端運行情況,實現終端故障及配件變更自動告警、遠程進行網絡設置維護等功能。
機房終端在線監測與遠程管理系統的主要需求分析如下:
(1)資源可查可控
監測機房終端設備的CPU、內存、顯卡、硬盤、MAC地址、網絡資源等使用情況,實現對這些資源查看、管理的目的[4]。
(2)終端遠程運維
遠程對終端進行基礎的開關機及重啟操作,實現遠程設置終端網絡信息,通過Shell命令實現遠程運維Linux服務器,減輕管理人員工作量。
(3)易于教學管理
便于對機房課表的管理,結合課表可設置終端自動啟停。可對機房利用率、終端維修率、終端使用率進行統計,以此為管理人員提供決策依據。
(4)客戶端易于部署
機房終端設備上安裝的客戶端軟件易于部署安裝,開機自啟,且支持多平臺操作系統。
機房終端在線監測與遠程管理系統的總體目標為實現對機房終端的實時監測,通過遠程管理終端、規范終端維修流程達到提高機房的管理水平和效率。系統整體功能可歸納為終端監測、遠程管理、終端報修、系統管理4部分。機房終端監測與遠程管理系統總體功能架構見圖1。

圖1 機房終端監測與遠程管理系統總體功能架構
(1)終端監測:終端開機后通過客戶端agent軟件自動上報終端相關信息,系統根據每個機房IP段信息自動把終端歸類到相應機房。同時對在線終端的CPU、內存、硬盤、網絡信息等進行監測,當監測到最近兩次終端硬件發生變化時會自動告警,向管理員發送通知,以便管理員可以及時處理。
(2)遠程管理:機房管理人員可通過系統遠程對終端進行開機、關機、重啟等操作,可遠程單個或批量修改機房的網絡信息,如IP地址、DNS、網關等。同時可通過發送命令的方式遠程啟動終端上安裝的軟件。
(3)終端維護:系統管理員可對配件進行新增、修改、刪除等操作,終端故障自動上報后,管理員實際查看故障原因后可上報申請配件進行維修,經審核后可從配件中自動調配相應配件,同時生成配件及維修記錄[5]。
(4)系統管理:系統角色分為系統管理員、審核員、機房管理員,每個角色可靈活配置相應權限。系統管理員有最高權限,審核員主要是對故障報修及配件進行審核,機房管理員為該系統主要使用人員。系統管理還包括日志、報表的管理功能。
機房終端在線監測與遠程管理系統架構見圖2。前端Web界面通過WebSocket向服務器端發送指令,服務器端收到相應指令后轉發至相應終端,終端執行命令后返回數據至服務器,并保存相應數據至數據庫,Web端調用相應API獲取相應數據。

圖2 系統架構
(1)Web端:系統采用B/S系統架構,使用目前比較流行的前后端分離的MVVM架構設計模式。前端采用Vue.js進行開發,Vue是一個輕量級前端框架,具有雙向數據綁定、組件化、數據和結構的分離、虛擬DOM等特點,且運行速度快。Web端與服務器端的指令通過WebSocket進行雙向通信,WebSocket可以在前端Web瀏覽器和服務器之間進行任意的雙向數據傳輸。WebSocket協議基于TCP協議實現,包含初始的握手過程以及后續的多次數據幀雙向傳輸過程,這樣做是為了在WebSocket應用和WebSocket服務器進行多次雙向通信時,避免服務器打開多個HTTP連接,以此節約服務器資源,提高了資源利用率和工作效率。
(2)服務器端:服務器端主要提供系統API接口及Socket通信,其中API使用ThinkPHP5進行開發。ThinkPHP是一個免費開源的輕量級PHP開發框架,具有快速、簡單的面向對象等特點,而ThinkPHP5專門為API開發進行了性能優化,很適合快速搭建API接口。Socket通信采用Workerman框架,Workerman是一款基于PHP的開源高性能異步socket框架,支持高并發,支持TCP長連接,支持WebSocket、HTTP等協議,支持自定義協議,穩定性較高,應用領域十分廣泛。
由于Web端的WebSocket服務無法與終端基于TCP的客戶端服務直接進行通信,因此在服務器端開啟一個WebSocket服務與Web前端進行通信,同時開啟一個TCP服務轉發前端命令與機房客戶端進行通信。
(3)客戶端:系統通過在機房終端安裝agent客戶端軟件獲取終端資源信息,客戶端軟件基于Python開發。Python的基礎代碼庫和第三方庫非常完善,覆蓋了網絡、文件、GUI、數據庫、文本等多方面內容,使用Python當中的wmi、os、socket等模塊,可以很方便快捷地開發滿足本系統需求的客戶端軟件,且開發的客戶端軟件體積非常小,本系統終端運行的客戶端軟件大小不到2 M。
由于Python語言是跨平臺的,所以客戶端支持Windows和Linux操作系統,但是因為Windows操作系統存在的版本較多且不同版本之間差異性較大,目前客戶端暫時只支持Linux、Windows server 2008以上及Windows 7以上操作系統。
為了使系統能夠更加靈活、快速地部署在不同操作系統的服務器上,本系統選擇使用的數據庫為MySQL,MySQL是一個具有體積小、命令執行速度快、總體擁有成本低、跨平臺等優點的開源數據庫。
(1)終端基本信息表(BaseInfo):該表主要存放終端的基本信息,包括IP地址、MAC地址、硬件信息等,表內數據的獲取由終端開機后自動向服務器發送保存。由于不同終端基本信息有差異,比如內存條的個數不確定,就不便使用某個固定字段去存放內存信息,因此本系統將終端發送的基本信息數據以JSON格式存放在單個字段bi_info內,讀取數據時后臺接口通過算法解析數據后發送前端顯示。
(2)終端使用情況表(UsedInfo):該表主要存放終端內存、CPU、硬盤使用情況及網卡流量等需要監測的數據,由于系統要不斷監測終端的實時使用情況及歷史記錄,因此該表也是數據量最大、交互最為頻繁的表。對于硬件使用情況的歷史記錄存放范圍,在系統中可以自由設置,默認普通PC終端保存最近一周使用情況,服務器終端則保存最近3天的記錄。
(3)終端在線情況表(OnlineInfo):該表設計存放在線終端的MAC、最近一次終端在線時間、終端離線時間。當終端首次上線后,該表保存終端MAC地址及上線時間,當后臺服務在約定時間內監測不到終端發送的心跳包后認為終端離線,此時向表中插入終端離線時間。當同一終端再次上線、離線后更新表中數據,每個終端最多在表中生成兩條記錄。
(1)資源監測:機房管理員設置每個機房的IP地址范圍,終端開機后客戶端軟件首先自動上報資源信息,系統根據終端IP自動把終端歸類到相應機房,可監測終端CUP、內存、操作系統等資源信息。資源監測使機房管理員可整體掌握每個機房終端狀況,發現異?;蚬收辖K端可及時處理,提高了處理效率。系統監測到終端硬件參數發生變化時,系統會自動發出告警提示,在硬件變更監測中可以查看具體發生變化的硬件參數。系統監測終端上報的資源信息如下:


(2)遠程操作:機房管理員可單個或者批量修改終端的網絡設置信息,當選擇批量修改時,只需填入首個終端IP地址、掩碼、網關等信息,系統根據所選終端數量IP地址自動進行增加,實現了對機房網絡資源的統一管理。當需要進行遠程關機或者重啟終端時,客戶端收到前端發送的指令后,在預設的時間內進行相應操作,其中關機、重啟操作調用Python中的os模塊來實現,關機代碼為os.system('shutdown /s /t 0'),重啟代碼為os.system('shutdown /r /t 0')。遠程開機指令則需要終端開啟“允許魔法包喚醒”,通過網卡接收指定的喚醒數據進行開機。同時結合機房的課表,系統可設置每個機房的終端自動開關機時間,這極大地減輕了管理人員的工作量。遠程網絡設置主要實現的Python代碼如下:

(3)Linux服務器運維:選擇要運維的Linux服務器之后,通過選擇系統中設定的常用Shell命令模板或者輸入命令進行執行,可以得到命令執行的結果。同時通過“任務計劃”菜單新建任務,設置任務執行頻率,可以進行Shell命令自動按計劃執行,達到對Linux服務器的自動運維。任務執行失敗時,可通過“任務告警”菜單進行查看。
(4)故障上報:機房終端開機后在約定的時間內不在線的終端會被認定為存在故障,系統會自動向管理員發出告警,管理員需要實地查看確認終端是否存在故障,若確實終端存在異常,機房管理員查明故障原因后可以通過故障維修申請配件進行維修,提交申請后,按照維修流程,審核員需進行審核,同意維修后發放配件維修。這種方式能夠讓管理員主動去發現解決問題,規范維修配件使用流程,保證機房可用終端數量,為計算機教學提供有力保障。
(5)權限管理:系統對不同角色分配不同菜單顯示權限、按鈕操作權限。用戶登錄后,根據數據庫保存的用戶角色權限列表,前端通過動態路由加載顯示菜單信息。通過配置按鈕操作權限實現前端頁面增加、刪除、修改按鈕的顯示或者可用狀態。
(6)客戶端軟件:客戶端軟件安裝后自動設置為開機自啟??蛻舳藛雍笞詣由蠄蟊緳C資源信息及網絡狀態,若由于網絡故障等原因發生連接服務器超時,客戶端則會一直保持重連狀態,直到連接成功,之后客戶端按照設定的心跳間隔發送指定數據并等待響應前端指令。客戶端軟件默認后臺運行,終端使用者無感知??蛻舳俗詥㈥P鍵代碼如下:

本文設計實現的機房終端在線監測與遠程管理系統為計算機機房管理提供了一套切實可行的方案,是對機房管理工作的創新和升級。后期可把機房空調、門禁、監控等物理設備的管理加入系統之中,實現更為綜合、完整的機房管理系統。