CN111949633B - 一种基于并行流处理的ict系统运行日志分析方法 - Google Patents
一种基于并行流处理的ict系统运行日志分析方法 Download PDFInfo
- Publication number
- CN111949633B CN111949633B CN202010767753.0A CN202010767753A CN111949633B CN 111949633 B CN111949633 B CN 111949633B CN 202010767753 A CN202010767753 A CN 202010767753A CN 111949633 B CN111949633 B CN 111949633B
- Authority
- CN
- China
- Prior art keywords
- log
- template
- analysis
- metadata
- cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于并行流处理的ICT系统运行日志分析方法。本发明建立的基于RDMA的并行分布式日志处理平台,当数据流在Spark集群中传输时,数据流直接从本地节点内存传输到目的节点内存,不需要通信双方操作系统的介入,大大降低了CPU占用率和网络时延。提出的在线日志流解析方法,设置了缓存模板集,经过两次过滤和结果汇总后的筛错重解析,显著增强了日志解析算法的准确性和鲁棒性。日志解析结果汇总后,通过基于元数据映射的结构化日志压缩方法,将所有元数据顺序编码,映射关系字典存储,将元数据编码映射后直接压缩,显著降低了日志存储空间。
Description
技术领域
本发明涉及ICT系统日志管理的实现方法,尤其是在大规模在线日志数据流中,通过并行流处理实现ICT系统运行日志分析方法。
背景技术
随着云计算和大数据技术的快速发展,ICT系统为海量用户提供了丰富的应用服务,服务提供商期望为用户提供稳定安全的服务。对于中小型企业来说,频繁的系统故障会带来极差的用户体验,而大型企业短暂的服务器宕机都将带来难以估量的损失。系统管理员通常会通过分析出错日志来诊断系统问题。当单台ICT系统出现故障时,系统管理员会查看运行日志,快速定位出现系统故障的位置,确定故障原因。
但是,在面对大型分布式集群时,每秒产生的日志数据大小都在GB级,系统管理员通过手动检查出错日志是劳动密集型行为,短时间内难以发现系统故障。如果利用数据挖掘技术对运行日志进行自动化分析,则能够提前发现系统运行过程中潜在的错误,系统管理员也能提前对系统的不当行为进行处理。此外,自动化分析日志分析也能够对系统和应用程序性能,系统安全保障带来重要的参考价值。
ICT系统输出的原始运行日志一般是非结构的,一行日志代表一个系统事件,包含了时间戳、事件级别、事件源、事件内容等关键信息。日志解析的目的是为当前日志行识别出唯一的日志事件模板,利用识别出的模板结构化存储该日志行,为后续的数据挖掘应用程序提供结构化数据集。传统的自动化日志解析依赖于正则表达式,这些正则表达式由系统开发人员手动设计和维护。但是,手动方法并不适合现代服务生成的日志。首先,一个大型ICT系统每秒产生的日志大小在GB级,这些日志格式复杂多样,手动方法显然不行。其次,随着开源平台和Web服务的流行,一个系统通常由全球数百名开发人员共同完成。因此,负责正则表达式的开发人员可能不知道初始版本日志的目的和意义,这使得手动设计和管理模板更加困难。第三,现代ICT系统由于需求的变化系统日志语句更新较快,为了维护一个正确的正则表达式集合,开发人员需要定期检查所有日志语句,这是一个劳动密集而且容易出错的过程。
现有的自动化日志分析方式可分为在线和离线两种,离线日志分析中日志文件存储在分布式文件系统(比如HDFS)中,进行T+1级计算,即在T日生产的数据在T+1日被采集到数据仓库中,对日志分析过程注重的是准确性。在实时日志分析过程中,系统运行状态下产生的日志文件以数据流的形式输入处理机中,进行秒级计算,在保证准确性的情况下降低计算时延,提高处理效率。目前大多数日志分析都专注于离线、批处理,利用源代码自动生成正则表达式或者直接从存储在分布式文件系统中的原始日志中提取日志模板。虽然能够达到提取日志模板的目的,但由于某些服务的源码不可访问、单个计算机内存太小、处理机脱机等原因,因此离线日志处理不能满足大部分用户的需求。
Apache Spark是基于内存的迭代计算框架,能够并行处理大规模数据。集成了Spark Streaming的Spark框架,适合以并行流式处理ICT系统日志。当使用Spark执行应用程序时,Spark Streaming将接收到的实时数据流,按照指定时间间隔对数据流进行划分,这些划分数据以RDD(弹性分布式数据集)的形式交给Spark引擎,Spark引擎对接收到划分的RDD后进行切片,并将计算逻辑一起分发给Spark集群进行并行处理日志解析。Spark的shuffle操作的实现采用了基于Netty的方法,即基于Java Sockets发送/接收双向通信模型,该模型通常需要多次数据拷贝,重新对RDD进行划分,大量I/O负载导致性能较差而无法充分利用内存计算带来的性能优势,这已经成为Apache Spark的主要性能瓶颈。
传统的TCP/IP通信协议,数据双方数据传输需要进行用户态内核的拷贝,一系列数据封装,解封装才能读取数据,这带来了大量的I/O开销。RDMA(远程直接内存访问)技术为降低通信双方网络传输时延而产生,它可以将数据直接从一台计算机的内存传输至另一台计算机的内存缓冲区,无需操作系统的介入。目前有三种不同的网络协议实现了RDMA,分别为InfinitiBand、iWarp、RoCE。InfinitiBand虽然性能最好,但是硬件成本高。RoCE性能与InfinitiBand相当,而且成本较低,仅需要支持RDMA的网卡即可,其中RoCE v2还支持网络层传输,适合分布式集群节点间实现直接内存访问。
发明内容
由于当前ICT系统运行日志分析方法受限于集群间通信时延大,计算框架性能不高,日志解析算法鲁棒性和准确率低等问题,导致在线日志流解析并不高效。
本发明建立了从日志采集到处理再到存储的并行分布式日志处理平台,节点间利用RDMA计算实现直接内存访问。同时提出了在线日志流解析方法,将出现频率高的日志事件模板设置为缓存模板集,进行了多次过滤及模板合,提高了日志解析的准确性和鲁棒性。本发明同时还考虑了结构化日志的存储,日志解析后将结构化日志数据根据参数映射压缩存储,显著节约了存储空间,方便未来日志数据挖掘。
本发明方法的具体步骤如下:
步骤1:搭建基于RDMA的分布式并行日志流处理平台。
步骤2:用户启动Flume、Zookeeper、Kafka、Spark集群,将日志处理程序提交至Spark引擎。
步骤3:Flume将从ICT系统采集到的日志流输入Kafka集群,Kafka系统接受来自收集层的日志流后,将日志数据放入消息队列。
步骤4:Kafka将消息队列中的数据流推送至Spark集群,Spark Streaming接受数据流并将其分片。
步骤5:Spark引擎将日志处理任务分发到工作节点集群,工作节点内创建Container,启动执行器执行日志解析任务。
步骤6:工作节点完成日志解析后将结果返回至Spark主节点的任务调度器,任务调度器将日志解析结果汇总,并选出解析失败的日志,进行二次解析。
步骤7:如果日志解析的模板准确率满足期望值,则将解析日志压缩存储到存储层的数据仓库中,否则重新执行步骤2-6。
本发明的有益效果:通过本发明提出的基于并行流处理的ICT系统运行日志分析方法,可以利用RDMA技术将日志数据直接从一台计算机的内存传输到另一台计算机的内存,不需要通信双方操作系统的介入,大大降低了CPU占用率和网络时延。此外本发明提出的在线日志流解析方法,通过设置缓存模板库,两次日志过滤,筛错重解析,显著增强了日志解析算法的准确性和鲁棒性。同时,日志解析结果汇总后,通过基于参数映射的日志压缩方法,显著降低了日志存储空间。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为基于并行流处理的ICT系统运行日志分析方法体系结构图。
图2为在线日志流解析方法流程图。
图3为基于并行流处理的ICT系统运行日志分析方法的模块组成图。
具体实施方式
以下结合附图对本发明作进一步说明,请参阅图1。图1给出了本发明基于并行流处理的ICT系统运行日志分析方法体系结构。由四部分组成:采集层、缓存层、处理层和存储层,下面分别介绍其组成部分。
(1)采集层
日志流采集层由Apache Flume实现,Flume是分布式日志采集系统,类似于ICT系统上日志收集的代理,可以从不同的ICT系统上收集大量日志数据并以流的方式发送到指定目的地。Flume由3个核心组件Source、Channel、Sink组成,分别负责日志数据的收集、缓存和发送。Flume会对ICT系统的不同终端进行侦听检测,Source将检测到的数据通过Channel管道,将收集的数据传输到Sink模块,Sink模块将数据进行标签化传输到Kafka集群。
(2)缓存层
日志流缓存层由分布式消息系统Kafka集群实现,可以对各个节点的数据流进行汇总。由于处理层的存储空间相对较小,如果直接将Flume采集到的数据输入处理层,将导致处理层系统崩溃,所以用Kafka作为采集层和处理层之间的日志数据缓存。在并行流日志处理过程中,Kafka集群在收到来自采集层的日志数据流后,将日志数据放入消息队列,当处理层需要进行数据处理时,Kafka集群才会将汇总的日志数据通过数据通道推送至处理层。
(3)处理层
处理层由Spark集群组成。在日志处理过程中,日志流进入处理层后,Spark的流处理组件Spark Streaming将日志流进行切片,一份切片数据可以视为RDD,这些RDD将转化为供Spark引擎使用的数据集。在进行分布式日志处理过程中,Spark引擎根据RDD之间的关系,形成一个DAG(有向无环图),DAG会提交给DAGScheduler,后者会把DAG划分相互依赖的多个Stage,然后将Stage转化为日志解析任务集合输入到TaskScheduler,TaskScheduler将日志解析任务向集群内的计算节点推送,完成并行分布式计算。
Zookeeper能够动态感知Kafka集群和Spark集群运行状态,为采集层和处理层提供集群配置、服务注册、数据一致性等服务,保证了整个日志处理流程能够稳定运行。
(4)存储层
存储层由存储密集型节点组成,本发明将日志处理结果存储在HBase数据库中。当处理层完成日志分析任务后,如果解析准确率达到期望值,则将解析结果即结构化日志和日志事件模板进行参数映射,然后压缩存储至HBase。
请参阅图2,图2是Spark工作节点内任务执行器进行的日志解析方法流程图。其中矩形表示实体,圆形表示计算函数,菱形为判断函数,矩形表示子任务结束后的结果实体,圆形和菱形表示一个阶段性子任务。
输入日志行为非结构化日志行;日志元数据为当前日志行的时间戳、事件级别、事件源、事件内容。公共模板集初始化为ICT系统进行日志解析前所发现的所有模板,各任务和各线程仅有只读权限;缓存模板集内含有ICT系统出现频率最高的一组日志事件模板;临时结构化日志集为结构化日志,其中单条日志为日志元数据加日志事件ID;临时模板集为执行器内各线程获取的日志事件模板;预处理阶段利用正则表达式提取并保存元数据,删除无效的标识符;缓存确认主要确认预处理后的日志事件是否与缓存模板集中某一模板匹配;预过滤阶段设置当前日志事件只与模板集中指定长度范围内的模板匹配;LCS阶段是当前日志事件与模板集中预过滤指定长度范围内的模板进行最长公共子序列匹配;后过滤阶段对LCS阶段匹配出的一组模板继续加以约束,过滤出符合指定约束的模板;选择最佳匹配即在后过滤阶段筛选出的模板中选择与输入日志事件相似度最高的模板;如果存在最佳匹配,则进入模板更新阶段,否则进入创建新模板阶段,其中前者将最佳模板更新为输入日志行的模板,后者直接将输入日志行的事件内容创建为新模板;定期合并阶段是执行器定期将各线程解析的模板合并,同时删除相同的模板。
请参阅图3,本发明方法由四个模块组成,分别为ICT系统运行日志流采集模块1、ICT系统运行日志流缓存模块2、ICT系统运行日志流处理模块3、ICT系统运行日志流存储模块4。
本发明提出的基于并行流处理的ICT系统运行日志分析方法,具体步骤如下:
步骤1:搭建基于RDMA的并行分布式日志流处理平台。
步骤2:用户启动Flume、Zookeeper、Kafka、Spark集群,将日志处理程序提交至Spark引擎。
步骤3:Flume将从ICT系统采集到的日志流输入Kafka集群,Kafka系统接受来自收集层的日志流后,将日志数据放入消息队列。
步骤4:Kafka将消息队列中的数据流推送至Spark集群,Spark Streaming接受数据流并将其分片。
步骤5:Spark引擎将日志处理任务分发到工作节点集群,工作节点内创建Container,同时启动执行器执行日志解析任务。
步骤6:工作节点完成日志解析后将结果返回至Spark主节点的任务调度器,任务调度器将日志解析结果汇总,并选出解析失败的日志,进行二次解析。
步骤7:如果日志解析的模板准确率满足期望值,则将解析日志压缩存储到存储层的数据仓库中,否则重新执行步骤2-6。
上述步骤中涉及三部分的内容:基于RDMA的分布式并行日志流处理平台、在线日志流解析方法、基于元数据映射的结构化日志压缩方法。
(1)基于RDMA的分布式并行日志流处理平台
针对Spark在处理日志流时需要迭代计算RDD,提取出日志模板,虽然RRD一直缓存在内存缓冲区中,但内核态内存数据拷贝到用户态内存的开销仍然存在。此外,Spark的shuffle操作涉及集群中多个节点间的数据传输,带来大量I/O消耗,这也是Spark的性能瓶颈。在日志解析过程中需要进行模板合并存储,涉及节点之间的数据传输,为了降低Spark集群节点间的数据传输时延,提高Spark性能,本发明建立了基于RDMA的并行分布式日志处理平台。当数据流在Spark集群中传输时,数据流直接从本地节点内存传输到目的节点内存,不涉及到系统内核,没有额外的数据移动和复制,显著减少了I/O消耗。
(2)在线日志流解析方法
在线日志流解析需要把输入的日志行与模板库进行匹配,然后解析出日志事件,如果匹配失败,需要创建新的模板。如果输入的日志行与模板库一对一匹配,对于含有几十万甚至更多日志事件模板的ICT系统来说,时间复杂度无疑是巨大的。
本发明提出了一种在线日志流解析方法,解析引擎维护着日志流解析的主程序,由于日志模板提取是计算密集型程序,所以解析引擎将日志提取任务部署在Spark集群的工作节点。此方法设置了缓存模板集,其包括日志事件出现频率最高的一组日志模板。如果预处理后的日志行命中了缓存模板库,则直接将该日志行的模板存入临时模板集。同时,结合该日志的元数据和模板结构化存储到临时结构化数据集中。如果未命中,需要进行预过滤、序列匹配、后过滤等操作。此方法准确性和鲁棒性强,面对小批量日志流和大批量日志流,复杂结构的日志行,仍然能充分发挥并行计算的优势。
(3)基于元数据映射的结构化日志压缩方法
为了便于未来跟踪和分析ICT系统问题,需要对原始日志进行归档存储,而原始日志的归档需要消耗大量的计算和存储资源。本发明提出的方法将日志行的日期、事件级别、事件模板等元数据顺序编码为32位无符号整数,映射关系字典存储。字典的key为元数据编码值,value为元数据值。编码映射后,直接利用现有压缩工具压缩存储至存储层的数据仓库中。
下面分别对上述实施步骤进行详细说明。
(1)步骤1
为了体现出RDMA技术的优势,同时尽量节约硬件成本,本发明中的服务器集群通过网络协议RoCE v2进行通信,其中RoCE v2支持在以太网上实现RDMA技术,集群内所有服务器的网卡可支持RoCE v2,并且是此网卡是可热插拔的。本发明通过Apache Flume实现日志流采集,Apache Kafka实现日志流缓存,Apache Spark Streaming实现日志流分析处理,HBase实现结构化日志和日志模板存储。其中Kafka和Spark通过Zookeeper实现集群协调管理,YARN实现集群资源管理。正式日志解析处理前,需要配置好上述所有模块。
(2)步骤2
用户分别启动Flume、Zookeeper、Kafka、Spark集群,将日志处理程序提交至Spark引擎,开始日志解析流程。
(3)步骤3
Flume是日志采集的代理,其对ICT系统的不同端口进行侦听检测,当有日志事件时,Flume的Source组件是数据生产者,接收ICT系统传送来的日志流,并把它传输至Flume的Channel组件中。Flume的Sink组件是Channel组件中日志数据的消费者,Channel管道将收集到的日志数据传输到Sink模块。Sink模块将日志数据流进行标签化,作为Kafka系统的生产者传入Kafka集群。
Kafka集群将来自采集层的日志数据流进行划分,形成不同的日志数据分区,将不同的分区调度到不同的节点上。同时,为了防止节点故障而导致分区数据丢失,每一个分区存在多个副本。
(4)步骤4
用户提交的日志处理程序将请求数据流的信息推送至Kafka集群的主节点。Kafka收到请求信息后将Spark视为日志数据消费者,然后将消息队列中收集到的数据流推送至Spark集群。Spark Streaming对接收到的日志数据流根据预设的时间窗口进行切片,每一切片由RDD序列组成。
(5)步骤5
Spark引擎根据应用程序中所描述的RDD间的依赖关系建立DAG图。DAG会提交给DAGScheduler,后者会把DAG划分为相互依赖的多个Stage,然后将Stage转化为日志解析任务集输入到TaskScheduler,TaskScheduler将日志解析任务向集群内的工作节点推送,进行分布式并行计算。
同时,为了提升日志解析程序的计算效率,Spark主节点内的资源管理器要求工作节点内的节点管理器同时开启多个Container(工作节点内的资源抽象),执行器使用Container的资源进行日志解析任务。为了提高CPU利用率,执行器会开启多线程,同时完成多个日志行的解析任务,并将解析结果返回至Spark引擎的DAGScheduler。
在工作节点的Container内,单个执行器执行日志解析任务流程如下:
输入日志行为非结构化日志行,然后利用正则表达式进行预处理,提取出该日志行的元数据(时间戳、事件级别、事件源、事件内容),保存时间戳、事件级别、事件源这三个元数据,事件内容(由标识符组成)继续进行预处理。将事件内容的中的明显变量替换为通配符‘*’,删去字符长度大于50的标识符(一般认为这种字符不属于模板标识符)。
日志事件与缓存模板集中的模板匹配一对一匹配,如果匹配成功,直接将匹配成功的模板更新为当前日志行模板,否则进入预过滤阶段。预过滤阶段设置当前日志事件只与模板集中指定长度范围内的模板进行LCS(最长公共子序列)匹配,该长度范围通过事件内容长度与模板长度差的绝对值的大小指定,其中长度是指除通配符外的标识符个数。
LCS阶段中当前日志事件与公共模板集中指定长度范围内的模板进行最长公共子序列匹配,序列中的单个元素指除通配符外的标识符。LCS将匹配出一组与当前日至事件相似的模板。
当日志事件与公共模板集进行LCS匹配时,如果遇到不匹配的单词,会将日志事件中的该单词替换为通配符“*”,所以会造成日志事件匹配的模板长度变小。如果匹配上长度过小的模板,日志事件就容易失去语义完整性,导致匹配错误。后过滤阶段对LCS阶段匹配出的一组模板加以约束,继续缩小日志事件与这一组模板匹配的范围,过滤掉不符合指定约束的模板。这一约束是为了防止日志因匹配的模板长度过小而导致失去语义完整性。
然后进入选择最佳匹配模板阶段,在后过滤阶段筛选出的模板中选择出与输入日志事件相似度最高的模板,选择过程为逐个标识符比较。如果当前日志事件存在最佳匹配,则进入模板更新阶段,否则进入创建新模板阶段,其中前者将最佳模板更新为当前日志事件的模板,同时更新后的模板写入临时模板集,后者直接为当前日志事件内容创建为新模板。每解析出一条日志事件模板,都需要在存入临时模板集后,将该日志事件模板与其元数据组成结构化日志数据存入临时结构化日志集。
创建新模板后进入定期合并阶段,此阶段为执行器内各线程定期将新创建的模板合并至临时模板集,同时删除相同的模板。根据ICT系统运行情况的规律性,当前时间戳的日志事件极有可能在下一时间段仍然发生。所以将新创建的模板写入缓存模板集,以提高日志事件模板命中率。
本发明有三个级别的定期合并,第一级别为执行器内各线程解析的日志事件模板进行合并,合并至Container中的临时模板集,删去相同的模板。第二级别为合并工作节点内各Container中的临时模板集,同样删去相同的模板。第三级别为主节点Spark引擎内的DAGScheduler将集群中各工作节点的临时模板集合并,同样删去相同模板。
(6)步骤6
所有工作节点完成日志解析后将临时模板集和结构化日志集返回至Spark主节点,DAGScheduler将集群中各工作节点的临时模板集合并,同样删去相同模板,结构化日志集按时间戳排序。如果解析的日志模板中有变量未被通配符‘*’替代,则认为此模板解析错误。将所有错误解析的模板与公共模板集进行LCS匹配,选择出最佳的模板。同时,更新结构化日志集中模板有变动的日志行。
(7)步骤7
如果日志解析的模板准确率满足预设期望值,则将解析日志压缩存储到存储层的数据仓库中,否则重新执行步骤2-6。
在日志压缩过程中,Spark主节点中的压缩应用程序将结构化日志集中所有元数据进行编码,其中时间戳根据年份和时钟编码,其余元数据按单词编码。编码为32位无符号整数,字典存储,其中key为字段值编码,value为字段值。压缩完成后输入Hbase数据库进行存储。
Claims (2)
1.一种基于并行流处理的ICT系统运行日志分析方法,其特征在于该方法包括如下步骤:
步骤1:搭建基于RDMA的分布式并行日志流处理平台;
服务器集群通过网络协议RoCE v2进行通信,其中RoCE v2支持在以太网上实现RDMA技术,集群内所有服务器的网卡可支持RoCE v2,并且是此网卡是可热插拔的;
步骤2:用户启动Flume、Zookeeper、Kafka、Spark集群,将日志处理程序提交至Spark引擎;
步骤3:Flume将从ICT系统采集到的日志流输入Kafka集群,Kafka集群接受来自采集层的日志流后,将日志数据放入消息队列;
步骤4:Kafka将消息队列中的数据流推送至Spark集群,Spark Streaming接受数据流并将其分片;
步骤5:Spark引擎将日志处理任务分发到工作节点集群,工作节点内创建Container,同时启动执行器执行日志解析任务;
为了提高CPU利用率,执行器开启多线程,同时完成多个日志行的解析任务;在所述的解析任务设置了缓存模板集,经过两次过滤和结果汇总,筛错重解析;
步骤6:工作节点完成日志解析后将结果返回至Spark主节点的任务调度器,任务调度器将日志解析结果汇总,并选出解析失败的日志,进行二次解析;
DAGScheduler将集群中各工作节点的临时模板集合并,并删去相同模板,结构化日志集按时间戳排序;将所有错误解析的模板与公共模板集进行LCS匹配,选择出最佳的模板;同时,更新结构化日志集中模板有变动的日志行;
步骤7:如果日志解析的模板准确率满足期望值,则将解析日志压缩存储到存储层的数据仓库中,否则重新执行步骤2-6;
日志解析结果汇总后,通过基于元数据映射的结构化日志压缩方法,将所有元数据顺序编码,映射关系由 字典存储,将元数据编码映射后直接压缩,用于降低日志存储空间;
其中步骤5中所述的缓存模板集中包括了日志事件出现频率最高的一组日志模板;如果预处理后的日志行命中了缓存模板集,则直接将该日志行的模板存入临时模板集;同时,结合该日志的元数据和模板结构化存储到临时结构化数据集中;如果未命中,则进行预过滤、序列匹配、后过滤操作;所述的预处理是指采用正则表达式进行预处理。
2.根据权利要求1所述的一种基于并行流处理的ICT系统运行日志分析方法,其特征在于:步骤7中通过基于元数据映射的结构化日志压缩方法是将日志行元数据顺序编码为32位无符号整数,映射关系由字典存储;字典的key为元数据编码值,value为元数据值;编码映射后,直接压缩存储至存储层的数据仓库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010767753.0A CN111949633B (zh) | 2020-08-03 | 2020-08-03 | 一种基于并行流处理的ict系统运行日志分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010767753.0A CN111949633B (zh) | 2020-08-03 | 2020-08-03 | 一种基于并行流处理的ict系统运行日志分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949633A CN111949633A (zh) | 2020-11-17 |
CN111949633B true CN111949633B (zh) | 2021-11-30 |
Family
ID=73339204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010767753.0A Active CN111949633B (zh) | 2020-08-03 | 2020-08-03 | 一种基于并行流处理的ict系统运行日志分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949633B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11392480B2 (en) * | 2019-12-19 | 2022-07-19 | Jpmorgan Chase Bank, N.A. | System and method for implementing a log file processing module |
CN112632020B (zh) * | 2020-12-25 | 2022-03-18 | 中国电子科技集团公司第三十研究所 | 基于spark大数据平台的日志信息类型提取方法、挖掘方法 |
CN113411382B (zh) * | 2021-06-07 | 2022-07-12 | 广发银行股份有限公司 | 一种基于网络设备f5的实时数据采集系统及方法 |
CN113342748B (zh) * | 2021-07-05 | 2024-07-19 | 北京腾云天下科技有限公司 | 日志数据处理方法和装置、分布式计算系统以及存储介质 |
CN113626207B (zh) * | 2021-10-12 | 2022-03-08 | 苍穹数码技术股份有限公司 | 地图数据处理方法、装置、设备及存储介质 |
CN114168334A (zh) * | 2021-12-09 | 2022-03-11 | 南华大学 | 一种基于Spark框架的Executor分配方法、装置、设备及存储介质 |
CN114363042B (zh) * | 2021-12-30 | 2023-01-20 | 爱集微咨询(厦门)有限公司 | 日志分析方法、装置、设备及可读存储介质 |
CN115599747B (zh) * | 2022-04-22 | 2023-06-06 | 北京志凌海纳科技有限公司 | 一种分布式存储系统的元数据同步方法、系统及设备 |
CN114969083B (zh) * | 2022-06-24 | 2024-06-14 | 在线途游(北京)科技有限公司 | 一种实时数据分析方法及系统 |
CN116991333B (zh) * | 2023-09-25 | 2024-01-26 | 苏州元脑智能科技有限公司 | 分布式数据存储方法、装置、电子设备及存储介质 |
CN117930737A (zh) * | 2024-01-11 | 2024-04-26 | 深圳市互联兴邦科技有限公司 | 一种工业生产设备预警的可视化监测方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110691062A (zh) * | 2018-07-06 | 2020-01-14 | 浙江大学 | 一种数据写入方法、装置及其设备 |
CN110690984A (zh) * | 2018-07-05 | 2020-01-14 | 上海宝信软件股份有限公司 | 基于Spark的大数据网络日志采集分析和预警的方法、系统 |
CN111400268A (zh) * | 2020-03-13 | 2020-07-10 | 清华大学 | 一种分布式持久性内存事务系统的日志管理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10157108B2 (en) * | 2014-05-27 | 2018-12-18 | International Business Machines Corporation | Multi-way, zero-copy, passive transaction log collection in distributed transaction systems |
CN111209258A (zh) * | 2019-12-31 | 2020-05-29 | 航天信息股份有限公司 | 税务端系统日志实时分析方法、设备、介质及系统 |
-
2020
- 2020-08-03 CN CN202010767753.0A patent/CN111949633B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110690984A (zh) * | 2018-07-05 | 2020-01-14 | 上海宝信软件股份有限公司 | 基于Spark的大数据网络日志采集分析和预警的方法、系统 |
CN110691062A (zh) * | 2018-07-06 | 2020-01-14 | 浙江大学 | 一种数据写入方法、装置及其设备 |
CN111400268A (zh) * | 2020-03-13 | 2020-07-10 | 清华大学 | 一种分布式持久性内存事务系统的日志管理方法 |
Non-Patent Citations (2)
Title |
---|
"High-performance design of apache spark with RDMA and its benefits on various workloads";Xiaoyi Lu等;《2016 IEEE International Conference on Big Data》;20161208;第253-262页 * |
"基于RDMA技术的Spark系统Shuffle性能优化";于汝杰;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111949633A (zh) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111949633B (zh) | 一种基于并行流处理的ict系统运行日志分析方法 | |
US11275743B2 (en) | System and method for analyzing data records | |
CN110209726B (zh) | 分布式数据库集群系统、数据同步方法及存储介质 | |
US11455217B2 (en) | Transaction consistency query support for replicated data from recovery log to external data stores | |
Ananthanarayanan et al. | Photon: Fault-tolerant and scalable joining of continuous data streams | |
US10810103B2 (en) | Method and system for identifying event-message transactions | |
CN105426292B (zh) | 一种游戏日志实时处理系统及方法 | |
CN108616419B (zh) | 一种基于Docker的数据包采集分析系统及其方法 | |
CN103167004A (zh) | 云平台主机系统故障修复方法及云平台前端控制服务器 | |
CN110895488B (zh) | 任务调度方法及装置 | |
Bhatotia et al. | Slider: Incremental sliding-window computations for large-scale data analysis | |
CN108737549A (zh) | 一种大数据量的日志分析方法及装置 | |
CN116009428A (zh) | 基于流式计算引擎的工业数据监控系统和方法、介质 | |
CN112148578A (zh) | 基于机器学习的it故障缺陷预测方法 | |
CN110737710A (zh) | 分布式数据自动结构化入库方法及系统 | |
EP3789882B1 (en) | Automatic configuration of logging infrastructure for software deployments using source code | |
CN116010452A (zh) | 基于流式计算引擎的工业数据处理系统和方法、介质 | |
Chothia et al. | Online reconstruction of structural information from datacenter logs | |
CN112988897A (zh) | 系统升级场景下的数据双向同步方法及装置 | |
CN115391429A (zh) | 基于大数据云计算的时序数据处理方法及装置 | |
Gankevich et al. | Novel approaches for distributing workload on commodity computer systems | |
Kukreti et al. | CloneHadoop: Process Cloning to Reduce Hadoop's Long Tail | |
Qiu et al. | Rta: Real time actionable events detection as a service | |
CN117389908B (zh) | 接口自动化测试用例的依赖关系分析方法、系统及介质 | |
Negru et al. | Analysis of data integrity and storage quality of a distributed storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |