一种日志分析方法及装置
技术领域
本发明涉及电子信息技术领域,尤其涉及一种日志分析方法及装置。
背景技术
在业务系统的日常运行中,每天产生大量业务日志,而业务日志包含了系统中几乎所有业务环节的运行情况。对于技术专家诊断系统故障或是业务异常,业务日志起到了至关重要的作用。
目前行业内已经出现了一些自动分析业务异常的方案,但是自动分析的准确度和灵活性,远不如技术专家人工诊断。且目前的大部分自动分析业务异常的方案,主要采用机器学习和训练算法,其依然需要使用海量的已完成人工诊断的诊断数据作为样本集,并且一旦业务系统出现变动或是采用了新的业务系统,就需要重新准备人工诊断的诊断数据作为样本集。因此在较长的一段时间内,依然需要组织足够的且经验丰富的技术人员对业务系统进行人工运维。例如:目前通常的业务系统的健康状况监测方式主要有一下流程:客服反映异常订单,然后在历史数据中查询异常订单,定位问题并解决;技术人员通过查询某几笔订单来估计系统耗时、瓶颈等系统运行状况以及当天系统运行情况;技术人员通过查看几笔订单来了解某天的异常和失败原因。
然而,随着业务链条的日趋复杂,系统在完成一系列业务过程时,往往会产生海量的业务日志,对于业务日志的分析工作也日趋繁琐,但是技术人员的工作能力是有限的,因此人力不足成为运维团队中的普遍现象,运营商需要耗费更多的人工成本雇佣技术人员参与业务系统的运维工作。
发明内容
本发明的实施例提供一种日志分析方法及装置,能够极大地节省业务系统的运维成本。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供一种日志分析方法,包括:
采集业务系统的日志数据,所述业务系统用于运行包括至少两个业务环节的业务过程,所述日志数据包括用于表示每一个环节上业务的执行状态的信息;
根据所述日志数据,生成业务路径,其中,每一条业务路径由至少两个节点和节点之间的连线组成,每一个节点对应一个业务环节;
对所生成的业务路径设置标识,其中,一条业务路径的标识用于表示这一条业务路径对应的业务属性;
对所生成的业务路径进行统计计算并得到统计结果,并根据所述统计结果得到异常的业务路径,所述统计结果包括具有相同标识的业务路径的数量。
结合第一方面,在第一方面的第一种可能的实现方式中,在每一条业务路径中,各个节点相互串联;每一个业务路径指向一个路径终点,所述路径终点包括:业务成功、业务失败和业务异常。
结合第一方面,在第一方面的第二种可能的实现方式中,还包括:按照所生成的业务路径,聚类所述日志数据并得到对应各个业务路径的日志子集,其中,对应于一个业务路径的日志子集包括这该业务路径中的各环节上业务的执行状态的信息。
结合第一方面或第一方面的第一至二种可能的实现方式,在第三种可能的实现方式中,还包括:
在根据所述统计结果得到异常的业务路径后,提取正常的业务路径作为基准路径;
在每一个检测周期内:根据当前所述业务系统最新的日志数据刷新业务路径;从刷新后的业务路径中筛选出与所述基准路径存在差异的业务路径。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:
生成具有相同标识的业务路径的树状图,并将所述树状图和所述统计结果输出至可视化界面;
所述可视化界面划分为指定数量的区域,在一个区域中包括:一个业务路径指向的路径终点和这一个业务路径的标识的名称;至少还包括:这一个业务路径的树状图的显示页面的连接、这一个业务路径的对应的日志子集的显示页面的连接。
第二方面,本发明的实施例提供一种日志分析装置,包括:
采集模块,用于采集业务系统的日志数据,所述业务系统用于运行包括至少两个业务环节的业务过程,所述日志数据包括用于表示每一个环节上业务的执行状态的信息;
路径生成模块,用于根据所述日志数据,生成业务路径,其中,每一条业务路径由至少两个节点和节点之间的连线组成,每一个节点对应一个业务环节;
路径标识模块,用于对所生成的业务路径设置标识,其中,一条业务路径的标识用于表示这一条业务路径对应的业务属性;
统计模块,用于对所生成的业务路径进行统计计算并得到统计结果,并根据所述统计结果得到异常的业务路径,所述统计结果包括具有相同标识的业务路径的数量。
结合第二方面,在第二方面的第一种可能的实现方式中,在每一条业务路径中,各个节点相互串联;每一个业务路径指向一个路径终点,所述路径终点包括:业务成功、业务失败和业务异常。
结合第二方面,在第二方面的第二种可能的实现方式中,还包括:数据聚类模块,用于按照所生成的业务路径,聚类所述日志数据并得到对应各个业务路径的日志子集,其中,对应于一个业务路径的日志子集包括这该业务路径中的各环节上业务的执行状态的信息。
结合第二方面或第二方面的第一至二种可能的实现方式,在第三种可能的实现方式中,还包括:
差异分析模块,用于在根据所述统计结果得到异常的业务路径后,提取正常的业务路径作为基准路径;
并在每一个检测周期内:根据当前所述业务系统最新的日志数据刷新业务路径;从刷新后的业务路径中筛选出与所述基准路径存在差异的业务路径。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,还包括:可视化输出模块,用于生成具有相同标识的业务路径的树状图,并将所述树状图和所述统计结果输出至可视化界面;所述可视化界面划分为指定数量的区域,在一个区域中包括:一个业务路径指向的路径终点和这一个业务路径的标识的名称;至少还包括:这一个业务路径的树状图的显示页面的连接、这一个业务路径的对应的日志子集的显示页面的连接。
本发明实施例提供的日志分析方法及装置,能够根据日志数据,生成业务路径,并对对所生成的业务路径进行统计计算并得到统计结果,根据统计结果得到异常的业务路径,从而完成异常路径的识别,并且还通过可视化的树状图显示基于日志数据生成的业务路径。相对于现有技术,本发明实施例通过基于日志生成可视化的业务路径及树状图,并通过树状图中的路径区分“异常”和“正常”的业务路径,使得技术人员可以借助可视化的树状图,快速找到需要判定的业务路径并判定异常,从而提高人工运维过程中,基于日志数据判定业务异常的效率,尤其是对于会产生海量的业务日志的业务系统,能够极大地节省业务系统的运维成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的服务器的架构示意图;
图2为本发明实施例提供的日志分析方法的流程图;
图3、图4a、图4b、图4c为本发明实施例提供的具体实例示意图;
图5为本发明实施例提供的日志分析装置的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/ 或”包括一个或更多个相关联的列出项的任一单元和全部组合。本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
本发明实施例提供的方法流程,具体可以运行在一种图1所示服务器上。服务器包括输入单元、处理器单元、输出单元、通信单元、存储单元、外设单元等组件。这些组件通过一条或多条总线进行通信。本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施方式中,服务器可以是日志管理中心用于管理日志数据的服务器,也可以是技术人员使用的工作站设备。具体的:
输入单元用于实现用户与服务器的交互和/或信息输入到服务器中。例如,输入单元可以接收用户输入的数字或字符信息,以产生与用户设置或功能控制有关的信号输入。在本发明具体实施方式中,输入单元可以是触控面板,也可以是其他人机交互界面,例如实体输入键、鼠标或是操纵杆等。
处理器单元为服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储单元内的软件程序和/或模块,以及调用存储在存储单元内的数据,以执行服务器的各种功能和/或处理数据。处理器单元可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器单元可以仅包括中央处理器(Central Processing Unit,简称CPU),也可以是GPU、数字信号处理器(Digital SignalProcessor,简称DSP)、及通信单元中的控制芯片(例如基带芯片)的组合。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元用于建立通信信道,使服务器通过通信信道以连接至远程设备,例如技术人员的终端设备,并与远程设备进行数据交互,例如技术人员的终端设备可以向服务器发送请求消息,用于触发服务器开始执行本实施例提供的方法流程。
输出单元包括但不限于影像输出单元和声音输出单元。影像输出单元用于输出文字、图片和/或视频。影像输出单元可包括显示面板,例如采用LCD(Liquid CrystalDisplay,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)、场发射显示器(field emission display,简称FED)等形式来配置的显示面板。
存储单元可用于存储软件程序以及模块,处理单元通过运行存储在存储单元的软件程序以及模块,从而执行服务器的各种功能应用以及实现数据处理。存储单元主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序,比如日志管理程序,基于本实施例提供的日志分析装置编写的日志分析程序等。在本发明具体实施方式中,存储单元可以包括易失性存储器,例如非挥发性动态随机存取内存(Nonvolatile Random Access Memory,简称NVRAM)、相变化随机存取内存(Phase ChangeRAM,简称 PRAM)、磁阻式随机存取内存(Magetoresistive RAM,简称MRAM)等,还可以包括非易失性存储器,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM)、闪存器件,例如反或闪存(NOR flash memory)或是反及闪存(NAND flash memory)。非易失存储器储存处理单元所执行的操作系统及应用程序。处理单元从非易失存储器加载运行程序与数据到内存并将数字内容储存于大量储存装置中。
电源用于给服务器的不同部件进行供电以维持其运行,包括直接向服务器供电的外接电源,例如AC适配器等。在本发明的一些实施方式中,电源还可以作更为广泛的定义,例如还可以包括电源管理系统、充电系统、电源故障检测电路、电源转换器或逆变器、电源状态指示器(如发光二极管),以及与服务器的电能生成、管理及分布相关联的其他任何组件。
进一步的,也可以采用由多台服务器设备组成的服务器组来运行本发明实施例提供的方法流程。所使用的服务器组可以基于现有的数据处理中心所常用的数据处理系统中的服务器组的架构。对于运算负载较大的场景,还可以采用分布式运算的方式执行本发明实施例提供的方法流程。
本发明实施例提供一种日志分析方法,如图2所示,包括:
S1、采集业务系统的日志数据。
其中,所述业务系统用于运行包括至少两个业务环节的业务过程,所述日志数据包括用于表示每一个环节上业务的执行状态的信息。
在本实施例中,可以通过基于分布式设计的方案进行日志数据的采集,例如:可以由一个master负责控制整个日志采集流程,多个worker完成分配的任务。其中,采集过程具体可以划分为:一个map和多个reduce过程,即由多个worker 进行分布式计算,得出各自的map,map上承担一条业务路径的各个环节,然后由多个worker完成reduce步骤,最终生成所有的业务路径,比如图3所示的,由服务器组中的一个服务器作为分布式计算中的master,多个服务器作为 worker,master与各个worker之间建立Redi s通信。master用于向worker分配计算任务并监测各个计算任务(比如map或reduce)的进度,master具体可以通过心跳检测各个worker的工作状态。
S2、根据所述日志数据,生成业务路径。
其中,每一条业务路径(在本实施例中也可称为业务模型)由至少两个节点和节点之间的连线组成,每一个节点对应一个业务环节。例如:如图4a所示的,服务器对于快捷支付业务的执行,具体包括发送快捷支付请求、支付成功消息、支付失败消息、发送支付结束消息、返回扣款订单处理结果、加载广告或其他页面、更新扣款订单为失败、更新扣款订单为异常、更新订单状态等多个环节。则按照各个环节执行的先后顺序可以生成如图-4a 所示的树状图,其中按照业务流程的执行,可以得到业务路径1、业务路径2、业务路径3、业务路径4 至少4条业务路径。
S3、对所生成的业务路径设置标识。
其中,一条业务路径的标识用于表示这一条业务路径对应的业务属性。在本实施例中,可以通过人工标注或是系统根据训练得到的规则集自动进行标注业务路径的实际业务属性。举例来说,业务属性包括但不限于:支付状态(成功、失败、异常)及其支付方式(快捷、网银、零钱宝等等)和是否是异常分支(用于采集异常原因)。对于树状图中每一条路径的标注,从而标明每一个模型所代表的业务的含义。
S4、对所生成的业务路径进行统计计算并得到统计结果,并根据所述统计结果得到异常的业务路径。
其中,统计结果包括具有相同标识的业务路径的数量。
本发明实施例提供的日志分析方法,能够根据日志数据,生成业务路径,并对对所生成的业务路径进行统计计算并得到统计结果,根据统计结果得到异常的业务路径,从而完成异常路径的识别,并且还通过可视化的树状图显示基于日志数据生成的业务路径。相对于现有技术,本发明实施例通过基于日志生成可视化的业务路径及树状图,并通过树状图中的路径区分“异常”和“正常”的业务路径,使得技术人员可以借助可视化的树状图快速找到需要判定的业务路径并判定异常,从而提高人工运维过程中,基于日志数据判定业务异常的效率,尤其是对于会产生海量的业务日志的业务系统,能够极大地节省人工成本。
在本实施例中,在每一条业务路径中,各个节点相互串联。且每一个业务路径指向一个路径终点,所述路径终点包括:业务成功、业务失败和业务异常。例如:业务系统在先期运行的一段时间内生成的日志,采集业务系统的日志数据并生成业务路径,业务路径可以组成如图4b所示的树状图,在树状图中,每一条路径即为一个业务模型,代表一个系统出现过的业务场景,比如支付业务中的一种支付行为。
在本实施例中,在采集业务系统的日志数据并生成业务路径后,还可以根据业务路径对日志数据进行聚类管理,以便于技术人员根据业务路径的查找日志数据,节省查询所耗时间并减少对于存储日志数据的设备的读写次数。即本实施例还可以包括:按照所生成的业务路径,聚类所述日志数据并得到对应各个业务路径的日志子集。其中,对应于一个业务路径的日志子集包括这该业务路径中的各环节上业务的执行状态的信息。
为了进一步减少技术人员在运维过程中进行数据查询或是进行数据统计的时间,在本实施例中还提供一种可视化界面,用于显示业务路径以及与业务路径相关的信息,从而进一步简化了技术人员的运维操作。具体的,在本实施例中还包括:
生成具有相同标识的业务路径的树状图,并将所述树状图和所述统计结果输出至可视化界面。
所述可视化界面划分为指定数量的区域,在一个区域中包括:一个业务路径指向的路径终点和这一个业务路径的标识的名称。至少还包括:这一个业务路径的树状图的显示页面的连接、这一个业务路径的对应的日志子集的显示页面的连接。例如:如图4c所示的,可以在可视化界面中通过表格显示业务路径和与业务路径相关的信息,比如:在表格的每一行显示一种业务路径及其相关的信息,其中,第一列显示业务路径的标识的名称;第二列显示业务路径的路径终点(成功、失败或异常的结果);第三列显示基于所有的日志数据得到的该相同的业务路径的总数,由于在正常运行的业务系统中,尤其是在业务系统运行的初始阶段,路径终点指向“成功”的统计总数远大于路径终点指向“失败或异常”的路径,在可视化显示具有相同标识的业务路径的数量,以便于技术人员快速分辨出失败或异常的业务路径;第四列显示表格中该行记录的创建时间,并且还可以在表格中显示业务路径的树状图的显示页面的连接,以及业务路径的对应的日志子集的显示页面的连接,比如提供标注“日志详情”的连接按钮。需要说明的是,如图4c所示的仅为本实施例一种可能的可视化界面,在本实施例的实际应用中可以根据具体的应用场景或是技术人员的运维需求,基于本实施例的方法流程设计不同类型的界面,以便于简化技术人员的运维操作。
为了便于技术人员快速查找结果为异常或失败的业务路径,在本实施例中还包括以下过程:
在根据所述统计结果得到异常的业务路径后,提取正常的业务路径作为基准路径。
并在每一个检测周期内:根据当前所述业务系统最新的日志数据刷新业务路径。从刷新后的业务路径中筛选出与所述基准路径存在差异的业务路径。
其中,在业务系统的运行过程中,可以实时自动绘制树状图,并对比由基准路径组成的基础树状图,从而快速得到相对于基础树状图所不同的业务路径,以便于技术人员借助可视化的树状图快速找到需要判定的业务路径。并且,在刷新业务路径后,对于与所述基准路径存在差异的业务路径,可以通过人工判定的业务模型是否正常,并标注业务路径。服务器同时更新基础树状图,从而快速从日志数据中聚类“异常”和“正常”的业务模型,并将刷新后的业务路径及业务路径的相关信息刷新至可视化界面中。从而进一步减少技术人员在运维过程中进行数据查询或是进行数据统计的时间。
本发明实施例还提供一种如图5所示的日志分析装置,可以运行在如图1所示的服务器,或者服务器组中。该日志分析装置包括:
采集模块,用于采集业务系统的日志数据,所述业务系统用于运行包括至少两个业务环节的业务过程,所述日志数据包括用于表示每一个环节上业务的执行状态的信息。
路径生成模块,用于根据所述日志数据,生成业务路径,其中,每一条业务路径由至少两个节点和节点之间的连线组成,每一个节点对应一个业务环节。
路径标识模块,用于对所生成的业务路径设置标识,其中,一条业务路径的标识用于表示这一条业务路径对应的业务属性。
统计模块,用于对所生成的业务路径进行统计计算并得到统计结果,并根据所述统计结果得到异常的业务路径,所述统计结果包括具有相同标识的业务路径的数量。
其中,在每一条业务路径中,各个节点相互串联。每一个业务路径指向一个路径终点,所述路径终点包括:业务成功、业务失败和业务异常。
在本实施例中,还包括:数据聚类模块,用于按照所生成的业务路径,聚类所述日志数据并得到对应各个业务路径的日志子集,其中,对应于一个业务路径的日志子集包括这该业务路径中的各环节上业务的执行状态的信息。
在本实施例中,还包括:差异分析模块,用于在根据所述统计结果得到异常的业务路径后,提取正常的业务路径作为基准路径。并在每一个检测周期内:根据当前所述业务系统最新的日志数据刷新业务路径。从刷新后的业务路径中筛选出与所述基准路径存在差异的业务路径。
在本实施例中,还包括:可视化输出模块,用于生成具有相同标识的业务路径的树状图,并将所述树状图和所述统计结果输出至可视化界面。所述可视化界面划分为指定数量的区域,在一个区域中包括:一个业务路径指向的路径终点和这一个业务路径的标识的名称。至少还包括:这一个业务路径的树状图的显示页面的连接、这一个业务路径的对应的日志子集的显示页面的连接。
本发明实施例提供的日志分析装置,能够根据日志数据,生成业务路径,并对对所生成的业务路径进行统计计算并得到统计结果,根据统计结果得到异常的业务路径,从而完成异常路径的识别,并且还通过可视化的树状图显示基于日志数据生成的业务路径。相对于现有技术,本发明实施例通过基于日志生成可视化的业务路径及树状图,并通过树状图中的路径区分“异常”和“正常”的业务路径,使得技术人员可以借助可视化的树状图快速找到需要判定的业务路径并判定异常,从而提高人工运维过程中,基于日志数据判定业务异常的效率,尤其是对于会产生海量的业务日志的业务系统,能够极大地节省人工成本。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。