陳澤生,黃建波,艾 飛
(1.廣州美術學院 信息技術中心,廣東廣州 510006;2.華南理工大學信息網絡工程研究中心,廣東廣州 510640)
一卡通系統是高校信息化建設的基礎工程之一[1-2]。高校一卡通以面向師生服務為根本目的,通過融合云計算、物聯網、移動計算等技術,提供身份驗證、消費服務、考勤簽到、生活服務等功能[3-4]。目前,高校一卡通的終端機覆蓋了大部分智慧校園場景,為全校師生提供校園服務[5-6]。因此,高效、高質量的終端機運維是智慧校園服務的保障。
一卡通系統運維團隊通常由用戶服務和運維技術組組成。用戶服務負責接收師生的一卡通報障,并將故障信息反饋給運維技術組處理。為了及時解決一卡通故障,運維團隊協同工作的主要工具是QQ群組[11-12],故障處理流程如圖1 所示。

圖1 一卡通故障處理流程
隨著一卡通運維工作的持續進行,QQ 群組累積大量的運維數據,為故障分析奠定了數據基礎。
QQ 消息的導出格式是文本格式,并且導出的文本包括本地QQ 所有的通信信息,需要從文本數據內采集一卡通系統的運維數據。
QQ 導出的文本數據按照消息對象進行聚合,其中,消息對象對應QQ 的聯系人。消息對象的聚合數據以串行“=”字符為開始和結束標識。比如,“一卡通技術運維”群組的消息聚合模式如圖2 所示。

圖2 QQ消息聚合模式
運維數據是以“消息對象:一卡通技術運維”+串行“=”字符為開始,以串行“=”字符為結束,數據采集接口逐行讀取文本數據,截取開始和結束標識符之間的所有數據。
每一條完備的QQ 消息包含消息發送時間、消息發送者、消息內容三要素,并在文本內分成獨立的兩部分。其中,第一部分是“消息發送時間+消息發送者”,第二部分是消息的具體內容。消息內容包括自然語言、表情包、圖片,其中表情包和圖片以“[表情]”“[圖片]”字符表達。因此,需要將采集后的數據進行去噪處理,去除消息發送者、“[表情] ”、“[圖片]”、空格符、空行等數據。
數據分為結構化數據、半結構化數據、非結構化數據[13]。運維的原始數據是非結構化的文本數據,需要轉換成結構化數據為數據分析提供特征數據檢索。
據第六次全國人口普查數據顯示,我國鄉村人口占中國總人口的50.32%,耕地面積僅次于美國和印度,居世界第三位,因此鄉村發展不容忽視。近年來由于城鎮化水平提升、城鄉貧富差距加大、鄉村經濟發展落后,我國出臺了一系列政策振興鄉村發展。
依據消息文本表達特征,定義消息對象類(MaintanInfo),類的屬性包括消息發送時間(maintime)和消息內容(maininfo),Pymysql 接口將MaintanInfo 對象持久化到關系數據庫的數據表(maintaninfo)內,如圖3 所示。

圖3 運維數據結構化存儲
自然語言是信息的載體,從現代邏輯角度來說,自然語言具有以下缺陷:表達式的層次結構不清晰、個體化認知模式不明確、量詞管轄的范圍不太確切、句子成分語序不固定、語形和語義不對應。因此,自然語言的處理需要相應領域的語料庫[14-15]。
運維數據基于自然語言,主要包含終端機、故障發生時間、故障發生地點、故障四個要素,而數據分析模型擴展到六個維度:終端機、故障發生時間、故障、故障類型、安裝地點、校區。針對一卡通運維數據分析的需求,建立一卡通運維語料庫,如圖4所示。

圖4 一卡通運維語料庫
基于結構化的運維數據,特征數據檢索的組合條件定義為:(終端機名稱,位置名稱,故障)+(起始時間,結束時間),檢索的結果集以四元特征組存儲在數列([終端機,故障發生時間,故障發生地點,故 障)]內,如:(['一體機','2021-03-03 15:54:51','一號樓','白屏')]。結合一卡通運維語料庫,結果集為終端機故障分析提供年、月、故障類型、校區等特征數據的下載路徑。
3.3.1 時間戳處理
故障發生時間的時間戳表達式為“YYYY-MMDD hh:mm:ss”,而故障數據分析模型的時間特征以年、月和日為維度。因此,從時間戳表達式中提取[年,月,日]三個維度的時間特征,如:“2021-03-03 15:54:51”轉換后的時間特征數列為[2021,3,3]。
3.3.2 特征選擇
數據分析模型基于六個特征維度,需要在原始數據四個要素的基礎上擴充特征類型。
一卡通運維語料庫定義了六個特征信息以及特征之間的關系:終端機與安裝地點、安裝地點與校區、終端機與故障、故障與故障類型。結合終端機故障模型的具體用例,運維數據特征定義為八元組,features=(年,月,日,終端機,故障,故障類型,位置點,校區),特征之間關系如圖5 所示。

圖5 特征關系圖
如:檢索結果集的特征數列feature=[('一體機','2021-03-03 15:54:51','一號樓','白屏')]擴充為feature=[2021,3,3,'一體機','白屏','硬件類型','一號樓','五山校區']的八元特征數列。
3.3.3 特征值編碼
檢索結果集的數據是定性數據,需要進行特征值轉換。如:feature=[2021,3,3,'一體機','白屏','硬件類型','一號樓','五山校區']。通常,特征工程的數據處理采用獨熱編碼將定性數據轉換成定量數據[16-17]。
以“終端機年度各月故障情況”模型為例:輸入數據的格式要求為矩陣['終端機','1 月','2 月',…,'12月']。其中,'終端機'列存儲發生故障的終端機名稱,'1 月'-'12 月'各列分別表示是否在該月發生故障。因此,'1 月'-'12 月'各列數據采用獨熱編碼方式0/1,其中,1 表示故障發生在該月,0 表示否。如:feature=[2021,3,3,'一體機','白屏','硬件類型','一號樓','五山校區']的獨熱編碼數列為feature=['一體機',0,0,1,0,0,0,0,0,0,0,0,0],表示一體機在3 月發生的一次故障[18]。
1)終端機年度總故障分析。分析某一年度內各終端機發生故障的總體情況。數據分析特征為['終端機','故障','年'],轉換的特征值數列為['終端機','故障'],其中,'故障'列的特征值為0/1,表達是否發生故障,以終端機名稱為索引統計各終端機年度內的故障總數,統計結果為['終端機','故障數'],并以柱形圖展示,如圖6 所示。

圖6 終端機年度故障分析
圖6 中一體機的故障發生率最高,建議運維技術組將一體機作為一卡通系統運維重點對象。
2)終端機月度故障分析。分析某一年度內各終端機在每月發生故障的情況。數據分析特征為['終端機','故 障','年','月'],轉換的特征值數列為['終端機','1 月','2 月',…,'12 月'],其中,'1 月'-'12 月'各列的特征值為0/1,表達是否發生故障,以終端機名稱為索引統計各終端機在年度內每個月發生的故障數,分析結果為['終端機','1 月','2 月',…,'12 月'],以線型圖展示,如圖7 所示。

圖7 終端機月度故障頻次分析
據圖7 可得,不同終端設備在不同月份發生故障的頻次不同。一體機在8 月份發生故障的頻次最高,8 月正值高校的暑期,運維技術組加強假期前的巡查工作。
3)終端機某時間段各故障類型分析。分析某一時間段內終端機各類故障的發生情況。數據分析特征為['終端機','故障類型','年','月','日'],轉換特征值數列為['終端機','故障類型','故障'],其中,'故障'列的特征值為'0/1',表達是否發生該類故障,以'終端機名稱+故障類型'為索引統計終端機各故障類型在某時間段內的故障數,分析結果為['終端機','故障類型','故障數'],以柱形圖展示,如圖8 所示。

圖8 終端機各類型故障分析
由圖8 統計分析可得,一體機的“出卡故障”、“硬件故障”、“系統故障”的故障率高,補卡機除硬件、打印和網絡故障還存在缺卡和色帶的問題。運維技術組的巡檢工作需要關注卡片、色帶的損耗以及一體機的系統運行狀況。
4)校區年度故障分析。分析某一年度各校區發生故障的總占比。數據分析特征為['終端機','故障','位置點','校區','年','月'],轉換特征值數列為['終端機','校區','年'],其中,'年'列的特征值為0/1,表達是否在該校區發生故障,以校區為序列統計校區在一年內故障總數,分析結果為['校區','故障數'],以餅圖展示,如圖9所示。

圖9 2020年各校區故障發生情況統計圖
由圖9 統計分析可得,五山校區的故障占比為64.74%,五山校區的運維資源(人力和時間)分配占比應為60%~70%。
長期的運維工作累積了大量的原始運維數據,并詳細記錄了一卡通系統的故障情況。以一卡通系統運維的QQ 群組消息為基礎,利用大數據分析技術多維度分析終端機故障發生情況,從而獲取運維工作重點、運維資源配置等知識,為一卡通系統的預測性運維提供指導。
下一步工作,在終端機故障數據分析的基礎上,增加系統服務故障的數據分析,進一步提高一卡通系統運維質量。