APP下载

基于大数据技术的网络设备运行状态监测方案研究

2023-02-26

西部广播电视 2023年24期
关键词:键值网络设备日志

于 琰

(作者单位:中央广播电视总台)

基于计算模型(MapReduce)的任务跟踪器(TaskTracker)、作业跟踪器(JobTracker)组件作为全局管理者,在服务端提取出设备运行状态的不同特征信息,使用分布式聚类算法(MapReduce K-Means)扫描所有数据集合,挖掘分析Syslog数据的优先级(PRI)、报头(Header)、消息描述(MSG)等信息,统计数据样本集作为网络设备运行状态的判定依据,实现对网络设备监测数据的快速挖掘、分析与存储管理。

1 面向网络设备运行状态监测的Hadoop架构

Hadoop框架作为最常用的海量数据处理、存储模型,在Apache开源云计算平台基础上,建构起涵盖分布式文件系统、计算模型(MapReduce)、数据挖掘库(Mahout)、数据仓库(Hive)、数据库(HBase)、安装与配置工具(Manager)、数据转换工具(Sqoop)、任务协作组件(Zookeeper)等的数据管理系统。该管理系统可运行于配置较低的廉价计算机(PC)主机中,降低海量化数据处理与存储的难度[1]。

1.1 HDFS

HDFS系统采用主从结构(Master/Slave, M/S),含有1个主节点(NameNode)、多个数据节点(DataNode)、客户端(Client)等组成部分,负责为结构化、非结构化提供分布式缓存服务,具有高可靠性、高容错性、低成本的特征。采用数据集流式访问的模式批量写入网络端客户文件、日志数据信息,分多次读取每个数据文件分块的身份认证(Identity document, ID)编码、任务状态监控信息,缓存至NameNode、DataNode之中,并为MapReduce、HBase等组件的数据文件访问、数据存储提供接口。

1.2 MapReduce

MapReduce并行计算模型通常将数据项处理任务分为拆分(Split)、映射(Map)、派发(Shuffle)、聚合(Reduce)等多个阶段(见图1)[2]。在拆分阶段将输入数据集切分为大小相同的数据片段进行并行处理;映射阶段是使用读取器(RecordReader)读取输入的{0,1,2,…,n}数据片段,解析得到中间结果的键值(K表示键,V表示值)对(K0,V0),(K1,V1),(K2,V2),…, (Kn,Vn),组合成集合M{(K0,V0),(K1,V1),…,(Kn,Vn)};派发阶段是将中间数据结果的键值对作为reduce的输入,Reduce聚合阶段是运行自定义reduce()函数的数据处理指令,从M{(K0,V0),(K1,V1),…,(Kn,Vn)}键值对集合中挑选具有相同键值的数据片段,合并为新的二元组数据集(K’,V’)并输出。

图1 MapReduce并行计算模型

1.3 Hive、HBase

Hive为基于Hadoop框架的数据映射工具,包括数据源、数据存储及管理、联机分析处理(Online Analytical Processing, OLAP)服务器、前端工具和HQL(Hibernate Query Language,面向对象的查询语言)连接查询接口等组成部分,负责使用OLAP服务器将需要分析的结构化、非结构化数据文件映射为数据库表,以支持用户的数据查询、数据分析操作。

2 基于Hadoop架构的网络设备监测管理平台建设

基于Hadoop、MapReduce、HDFS、HBase、Hive等集成平台,以及日志数据集服务器(Syslog Server)、简单网络管理协议(Simple Network Management Protocol, SNMP)、MapReduce K-Means聚类算法的大数据技术,建构起面向网络设备运行数据的监测管理平台,设置涵盖数据采集层、数据存储层、数据挖掘分析层等的多层结构[3]。网络设备运行监测管理平台结构有以下几个层级:

2.1 数据采集层

在网络设备端安装的传感器装置、日志数据采集服务器等组件,以不同速率对某一时段内网络主机设备的运行速度、内存或存储用量、故障告警等信息进行采集,记录采集的互联网协议(Internet Protocol Address, IP)地址、媒体存取控制(Media Access Control Address, MAC)地址、行键字符串、报头、消息描述等日志数据集,并经由无线传感网络回传至网络服务端、在Hadoop服务端进行存储。

2.2 数据存储层

数据存储层负责网络设备监测数据的写入、读取及存储,依据Pig(Apache Pig,基于Hadoop的大规模数据分析平台)流式访问模式进行日志数据集访问、批量写入数据文件,使用Pig filter(一种数据预处理装置,通常根据文件的特定条件选择所需的元组)运算符过滤与选择所需的日志数据元组;利用Sqoop BTL数据转换工具,将数据字符串转换为对象,生成与特定日志数据表名有相同名称的类,保存表中每一行的字节序列记录以供应用程序调用。随后基于云数据仓库、Hive Script分别创建不同的日志数据内部表,生成hive表的定义后加载并缓存至HDFS系统中。HDFS系统、HBase为数据存储的中心,依据HBase的表行键排序、列组设计规范,对海量化网络设备状态监测日志数据、告警推送信息进行存储。

2.3 数据挖掘分析层

数据挖掘分析层涵盖MapReduce并行计算、K-Means聚类算法分析的两个阶段,MapReduce特征提取是将输入日志数据分解成若干个大小相同的数据片段,对每个数据片段的键值对进行处理,并组合为M{(K0,V0),(K1,V1),…,(Kn,Vn)}的键值对集合。以HBase表数据作为MapReduce并行计算模型的输入数据,使用RecordReader读取输入的{0,1,2,…,n}数据片段,解析出包含{Key:“Mac:-Date”“Tower:Line:ID”,Value:(V1,V2,…,Vn)}的键值对,在Map、Reduce函数任务计算中输入中间结果的键值对,由NameNode、DataNode参与计算,提取不同特征信息的有效值,最后输出二元组特征值的数据集(K’,V’)[4]。其中JobTracker、TaskTracker组件负责监控MapReduce计算的运行状况,一旦发现某一节点的任务失败后,会将任务转移至其他节点重新运行;基于Hadoop服务框架的Zookeeper任务资源协调组件,用于解决分布式计算的数据节点选取、资源协调问题,为Hadoop集群任务提供统一数据节点命名、分布式与同步管理服务。

3 基于MapReduce K-Means聚类算法的网络设备运行状态监测分析

面对海量化网络设备运行监测数据的任务,选用已训练好的、含有类别样本数据的K-Means聚类算法作为实验模型,对多种网络设备同时运行的情况进行状态监测。当前网络设备运行监测的Syslog日志数据挖掘分析,通常包括优先级、报头、消息描述等组成信息。这里的优先级是指设备状态日志的优先级,用于描述安全/授权消息、报警消息的严重等级。报头包含设备主机名、时间戳等信息。消息描述是指日志消息的详细描述信息[5]。

根据监测日志数据样本的不同类别、选择与设定k个类别的聚类中心,假设所有日志数据c含有{x1,x2,…,xn}等n个样本,设为c=(x1,x2,…,xn)T,所有数据样本构成的k个类别集合为C={c1,c2,…,ck},每个聚类集合只存在唯一的标识符。若某一类别cj中包含的所有日志数据样本集为X={x1,x2,…,xi}、i为样本的个数、聚类中心为Cj,则根据欧几里得度量公式计算数据样本与聚类中心Cj之间的欧氏距离,求取距离某一数据样本最近的聚类中心Cij,将数据样本分配到聚类中心Cij所对应的簇中,计算公式如式(1)所示:

其中,Cj表示第j个数据聚类中心、Cij表示具有第i个属性值的聚类中心。利用极大似然估计法(Maximum likelihood estimation)建立目标函数、计算最小化误差平方和,整个为X={x1,x2,…,xi}数据样本集的误差平方和(SSE)计算公式如式(2)所示:

SSE表示数据样本集聚类的最小化误差平方和,在确定初始聚类中心为Centerj的情况下,采用求取距离某一数据样本最近的聚类中心Cij、将数据样本分配到聚类中心Cij所对应簇的方式,来更新并形成新的聚类中心,直至相邻两次的聚类中心小于阈值时停止[6]。聚类计算方式如下:

Map:输入:〈Object,日志数据〉

输出:〈所属类Cj,数据〉

Reduce:输入:〈Cj,相应数据的集合〉

输出:〈Cij,新的聚类中心〉

根据不同数据样本的相似性作出聚类簇的粒子适应度计算,数据粒子更新后的所处位置x'1=xi+vi、更新速率为V'i=vi+c1×rand(Cjbest-xi)+c2×rand(Gjbest-vi),其中Cjbest为某一数据集的初始聚类中心、Gjbest表示数据粒子群最优位置,c1、c2表示学习因子。判断相邻两次的聚类中心位置是否小于阈值,若“是”则结束,若“否”则用新的聚类中心覆盖原有聚类中心并重新迭代。

4 仿真实验及结果分析

4.1 实验环境配置

选用5台网络计算机搭建Hadoop分布式集群架构,每台计算机的基本配置为Genuine Intel(R) CPU T2080 @1.73GHz CPU 16GB 2TB。在网络计算机主节点安装Hadoop分布式软件,配置用户登录的公钥授权文件authorized_keys、配置Kettle连接Hadoop集群的HDFS系统等环境变量,在Hadoop软件的主对象树中选择Hadoop cluster、新建New ClusterGrid监控服务,收集1小时内监测网络设备运行状态的日志数据文件。

4.2 实验结果分析

输入收集的日志数据文件,提取优先级、报头、消息描述等有用词,统计每条日志的网络设备编号、设备类型、设备吞吐量(CPU负载)、设备内存状态、设备运行带宽状态等单词数目作为数据样本集,进行MapReduce K-Means聚类分析,得出表1的实验结果。

表1 网络设备运行状态监测结果

从表1的实验结果可得出,使用Hadoop分布式软件程序框架、MapReduce分布式聚类模型,运行Hadoop分布式集群平台的采集器、数据监测与告警组件,监测各网络主机设备的中央处理器(Central Processing Unit, CPU)或内存用量、运行带宽速度、故障告警等信息,得到的实验结果较为客观准确。

5 结语

近年来,网络主机设备、工业制造及电气设备的智能化发展,使得网络设备运行状态的数据监测量由GB跃升至TB级别,海量化、低价值密度的网络设备运行状态数据需通过利用分布式计算技术作出处理。基于Hadoop MapReduce计算模型、HDFS文件系统两大核心技术搭建云服务平台,利用主从数据节点采集系统日志信息,使用MapReduce、Sqoop数据转换、Zookeeper任务协调、K-Means聚类模型进行特征提取分析,可实现对单个或多种网络设备同步运行的监测管理。

猜你喜欢

键值网络设备日志
网络设备的安装与调试课程思政整体设计
一名老党员的工作日志
非请勿进 为注册表的重要键值上把“锁”
扶贫日志
一种基于C# 的网络设备自动化登录工具的研制
游学日志
一键直达 Windows 10注册表编辑高招
基于列车监测网络设备的射频功放模块设计
一种基于粗集和SVM的Web日志挖掘模型
基于三层交换技术架构数字化校园网络设备的配置与管理