IT系统运维监控数据辅助预处理方法和系统与流程

文档序号:17695657发布日期:2019-05-17 21:29阅读:210来源:国知局
IT系统运维监控数据辅助预处理方法和系统与流程

本发明涉及大数据处理技术领域,具体地,涉及一种it系统运维监控数据的辅助预处理方法和系统,尤其是一种用于大数据保存环境的it系统运维监控数据的辅助预处理方法。



背景技术:

当今,几乎任何一家企业的业务开展都离不开it系统的支持,为了保障系统的正常运行,企业通常会使用一套监控软件来辅助其运维人员实施对it系统的运维工作。随着企业业务量的增加,it系统也变得越来越复杂,随之产生的运维监控数据的种类和数量也大幅增长,由此形成了两个问题:1)大量的运维监控数据需要保存,传统的保存方法成本过高,且在大数据量情况下,处理能力衰减严重;2)数据协议、种类繁多,且随着系统的更新,随时可能有新的类型产生,仅靠运维人员对新数据进行人工解析,不仅工作量大,而且往往需要领域专家的配合才能开展工作。与此同时,数据量的增加也意味着数据样本的丰富,这为数据的自动化解析带来了可能。

基于上述情况,如采用大数据技术对大规模的运维监控数据进行存储,则能够大幅降低存储成本,并提高对数据的处理能力。而基于大量的数据样本,自动的对运维监控数据进行一定程度的预处理,大致的划分出数据段,则能够减少运维人员的数据解析工作的工作量,只需以预处理结果为蓝本,在此基础上做精细的调整就可完成解析工作。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种it系统运维监控数据的辅助预处理方法和系统。

根据本发明提供的一种it系统运维监控数据的辅助预处理方法,包括:

数据采集步骤:基于hadoop采集运维监控数据,将运维监控数据以文件形式进行存储,得到原文件数据;

数据分类步骤:判断原文件数据的各条数据条目的长度是否一致,若长度一致,则将所述数据条目定义为协议类数据;若长度不一致,则将所述数据条目定义为日志类数据;

数据预处理步骤:对协议类数据、日志类数据分别进行预处理,得到预处理结果数据;

数据展示步骤:展示预处理结果数据、原文件数据,供运维人员按需调整。

优选地,所述数据预处理步骤包括:

协议类数据预处理步骤:对协议类数据,通过对比各条数据条目之间的公共部分,得到数据条目的区段划分,将区段划分保存在hive表格;

日志类数据预处理步骤:对日志类数据,通过设定逻辑对数据条目的最长公共子序列进行计算,得到数据条目的常量区段、变量区段,将常量区段、变量区段保存在hive表格。

优选地,所述协议类数据预处理步骤包括:

提取公共部分步骤:抽取协议类数据的每条数据条目,比较各数据条目,将数据条目分成相同字节、差异字节,将相同字节记为公共部分;

统计变化率步骤:比对数据条目的公共部分,统计各字节位的变化率,依照预设的变化率百分比阈值,得到区段划分依据;

第一表格保存步骤:根据区段划分依据,利用组件创建第一hive表格,将经区段划分后的数据保存在第一hive表格中。

优选地,所述日志类数据预处理步骤包括:

区段区分步骤:将数据条目中的字节按照设定逻辑进行常变量区分,得到常量区段、变量区段;

获取最长公共子序列步骤:根据常量区段,计算各数据条目的最长公共子序列,将最长公共子序列的长度记为第二长度,将数据条目的长度记为第一长度;

创建数据结构实例步骤:比较第二长度与第一长度,若第二长度超出第一长度的一半,则创建第一数据结构实例;否则,则创建第二数据结构实例;

第二表格保存步骤:针对第一数据结构实例、第二数据结构实例分别创建第二hive表格,将经常变量区分后的数据保存在第二hive表格中。

根据本发明提供的一种it系统运维监控数据的辅助预处理系统,包括:

数据采集模块:基于hadoop采集运维监控数据,将运维监控数据以文件形式进行存储,得到原文件数据;

数据分类模块:判断原文件数据的各条数据条目的长度是否一致,若长度一致,则将所述数据条目定义为协议类数据;若长度不一致,则将所述数据条目定义为日志类数据;

数据预处理模块:对协议类数据、日志类数据分别进行预处理,得到预处理结果数据;

数据展示模块:展示预处理结果数据、原文件数据,供运维人员按需调整。

优选地,所述数据预处理模块包括:

协议类数据预处理模块:对协议类数据,通过对比各条数据条目之间的公共部分,得到数据条目的区段划分,将区段划分保存在hive表格;

日志类数据预处理模块:对日志类数据,通过设定逻辑对数据条目的最长公共子序列进行计算,得到数据条目的常量区段、变量区段,将常量区段、变量区段保存在hive表格。

优选地,所述协议类数据预处理模块包括:

提取公共部分模块:抽取协议类数据的每条数据条目,比较各数据条目,将数据条目分成相同字节、差异字节,将相同字节记为公共部分;

统计变化率模块:比对数据条目的公共部分,统计各字节位的变化率,依照预设的变化率百分比阈值,得到区段划分依据;

第一表格保存模块:根据区段划分依据,利用组件创建第一hive表格,将经区段划分后的数据保存在第一hive表格中。

优选地,所述日志类数据预处理模块包括:

区段区分模块:将数据条目中的字节按照设定逻辑进行常变量区分,得到常量区段、变量区段;

获取最长公共子序列模块:根据常量区段,计算各数据条目的最长公共子序列,将最长公共子序列的长度记为第二长度,将数据条目的长度记为第一长度;

创建数据结构实例模块:比较第二长度与第一长度,若第二长度超出第一长度的一半,则创建第一数据结构实例;否则,则创建第二数据结构实例;

第二表格保存模块:针对第一数据结构实例、第二数据结构实例分别创建第二hive表格,将经常变量区分后的数据保存在第二hive表格中。

优选地,所述比较各数据条目是在数据条目中随机抽取一条作为基准条目,将基准条目与其它条目做逐一比对,比对两两之间的每个字节的异同性,将公共的字节位标记为相同字节,将不同的字节位标记为差异字节;

所述统计各字节位的变化率是计算数据条目中各字节相对前一个字节的变化率;

所述区段划分依据是将变化率高的字节作为区段划分的起始字节。

与现有技术相比,本发明具有如下的有益效果:

1、本发明能够以低廉的成本对海量的运维监控数据进行保存,并确保数据预处理算法的可行性;

2、通过预处理过程对监控数据进行区段划分,并以表格形式保存,大幅减少运维人员对数据进行人工解析的工作量,使得运维人员只需进行少量调整便可得到所述的数据处理效果;

3、预处理算法可适用于各类it系统运维监控数据,具有普适性,减少运维人员在对数据进行人工解析过程中对专家的依赖度;

4、数据预处理算法易于实现,复杂度不高,且随着数据样本数的增多能够不断获得更精确的预处理结果。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的协议类数据解析算法详解图;

图2为本发明的日志类数据解析算法详解图;

图3为本发明的系统模块结构图;

图4为本发明的数据处理流程图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

本发明针对it系统运维监控软件接收到的海量的各类监控数据,实现基于大数据架构的分布式存储,并在此基础上设计了数据自动预处理方法,通过对一定量数据样本的学习,可自动完成对数据条目的区段划分,从而将数据按照划分的区段以表格的形式进行保存,以辅助运维人员做进一步的数据处理。

本发明的技术方案中,整体架构基于hadoop大数据基础架构,包括了数据采集、存储和查询展示功能。利用监控数据的特征,将其分为协议类数据和日志类数据,分别采取不同的预处理方式。设计了针对协议类数据的预处理方法,通过比对各数据条目之间的公共部分,对条目进行标记,此后统计数据条目的各个字节位的变化率,可获得协议类数据条目的区段划分。设计了针对日志类数据的预处理方法,通过按照一定的逻辑对数据条目的最长公共子序列开展的计算,可将数据条目聚类成若干个类型,并获得每个类型的常量模式和变量区段划分。根据数据预处理计算的结果自动创建表格,并以表格形式保存对应的数据副本。

首先对it系统的运维监控数据可以分为两类,第一类是协议类数据,第二类是日志类数据。无论是哪一类数据,均是由一条条的数据条目组成。通常,协议类数据的每个数据条目是定长的,而日志类数据的条目长度则是变化的,且包含一系列的常量和变量区段。基于上述事实,在数据样本足够的情况下,可利用计算协议类数据条目之间的公共部分,并统计各字节相对前一字节的变化率的方式,为该类数据条目划分区段。也可以利用计算日志类数据条目之间的最长公共子序列的方式,从该类数据条目中提取出常量和变量区段。

根据本发明提供的一种it系统运维监控数据的辅助预处理方法,包括:

数据采集步骤:基于hadoop采集运维监控数据,将运维监控数据以文件形式进行存储,得到原文件数据;

数据分类步骤:判断原文件数据的各条数据条目的长度是否一致,若长度一致,则将所述数据条目定义为协议类数据;若长度不一致,则将所述数据条目定义为日志类数据;

数据预处理步骤:对协议类数据、日志类数据分别进行预处理,得到预处理结果数据;

数据展示步骤:展示预处理结果数据、原文件数据,供运维人员按需调整。

具体地,所述数据预处理步骤包括:

协议类数据预处理步骤:对协议类数据,通过对比各条数据条目之间的公共部分,得到数据条目的区段划分,将区段划分保存在hive表格;

日志类数据预处理步骤:对日志类数据,通过设定逻辑对数据条目的最长公共子序列进行计算,得到数据条目的常量区段、变量区段,将常量区段、变量区段保存在hive表格。

具体地,所述协议类数据预处理步骤包括:

提取公共部分步骤:抽取协议类数据的每条数据条目,比较各数据条目,将数据条目分成相同字节、差异字节,将相同字节记为公共部分;

统计变化率步骤:比对数据条目的公共部分,统计各字节位的变化率,依照预设的变化率百分比阈值,得到区段划分依据;

第一表格保存步骤:根据区段划分依据,利用组件创建第一hive表格,将经区段划分后的数据保存在第一hive表格中。

具体地,所述日志类数据预处理步骤包括:

区段区分步骤:将数据条目中的字节按照设定逻辑进行常变量区分,得到常量区段、变量区段;

获取最长公共子序列步骤:根据常量区段,计算各数据条目的最长公共子序列,将最长公共子序列的长度记为第二长度,将数据条目的长度记为第一长度;

创建数据结构实例步骤:比较第二长度与第一长度,若第二长度超出第一长度的一半,则创建第一数据结构实例;否则,则创建第二数据结构实例;

第二表格保存步骤:针对第一数据结构实例、第二数据结构实例分别创建第二hive表格,将经常变量区分后的数据保存在第二hive表格中。

根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述的方法的步骤。

根据本发明提供的一种it系统运维监控数据的辅助预处理系统,包括:

数据采集模块:基于hadoop采集运维监控数据,将运维监控数据以文件形式进行存储,得到原文件数据;

数据分类模块:判断原文件数据的各条数据条目的长度是否一致,若长度一致,则将所述数据条目定义为协议类数据;若长度不一致,则将所述数据条目定义为日志类数据;

数据预处理模块:对协议类数据、日志类数据分别进行预处理,得到预处理结果数据;

数据展示模块:展示预处理结果数据、原文件数据,供运维人员按需调整。

具体地,所述数据预处理模块包括:

协议类数据预处理模块:对协议类数据,通过对比各条数据条目之间的公共部分,得到数据条目的区段划分,将区段划分保存在hive表格;

日志类数据预处理模块:对日志类数据,通过设定逻辑对数据条目的最长公共子序列进行计算,得到数据条目的常量区段、变量区段,将常量区段、变量区段保存在hive表格。

具体地,所述协议类数据预处理模块包括:

提取公共部分模块:抽取协议类数据的每条数据条目,比较各数据条目,将数据条目分成相同字节、差异字节,将相同字节记为公共部分;

统计变化率模块:比对数据条目的公共部分,统计各字节位的变化率,依照预设的变化率百分比阈值,得到区段划分依据;

第一表格保存模块:根据区段划分依据,利用组件创建第一hive表格,将经区段划分后的数据保存在第一hive表格中。

具体地,所述日志类数据预处理模块包括:

区段区分模块:将数据条目中的字节按照设定逻辑进行常变量区分,得到常量区段、变量区段;

获取最长公共子序列模块:根据常量区段,计算各数据条目的最长公共子序列,将最长公共子序列的长度记为第二长度,将数据条目的长度记为第一长度;

创建数据结构实例模块:比较第二长度与第一长度,若第二长度超出第一长度的一半,则创建第一数据结构实例;否则,则创建第二数据结构实例;

第二表格保存模块:针对第一数据结构实例、第二数据结构实例分别创建第二hive表格,将经常变量区分后的数据保存在第二hive表格中。

具体地,所述比较各数据条目是在数据条目中随机抽取一条作为基准条目,将基准条目与其它条目做逐一比对,比对两两之间的每个字节的异同性,将公共的字节位标记为相同字节,将不同的字节位标记为差异字节;

所述统计各字节位的变化率是计算数据条目中各字节相对前一个字节的变化率;

所述区段划分依据是将变化率高的字节作为区段划分的起始字节。

本发明提供的it系统运维监控数据的辅助预处理系统,可以通过it系统运维监控数据的辅助预处理方法的步骤流程实现。本领域技术人员可以将it系统运维监控数据的辅助预处理方法理解为所述it系统运维监控数据的辅助预处理系统的优选例。

以下结合附图对本发明的优选例进行阐述。

如图1所示,对于协议类数据,在获得足够大数据样本集后,首先从中随机选取一个数据条目作为基准条目,将该条目和其它条目做逐一比对,比对两两之间的每个字节的异同性,公共的字节位标记为p,差异的字节位则标记为x。

异同性对比标定完毕后,将所有对比结果按照字节位进行统计,统计每一位相对前一位的变化率(首位除外)。统计结束后,选择变化率排名在前s%(s的取值范围为[0,100],图1中s值取20,表示选择了排名在前20%内的字节位)的字节位作为协议类数据条目中各个区段的起始字节位,由此就能划分出数据条目的各区段。s的值可设定,该值越小则区段划分的越粗,该值越大则划分的越细,运维人员可按需设定。需要注意的是,如果s值过大则可能将原协议内的一个区段划分成多个。

按照统计结果获得区段的划分依据后,在hadoop大数据存储环境下创建相应的表格,表格字段按区段创建。此后在保留原始数据的前提下将原协议数据拷贝存储到新建的表格中。

对于日志类数据,本发明采取的是计算最长公共子序列的操作,该操作基于mindu和feifeili提出的方法(spell:streamingparsingofsystemeventlogs)进行简化。假设给定任意的序列α={a1,a2,...,am},以及β={b1,b2,…,bn},子序列γ是α和β的一个公共子序列,则α和β的最长公共子序列就是指所有γ中长度最长的一个。例如序列{a,b,c,d,e}和序列{a,d,e,g}的最长公共子序列是{a,d,e}。

如图2所示,日志类数据是由程序中的类似printf(“bootfailure,errorstate%scode%ddescription%s\n”,x,y,z)的打印语句产生的,如果将一条日志类数据条目视为一个序列,那些固定的常量通常占了该条序列中的大部分,而变量区段则只占了小部分。基于最长公共子序列的概念,假设两个日志类数据条目是由同一个打印语句生成的,则这两个条目所对应的序列的最长公共子序列很可能就是该打印语句中的常量。

对一个日志类数据条目集合,其中的每个条目都可以利用分隔符(通常是空格符)分解为一个由单词组成的序列。该序列即可用于计算最长公共子序列。

构建一种名为log_type的字符串数组,用来分类保存学习集中的不同日志条目类型的最长公共子序列(即常量模式)并记录对应的条目。

当学习集中有足够的日志类数据条目后,首先将各个条目按照分隔符处理为序列,然后随机选取两个条目序列,如图2中的条目1和条目2,计算两者的最长公共子序列,如果得到的子序列长度不小于条目2的长度的一半,则认为条目1和条目2具有相同的类型,并将计算得到的最长公共子序列记录为该类型的常量模式,此后将该常量模式(即图2中的schema)以及两个条目全部保存到log_type1下。如果条目1和条目2的最长公共子序列长度未超过条目2长度的一半,则认为这两个条目属于不同的类型,需创建两个log_type,而每个log_type中记录的常量模式即为条目1和条目2本身。

仍以图2为例,在计算完条目1和2后,对条目3,首先计算该条目和现存的log_type的schema之间的最长公共子序列,如果该序列的长度不小于条目3的长度的一半,则条目3也可归入该log_type中,否则新建log_type,如图中的log_type2。

此后,对条目4,同样计算该条目和现存的所有log_type的schema之间的最长公共子序列,图2中条目4与log_type2的schema之间的最长公共子序列超过了条目4长度的一半,因此将条目4归入log_type2中,并更新该log_type的schema,使该schema更精确。

如果当前计算的条目和多个现存的log_type的schema之间的最长公共子序列的长度都超过了当前条目长度的一半,则选择计算结果中最长的一条所对应的log_type来归入该新条目。如果存在多个最大值,则选择所有最大值所对应的log_type中具有最短的schema长度的log_type来归入该新条目。

利用上述流程,绝大部分的日志类数据的常量模式和变量区段就可以被解析出来,根据解析的结果,在hadoop大数据存储环境下为每个log_type创建一个对应的hive表格,并将log_type中的数据存入表格中。如图2所示,每个变量区段对应表格中的一个column,而log_type的schema则对应表格的comment属性。

如图3所示为本发明的系统模块结构图。整个架构基于hadoop大数据基础架构构建,其中包含了三个主要模块:1)数据采集模块;2)数据存储模块;3)数据查询及展示模块。数据采集模块负责接收由it系统运维监控软件导入的各类监控数据,可针对结构化数据、非结构化数据等不同的数据类型灵活的运用sqoop和flume来实现对数据的采集,也可以直接通过kafka来接收导入的数据。由sqoop采集的数据可直接导入到数据存储模块中,并以表格的形式存储。其它数据会先送入kafka做缓存,并且每个数据类别对应于kafka中的一个topic,此后由spark发起对kafka的数据消费,将缓存的数据以文件形式批量的保存到数据存储模块中,且不同的文件对应不同的topic。数据存储模块即hadoop底层的hdfs文件系统,负责保存所有的运维监控数据,包括待处理的数据和已经过处理的数据。数据查询及展示模块包含了多个组件工具,其中的spark、hive、impala、pig等均可用于实现本发明上述的对协议类数据和日志类数据的自动化预处理方法。hbase和phoenix可配合使用来管理经过处理后的数据。solar为数据搜索引擎。hue为用户交互界面工具。此外,yarn和zookeeper负责协调和管理各个组件和资源。而api则向外部的it系统运维监控程序提供了交互方法。

如图4所示为本发明的数据处理流程图,以下对整个流程进行详细描述:

步骤101:当有新的监控数据类型接入kafka后,在kafka内创建对应的topic,用于对该类数据进行缓存。此后进入步骤102。

步骤102:新topic创建24小时后,将其中的数据通过spark保存到hdfs上新创建的对应文件中。此后,每24小时将topic中新接收到的数据导入到hdfs上的文件内。此后进入步骤103。

步骤103:判断保存数据的文件内的数据条目数量是否达到了预设的条目数,如达到,则该文件内的数据可作为自动化预处理过程的学习集,此后进入步骤104,否则返回步骤102。

步骤104:判断文件内的各条数据条目的长度是否一致,如一致,则表明这些数据是协议类数据,此后进入步骤105;如果不一致,则表明这些数据是日志类数据,此后进入步骤108。

步骤105:抽取文件内的每个数据条目,用spark按照本发明中的方法,比对条目间的公共部分并统计各字节位的变化率后,依照预设的变化率百分比阈值,得到对此类数据的区段划分依据。此后进入步骤106。

步骤106:根据已经得到的区段划分依据,利用数据查询及展示模块中的组件创建对应的表格。此后进入步骤107。

步骤107:将文件中的数据按照区段划分依据,拷贝保存到已创建的表格中。此后进入步骤111。

步骤108:抽取文件内的每个数据条目,用spark按照本发明中的方法,通过不断计算最长公共子序列的方式,对日志条目进行归类,并获得每个类别的常量模式以及变量区段划分依据,这些内容和对应的条目一起被记录到若干个log_type字符串数组中。此后进入步骤109。

步骤109:根据已经得到的若干个log_type,利用数据查询及展示模块中的组件创建若干个对应的表格。此后进入步骤110。

步骤110:将log_type中的数据按照常量模式和变量区段的辨识结果,拷贝到对应的表格中。此后进入步骤111。

步骤111:由于所有的数据原文件均有保留,运维人员可以以预处理结果为蓝本,对照原文件进行更精细的调整处理。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1