基于R语言实现的网络运维数据分析及数据可视化
2021-12-08胡丹
胡丹
摘 要:本文针对IT网络运维中的几种常见问题,结合自身网络环境、运维策略并参考ITIL中的基本管理要求,综合分析出问题关键。利用IT运维服务平台的API数据接口采集实时运维数据,运用R语言编程对运维数据清洗后分析,并将数据可视化结果嵌入基于Rshiny技术构建的网站进行发布。分析结果也可作为优化IT运维服务平台功能、建设适于自身业务场景的ITIL运维标准的重要参考依据。使用该分析方法,解决了日常IT运维中难以合理评估及量化运维工作量、运维团队缺乏数据支撑的调度策略优化以及运维技术人员难以直观获取大规模WIFI无线网部署环境下设备状态的总体情况等常见运维问题。
关键词:数据分析;数据可视化;ITIL标准;网络故障;R语言
中图分类号:TP307 文献标识码:A 文章编号:1003-5168(2021)30-0009-03
Abstract: In order to solve several common problems in IT service works, the key points of the problems are comprehensively analyzed in combination with its own network environment, operation strategies and with reference to the basic management requirements in ITIL. The real-time maintenance data are collected by using the API data interface of IT service system platform, then R language programming is used to clean and analyze the maintenance data and the results of data visual analysis on Rshiny website are published. The analysis results can also be used as an important reference for optimizing the function of IT service platform and building ITIL standards suitable for their own network scenarios. Using this analysis method, three common maintenance problems in IT services are solved: 1. It is difficult to reasonably evaluate and quantify the maintenance workload in daily IT services; 2. The operation and maintenance team lacks data supported scheduling strategy optimization; 3. It is difficult for technicians to directly obtain the overall equipment status of a large-scale WiFi wireless network.
Keywords: data analysis; data visualization; ITIL standard; network failure; R language
在業务日趋细分化、复杂化的今天,各类机构的日常办公与业务管理高度依赖于IT环境,运行稍有不慎就可能造成巨大损失。因此,IT运维工作的有效性与及时性显得极为重要。大中型企事业单位的IT设备和业务系统数量众多且架构复杂,IT运维难度极大。
ITIL、ITSM、ITSS等IT运维标准,虽然内容有差异,但其核心思想均是通过运用IT管理流程化、数据记录标准化等方法,提高工作效率和服务质量,从而更好地为业务系统稳定运行保驾护航。建立IT运维标准和搭建IT运维工具的目的也在于此,通过对IT业务进行有序化、透明化的管理,各类IT运维标准的底层是对IT基础设施的设备管理,最上层是对业务系统的流程化管理。
1 研究说明
1.1 数据来源
本文研究数据来源于武汉大学IT运维平台中网络故障报修数据和其公共无线WIFI网络的设备监控数据,时间为2020年8月至2021年7月。其中,网络故障报修事件2368起,无线网设备约1.5万台。
1.2 研究内容
本次对以下IT运维/网络运维中常见的痛点问题进行研究并分析解决方案。
(1)日常运维工作量难以合理评估和量化;
(2)运维团队调整和优化运维策略缺乏充足并有效的运维数据做支撑;
(3)技术人员难以直接获得大规模WIFI无线网络的整体设备状态。
上述问题对应到ITIL运维模型时,问题(1)(2)主要对应到运维流程管理中的事件管理模块。问题(3)主要涉及IT基础架构监控中的故障管理,所监控的设备子类为无线AC设备与无线AP设备。
1.3 研究工具
R语言是统计、预测分析和数据可视化的全球通用语言。它提供各种用于分析和理解数据的方法,从最基础的到最前沿的,无所不包[1]。同时,R是一个开源项目,其是在很多操作系统上都可以免费得到的优秀工具。
文中部分R工具包:数据可视化包ggplot2;绘制地图或2D/3D可视化的rayshader工具包;用于发布交互式web网站Shiny工具包。
2 研究结果可视化与分析
由于IT运维体系中数据字段众多,此处只介绍与分析过程和结果相关的字段。
涉及字段名称及含义如下:(1)ID:工单编码;(2)进行状态:实时维修状态;(3)创建时间:工单创建时间;(4)故障区域:办公区/宿舍区;(5)校区:1/2/3/4校区;(6)楼栋:故障发生楼栋名;(7)故障类型:有线故障/无线故障。
2.1 各校区报修数量分析
针对本文1.2章节中问题(1),分析总体故障报修情况可用直方图[2]、时间序列分析等方法,实现效果如图1所示。
由图1可知,运维量和故障类型存在明显的时间和地区分布差异。故障分布情况经分析有如下特点:无线网络故障远多于有线网络故障,因此无线网络故障突发时对该时间段的运维总量影响显著;全年中每日运维量与每日无线故障数的峰值分布基本一致,但有线网故障也有其自身的小高峰分布特点;四个校区分别有不同的故障发生小高峰,一般这些峰值由局部设备升级、热门网络应用造成网络拥堵等原因造成。
进一步分析可得,暑期开学和寒假开学时报修总量急剧增多,九月新生入校时报修量为全年最高,此时大部分报修故障为无线网络故障。由各校区报修情况汇总来看,三校区故障所占比例最高,且该校区的故障峰值主要发生在暑期和寒假刚开学时,推断可能是由于理工科在校学生对校园网体验预期偏高,建议对网络延迟较敏感或娱乐需求偏多的学生切换至电信运营商账号进行资费与体验升级。
选取图1部分实现代码为例,如下:
data_read<- read_excel(“list_whu.xlsx”)
#将读取自API接口的数据写入excel
#读取excel数据并导入数据框
data_it<-sqldf("select * from data_read
where 进行状态 like ‘%closed%
and 创建时间 like ‘%%
and 楼栋 not like ‘%未填写%
and 故障区域 like ‘%学生宿舍区%
and 校区 like ‘%%")
#使用sql语法查询实现清洗掉异常数据
#通过修改sql查询条件,调整数据样本
ggplot(data_it ,aes(创建日期,fill=故障类型)
windowsize =c(4000,2000))+geom_histogram(bins=300)+facet_grid(校区~.~故障类型,scales=‘free_x)
#使用ggplot2可视化分析包,绘制直方图
#设置绘图区的分辨率、样本密度、子图等
2.2 各楼栋报修数量分析(各校区分别排序)
为进一步分析本文1.2章节中的问题(2),分析运维总量中的故障类型和分布构成等,对数据进行热图分析[3],并将结果3D化。如图2所示,不同楼栋在不同时间的报修量差异较大,通过细致研读数据并绘图,也分析部分深层运维问题的成因和解决方案,以便及时调整运维策略。
例如,针对出现运维量陡增的楼栋,综合分析背景和故障分布得知:2020年寒假前,二校区故障报修量陡增,经分析,主要原因是宿舍网络工程改造时后勤沟通不足;而2021年5月,当年新的三学期制带来的暑期网络改造提前和校外学生搬迁回校,部分宿舍仅有一周时间安装调试无线网络,虽已紧急组织团队赶工完成,但因部分建筑弱电结构不合理造成部分网络汇聚的结构并不是最优方案,需在学生入住后进一步调整结构解决问题,给运维带来较大难度。
代码节选示例如下:
3d_it<-ggplot(data_it ,aes(创建日期,楼栋,fill=故障类型,color=故障类型))+geom_bin2d(bins=300)
#针对时间维度和楼栋地点进行分类显示
plot_gg(3d_it,windowsize = c(1920, 1080))
#2D热图结果保存并转换为3D热图
runApp(“d:/data”, port = 2727,launch.browser =T,host = “127.0.0.1”)
#shiny工具包实现基于R语言的WEB发布
2.3 各类网络设备状态数据分析
由于当前无线AP设备数量庞大、种类繁多,加之AC的单机性能有限等,本校拥有近十台不同品牌、不同型号的AC控制器设备。一旦遇到設备小范围故障,运维人员需进一步判断是否可能发展成大范围故障,同时需考虑到AP数量庞大带来的设备巡检困难。为解决本文1.2章节中的问题(3),即分析数据并绘制得到全校近1.5万台AP设备的可用性和分布情况、校区分布、不同AC控制器分布、不同AP型号分布等。
主要实现代码如下:
ggplot(data_device ,aes(AP型号,所属AC,fill=运行状态))+geom_jitter(bins=300)
3 结语
本文通过采集运维事件数据和设备状态数据,对校内IT运维工作中的一些数据进行可视化分析,并针对文中提出的几个运维常见问题进行分析,并以分析结果为依据调整运维策略。
在完成R语言编程的过程中,也发现R语言在类似分析研究工作中的优缺点均较为明显,希望尝试本方法的分析人员需自行权衡。优点有:代码结构清晰语法简单,R语言对中文支持良好,结果直观可读性强等。缺点有:分析人员需同时具有一定的计算机和数学技能,R语言学习曲线略为陡峭,绘制部分高级图表时对电脑性能有一定要求。
总体来说,本文对IT运维数据的分析效果良好,该分析方法适于在该领域广泛应用。
参考文献:
[1] 卡巴科弗.R语言实战[M].北京:人民邮电出版社,2013:1.
[2] 张杰.R语言数据可视化之美[M].北京:电子工业出版社,2019:157-158.
[3] 哈德利·威克姆.ggplot2:数据分析与图形艺术[M].西安:西安交通大学出版社,2013:58-59.