陈泽生,黄建波,艾 飞
(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 群组消息为基础,利用大数据分析技术多维度分析终端机故障发生情况,从而获取运维工作重点、运维资源配置等知识,为一卡通系统的预测性运维提供指导。
下一步工作,在终端机故障数据分析的基础上,增加系统服务故障的数据分析,进一步提高一卡通系统运维质量。