登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

基于运维日志大数据的运维事件高效提取研究毕业论文

 2021-07-12 09:07  

摘 要

近年来,随着信息化建设和大数据的发展,企业的网络设备规模不断增长,这些网络设备在运行时产生了大量的反应系统运行状态的日志,有效的分析这些日志可以用来做故障告警和异常检测。

传统的日志分析难以有效采集,存储,处理大规模的日志数据,并且处理的日志类别单一。本文针对某政府部门对大规模日志分析的需要,充分使用开源大数据生态系统,设计了一个大规模日志采集,存储,分析系统。这个系统从一定规模的集群中采集了很多不同类别的日志数据,为了能够有效的从日志数据中生成统一的事件描述,针对不同的日志类别,系统采用了不同的事件提取策略。针对不同的提取策略,系统基于正则表达式和SQL语句的方法,分别使用Hive和SparkSQL,最终生成了统一的日志事件描述。

关键字:事件提取;日志;大数据;正则表达式;SQL

Abstract

With the rapid development of information construction and big data in recent years, the scale of network equipment in big enterprise is growing fast. These devices produce a large number of logs at runtime which can reflect the status of the running system. The engineers can detect the system exception and inform the fault by analyzing these logs.

Traditional methods of analyzing log data can’t collect, store, analyze massive log data effectively. In addition, these logs are always simple and isostructural. This thesis designs a framework which can be used to collect, store, analyze massive logs under the requirements of the government department A by applying the technologies of big data. It collected a lot of heterogeneous log data from cluster. In order to generate consistent log event effectively, system provides different event extraction methods according to different log data. Finally system uses SQL, regular expression and Hive, SparkSQL to generate consistent log event by applying these different event extracting methods.

Key Words: event extraction; log; big data; regular expression; SQL

目 录

第1章 绪论 1

1.1 背景 1

1.2 主要工作 1

1.3 国内外研究现状 2

1.4 本文结构 2

第2章 日志事件提取需求分析 3

2.1 日志事件提取可行性分析 3

2.1.1 经济可行性分析 3

2.1.2 技术可行性分析 3

2.2 日志事件提取系统功能需求分析 3

2.3 日志事件提取系统非功能需求分析 4

第3章 日志数据分析 5

3.1 日志数据分析背景 5

3.2 系统告警日志数据 5

3.3 综合网管日志数据 6

第4章 系统设计与实现 9

4.1 系统运行环境描述 10

4.2 日志采集模块 10

4.2.1 日志采集模块概述 10

4.2.2 分布式日志采集系统 11

4.2.3 日志采集系统实现 13

4.2.4 采集结果 13

4.3 日志存储模块 14

4.3.1 存储技术概述 14

4.3.2 海量存储方案 14

4.3.3 日志存储模块 15

4.4 事件提取模块 16

4.4.1 系统告警日志事件结构 17

4.4.2 综合网管日志事件结构 18

4.4.3 提取策略描述 19

4.4.4 大数据分析工具 20

4.4.5 基于HiveQL的事件提取 21

4.4.6 基于SparkSQL的事件提取 26

4.4.7 事件提取结果 27

第5章 总结与展望 29

参考文献 30

致谢 32

第1章 绪论

1.1 背景

随着信息化建设的快速发展,大型企业和政府部门在网络中部署安装了大量的软硬件资源,包括:交换机、防火墙、路由器等硬件设备[[1]],以及中间件、数据库等具体软件应用。这些设备和应用在运行过程中产生了大量的日志[[2]]。网络日志在网络运行管理中起着非常重要的作用,在安全领域,网络日志被广泛用在安全事件追溯、取证分析,这些为入侵检测和漏洞挖掘提供了支撑[[3]]。

在上海交通大学网络信息中心,研究员采集到了IP流,DNS以及HTTP日志等数据,这些数据每日累计达到TB或者PB级别。在这种情况下,传统的单机处理模型在面对海量数据的存储和计算都遇到了瓶颈[[4]]。因此,为了对这些海量的数据——大数据进行有效的收集,传输,聚合,存储和分析处理,很多大数据相关技术被开发出来[[5]]。如今,为了有效的存储海量数据,Google的GFS[[6]]和随后的Apache开源的HDFS[[7]]被广泛使用;Google的MapReduce和Hadoop的MapReduce被广泛应用在海量数据的离线处理;在大规模分布式数据采集和传输领域,已知的开源实现有Flume[[8]]和Kafka[[9]]等;在整个大数据的背景下,工业界对大数据的有效快速的处理分析进行了深入的研究[[10]],在这个过程中,有了很多的成熟的广泛使用的开源框架[[11]],比如支持声明式查询的Hive,支持存储大量列式数据的HBase[[12]],比MapReduce更有效率的Spark[[13]],支持图计算的Spark GraphX,支持流数据计算的Storm和SparkStreaming等[[14]]。

1.2 主要工作

本文利用大数据生态系统中有效的分析工具,实现从海量日志中提取生成有较为清晰描述的事件信息。运维日志来自于各种网络设备的运行日志,状态信息以及网络设备中运行的应用产生的日志等,这些日志由于来源的多样性,导致其具有各种类型,又由于需要分析的网络设备的规模较大,导致对设备进行日志采集时采集到的日志数据规模非常大,所以,为了有效的分析海量日志,需要研究基于大数据的海量日志事件提取方法,并设计一个合理的日志事件提取系统。首先,系统需要采集足够的日志信息并存储下来,日志信息可能有不同的类别,因此需要对不同类别的日志生成结构化的事件描述。综合考虑这些问题,需要设计日志采集,存储和事件提取三个模块[[15]]。

1.3 国内外研究现状

在对海量日志进行分析时,很多人提出了相应的处理框架。在文献[1]中,作者构建了一个大规模日志分析方案,使用集群完成对日志文件的存储和分析挖掘工作,作者使用一个日志服务器采集日志数据存储到HDFS中,然后分别使用Hive等分析日志数据,但是作者使用日志服务器的方式采集数据存在瓶颈,单独的日志服务器可能存在单点故障而且容易成为性能瓶颈。在文献[2]中,作者提出使用Hadoop生态系统来存储和处理日志,作者将日志存储在HDFS中,使用Hive分析日志,并且作者比较了Hive和Impala的性能,使用了GZip压缩的Parquet格式将日志压缩,将Impala的查询性能提高了5倍,但是Impala本质上是一个声明式数据分析工具,它无法提供更有效率的过程化编程模型。在信息抽取方面,文献[26]中提出了从非结构化的道路信息文本中提取道路交通事件的方法,通过构建一个文本模式库,使用模式匹配方法从道路信息中抽取信息从而生成结构化的事件描述,使用这种方法,作者达到了90%的准确率,但是缺点是文章使用的数据量比较小,无法应对海量数据的处理情况。在文献[21]中,文章为了能够自动从科学文献中抽取文献的关键信息,比如主要创新内容,实验方法,性能指标等,综合使用了语义标注和规则抽取技术,最后使用正则表达式抽取信息,首先基于知识库对参考文献进行语义标引,然后指定抽取规则从中抽取句子,然后使用基于正则表达式的方法完成参考文献关键信息的抽取,这篇文章提出的方法能够很好的完成特定领域文献信息的抽取,但需要领域知识库。有些文献使用机器学习的方法来学习规则[[16]],比如在文献[16]中,构建了一个WHISK,该系统能够从文本中自动学习规则,缺点是这种使用统计机器学习模型的方法构建规则的系统有很大的错误率,目前难以在工业界有效使用[[17]]。在日志事件提取方面,在文献[18]中,设计了一个针对多源异构的日志采集,分析系统,文中使用Snort来采集日志信息,经过预处理模块的处理,最后使用基于规则库的方法完成日志信息提取,最后使用XML生成事件描述,这篇文章详细的描述了针对多源异构日志数据的分析方法,但是文中提出的系统难以有效的分析海量的日志文件,没有充分利用如今分布式系统的强大计算能力。

1.4 本文结构

日志事件提取是希望从海量的日志信息中提取结构化事件,本文设计了一套日志事件提取系统,在部门A,采集到了很多的日志信息,这些数据高达几TB,利用这套系统从提取到的海量日志信息中提取事件。这篇文章将会详细描述系统的功能需求,可行性分析,详细设计以及具体实现的架构模块和每个模块的技术背景调研,然后详细描述各个模块的具体实现,最后将会提出设计的系统的不足与未来的改进。

第2章 日志事件提取需求分析

日志为运行的系统,网络设备产生的各种信息,对这些日志进行合适的分析能够帮助运维人员检测网络故障,发现设备异常,甚至捕获网络异常行为并且提供异常背后的攻击监测。在现代信息系统中,网络设备通常规模巨大,由这些网络设备和网络设备中运行的应用产生的日志信息海量,且有多种类型,每种类型代表的意义不同,导致需要采用不同的分析策略。为此,系统需要完成以下功能:

  1. 研究当前有效的大规模日志采集技术,设计能够使用一定规模的集群来完成对大规模网络设备及应用运行产生的日志信息进行采集。
  2. 研究当前有效的大规模日志存储技术,设计能够使用一定规模的集群来完成对大规模日志存储的方法,并给出设计结构。
  3. 研究当前有效的大规模日志事件提取方法,设计能够有效提取日志事件的方法。

2.1 日志事件提取可行性分析

2.1.1 经济可行性分析

日志事件提取能够从海量日志中提取有效的日志事件描述,可以为后来的日志挖掘提供服务,从而可以挖掘出日志中的有效信息,发现网络威胁,设备异常,故障检测等。所以海量的日志中可能存在非常有价值的信息,对海量日志进行事件提取有较大的价值。

2.1.2 技术可行性分析

通过对大数据生态系统的调研,当前的大数据平台的相关技术可以提供较为可靠有效的大规模日志的采集,存储,分析等能力,在一定的集群规模下, 可以对海量日志进行高效率的分析。综合当前企业对这些技术的广泛使用,也证明了这些技术在实际使用中的有效性。由于这些技术的学习曲线不是特别复杂,以及网络上提供的大量技术资料,完全可以使用这些技术来有效分析日志。

2.2 日志事件提取系统功能需求分析

系统功能需求主要描述系统应该提供的功能,以满足使用目的,能够给使用者带来一定的效益。

日志事件提取需要从海量日志中提取事件描述,系统需要能够采集各类日志,包括告警日志,综合网管日志,系统状态日志(Syslog)等。然后系统要求能够使用大数据的相关技术从日志中提取清晰的事件。为了能够较为有效的提取事件,必须能够满足一定的性能要求,也就是系统必须能够在给定的时间内处理一定量的日志事件提取,完成系统工作。系统也需要生成提取结果报告,将事件提取到的结果存储下来,以便后续进行分析。同时为了能够验证提取效果,保证一定的正确性,系统应该可以生成相应的检测结果报告,用户反馈给研究人员。

2.3 日志事件提取系统非功能需求分析

软件系统的非功能需求主要包括性能需求,国际化需求,安全性需求等。基于这些非功能需求,在安全性需求方面,系统使用的日志数据必须保密,不能公开,系统的事件提取结果不能透漏,只能够存储在集群中供研究人员阅览;在国际化需求方面,由于系统只用于内部,无需满足国际化的要求;在性能需求方面,系统必须能够在一定时间内处理足够多的日志数据,生成较为清晰的日志事件。

第3章 日志数据分析

本文设计的日志事件提取系统分为3个模块,分别是日志采集模块,日志存储模块,日志事件提取模块。日志采集模块中采集到了各类信息,主要包括系统告警日志数据,系统故障日志数据,系统日志(Syslog)数据,系统综合网管日志数据等。日志存储模块主要负责存储这些日志数据,以便后续的日志事件提取模块能够分析,日志事件提取模块用于从存储的各类日志中进行事件分析,提取生成结构化的事件描述,并存储在系统中。采集到的同类日志具有相同的结构,从数据库表的角度来看,系统的同类日志具有相同的字段,每个字段具有一定的含义。

3.1 日志数据分析背景

对大规模的日志分析在实际环境中得到了广泛的使用,有效的分析这些日志可以用来做故障告警和异常检测。为了能够有效的分析日志,存储的日志通常以数据库表的形式反映出来,在这种情况下,日志分析可以充分使用数据库高效的检索分析能力[[18]]。日志数据由于来源的不同,有些来源于系统应用,有些来源于设备,有些日志可以设置格式,比如Syslog,有些日志支持修改格式。这些异构的日志数据给日志的有效分析带来了挑战。接下来将详细描述系统中四类日志数据中的两类数据,系统告警日志数据和系统综合网管日志数据。

3.2 系统告警日志数据

告警数据主要由系统运行产生的告警日志,由相应的系统的告警模块产生。当系统处于不健康的状态时,会有相应的告警日志产生。告警日志在系统中可以反映系统的运行状态,运维人员可以利用这些告警日志追踪系统状态,降低系统故障。

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图