日志分析方法、装置、设备及存储介质与流程
未命名
09-24
阅读:77
评论:0
1.本公开涉及但不限于计算机技术领域,尤其涉及一种日志分析方法、装置、设备及存储介质。
背景技术:
2.目前,工单分析系统多用于流程把控,实际操作仍需要大量操作人员介入分析。但不同的操作人员具有不同的标准,会引起工单误转、根因的关键信息定位不准确、重复提单等现象,从而造成处理流程慢、效率低、无效工作量大和客户满意度低等情况。
技术实现要素:
3.有鉴于此,本公开实施例至少提供一种日志分析方法、装置、设备及存储介质。
4.本公开实施例的技术方案是这样实现的:
5.一方面,本公开实施例提供一种日志分析方法,包括:响应于针对待分析工单的分析请求,获取生成所述待分析工单的调用链路的跟踪标识;其中,所述调用链路用于表征针对所述待分析工单调用的至少两层服务的路径;基于所述跟踪标识,从每一层所述服务中分别获取所述调用链路关联的实时日志数据和离线日志数据;分别对所述实时日志数据和所述离线日志数据进行分析,得到所述待分析工单的分析结果。
6.另一方面,本公开实施例提供一种日志分析装置,包括:第一获取模块,用于响应于针对待分析工单的分析请求,获取生成所述待分析工单的调用链路的跟踪标识;其中,所述调用链路用于表征针对所述待分析工单调用的至少两层服务的路径;第二获取模块,用于基于所述跟踪标识,从每一层所述服务中分别获取所述调用链路关联的实时日志数据和离线日志数据;分析模块,用于分别对所述实时日志数据和所述离线日志数据进行分析,得到所述待分析工单的分析结果。
7.再一方面,本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
8.又一方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
9.又一方面,本公开实施例提供一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算机设备中运行时,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
10.又一方面,本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。
11.相比于相关技术中,针对待分析工单调用的服务是独立的,只能获取单个服务中的日志数据用于分析。本公开实施例中,首先,通过响应于针对待分析工单的分析请求,获
取生成待分析工单的调用链路的跟踪标识;其中,调用链路用于表征针对待分析工单调用的至少两层服务的路径。这样,可以准确快速地确定针对待分析工单调用的所有服务。其次,基于跟踪标识,从每一层服务中分别获取调用链路关联的实时日志数据和离线日志数据。这样,可以准确快速地获取待分析工单关联的所有类型的日志数据。最后,分别对实时日志数据和离线日志数据进行分析,可以简单准确地得到待分析工单的分析结果,有助于简化日志分析流程,减少用户工作量,提高日志分析的准确率和效率等。
12.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
附图说明
13.此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
14.图1为本公开实施例提供的一种日志分析方法的实现流程示意图;
15.图2为本公开实施例提供的一种日志分析方法的实现流程示意图;
16.图3为本公开实施例提供的一种云工单日志分析统计系统的结构示意图;
17.图4为本公开实施例提供的一种日志分析装置的组成结构示意图;
18.图5为本公开实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
19.为了使本公开的目的、技术方案和优点更加清楚,下面结合附图和实施例对本公开的技术方案进一步详细阐述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
20.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
21.除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开的目的,不是旨在限制本公开。
22.本公开实施例提供一种日志分析方法,该方法可以由计算机设备的处理器执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等具备日志分析能力的设备。图1为本公开实施例提供的一种日志分析方法的实现流程示意图,如图1所示,该方法包括如下步骤s101至步骤s103:
23.步骤s101,响应于针对待分析工单的分析请求,获取生成所述待分析工单的调用链路的跟踪标识。
24.这里,待分析工单可以是指需要进行分析处理,用于确定故障发生原因、位置等信息的工单或告警单。待分析工单可以包括投诉工单、故障工单、问题工单、需求工单、变更工单等不同类型中的一种或多种,待分析工单可以是由前端人员创建而生成的,如,投诉工单是由客服创建的,故障工单是由运维人员创建的。分析请求可以是指用于确定待分析工单所涉及的故障发生原因位置等信息的请求,分析请求可以携带待分析工单的标识。待分析工单的标识可以用于确定当前的分析请求对应的待分析工单,其中,对应的待分析工单可以为一个,也可以为多个。步骤s101实施过程中,可以响应于用户针对待分析工单的选取操作,生成与选取操作匹配的分析请求,以使得响应于针对待分析工单的分析请求。
25.在一些实施例中,需要调用至少两层服务用于生成待分析工单,服务可以是指用于处理用户业务的软件模块或组件等,如,微服务。其中,微服务就是把一个项目拆分成独立的多个服务,并且多个服务是可以独立运行的,而每个服务都会占用线程。以分布式电商系统为例,在微服务架构下的电商软件,一般会存在订单微服务和商品微服务,订单微服务通过调用商品微服务,获取商品的标识、名称、价格、库存等信息,用于完成订单相关的业务订单微服务。由于生成待分析工单所涉及的服务的数量较多,各个服务又可以处于不同的平台或业务系统等,具有不同的编程语言,为了准确地确定待分析工单调用的所有服务,可以确定生成待分析工单的调用链路。
26.调用链路可以用于表征针对待分析工单调用的至少两层服务的路径,各层服务之间可以是嵌套的。例如:第一待分析工单对应的调用链路为第一服务调用第二服务,若第二服务内部出现故障,第二服务会报错,可以生成第二服务故障的第一待分析工单。但是第一服务调用了第二服务,第一服务也会报错,从用户角度来看,是第一服务的报错导致业务流程失败。运维人员看到的是第一服务报错出现故障,那么运维人员就会提交第一服务故障的第一待分析工单,以使得研发人员修复故障。但实际上,第一服务的报错的根因是第二服务出线故障,若无法准确地确定调用链路会导致排查方向错误,从而造成处理流程慢、效率低、工作量耗费大等情况。
27.在调用各层服务用于生成待分析工单的过程中,可以通过添加跟踪标识(traceid)用于确定调用链路。跟踪标识可以是指针对一次生成待分析工单的业务请求对应的调用链路的标识。在一次业务请求中,最开始会生成一个全局唯一的用于标识此次业务请求的跟踪标识,这个跟踪标识在这次业务请求调用过程中无论经过多少层服务都会保持不变,并且在随着每一层服务的调用不停的传递。最终,可以通过跟踪标识将这一次用户的业务请求在服务中的路径全部串起来。在步骤s101实施的过程中,可以预先将待分析工单与跟踪标识之间的对应关联进行存储,通过确定分析请求中携带的待分析工单的标识,基于该待分析工单的标识与预先存储的对应关联,确定待分析工单的调用链路的跟踪标识。
28.步骤s102,基于所述跟踪标识,从每一层所述服务中分别获取所述调用链路关联的实时日志数据和离线日志数据。
29.这里,日志数据可以是指记录系统运行过程中产生的过程性事件记录数据。日志数据可以从业务端产生,到分析或者反哺业务使用,需要经过一系列的清洗、处理过程,而这一过程带来时间窗口大小,就是日志数据的时效性。按照数据延迟的大小,可以将日志数据分为离线日志数据和实时日志数据等;或者,按照日志数据的采集方式,将采集到的日志
数据确定为与采集方式相匹配的实时日志数据和或离线日志数据等,采集方式可以包括实时采集日志数据和离线采集日志数据等。实时日志数据的处理可以称为流处理,离线日志数据的处理可以称为批处理。在步骤s102实施的过程中,可以预先将跟踪标识追加至生成的实时日志数据和离线日志数据中,以使得同一调用链路的所有层服务产生的实时日志数据和离线日志数据中的工作标识相同;从存储有所有实时日志数据和离线日志数据的存储空间中,获取携带有当前的跟踪标识的实时日志数据和离线日志数据。
30.步骤s103,分别对所述实时日志数据和所述离线日志数据进行分析,得到所述待分析工单的分析结果。
31.这里,可以采用第一处理方式对实时日志数据进行分析,得到第一分析结果;采用第二处理方式对实时日志数据进行分析,得到第二分析结果,整合第一分析结果和第二分析结果,得到待分析工单的分析结果;其中,第一处理方式的处理效率高于第二处理方式的处理效率。例如:采用访问频率分析方式对实时日志数据进行分析,采用特征字符分析方式对离线日志数据进行分析,再对分析后得到的第一分析结果和第二分析结果筛选、清洗,得到待分析工单的分析结果,从而确定待分析工单所涉及的故障发生原因和位置等信息。
32.相比于相关技术中,针对待分析工单调用的服务是独立的,只能获取单个服务中的日志数据用于分析。本公开实施例中,首先,通过响应于针对待分析工单的分析请求,获取生成待分析工单的调用链路的跟踪标识;其中,调用链路用于表征针对待分析工单调用的至少两层服务的路径。这样,可以准确快速地确定针对待分析工单调用的所有服务。其次,基于跟踪标识,从每一层服务中分别获取调用链路关联的实时日志数据和离线日志数据。这样,可以准确快速地获取待分析工单关联的所有类型的日志数据。最后,分别对实时日志数据和离线日志数据进行分析,可以简单准确地得到待分析工单的分析结果,有助于简化日志分析流程,减少用户工作量,提高日志分析的准确率和效率等。
33.在一些实施例中,上述方法在实施步骤s101之前还可以包括如下步骤s111:
34.步骤s111,利用预设的类库,采用面向切面编程方式,对同一所述调用链路中所有层服务中产生的日志数据添加对应的跟踪标识。
35.这里,类库可以是指对预设的类文件进行打包处理后的文件,如,数据(jar)包和数据(war)包等。类库文件不仅可以用于压缩和发布,还可以用于部署和封装库、组件和插件程序,并可被像编译器和虚拟机(javavirtualmachine,jvm)等工具直接使用。面向切面编程(aspectorientedprogramming,aop)可以是指通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术,面向切面编程是函数式编程的一种衍生范型。利用面向切面编程可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。利用预设的类库,采用面向切面编程方式,对同一调用链路中所有层服务中产生的日志数据添加对应的跟踪标识,以使得每一调用链路对应的跟踪标识是全局且唯一的。例如:通过调用对外提供的文件(jar)包,以使得不同类型的云平台中的不同业务系统可以进行引用;通过面向切面编程方式对所有的日志数据追加全局的工作标识,以使得整体调用链路的跟踪标识一致。同时,jar包具有轻量级、低侵入性、对应用透明等特点,业务系统仅需一次配置,对于使用方透明,减少研发人员的负担。
36.本公开实施例,通过利用预设的类库,采用面向切面编程方式,对同一所述调用链
路中所有层服务中产生的日志数据添加对应的跟踪标识,这样,只需要一次配置,就可以使得后续即使又增加新的业务或者其他改动,也不要再重新对调用链路继续设置,增加全局的跟踪标识。
37.在一些实施例中,上述方法在实施步骤s101之前还可以包括如下步骤s121至步骤s123:
38.步骤s121,从至少两个所述业务系统的至少两层服务中获取至少两种日志类型的初始日志数据。
39.这里,待分析工单可以涉及至少两个业务系统,业务系统可以是指用于执行用户请求的业务的软件模块或组件等,如,用户管理系统、工具管理系统和配置管理系统等,用户管理系统可以用于用户登录、管理用户的权限等,工具管理系统可以对各种文件和数据进行格式转换等,配置管理系统可以用户调整计算资源等。每一业务系统可以存在至少两层服务,如,用户管理系统包括界面服务和存储服务等,工具管理系统可以包括格式转换服务和格式识别服务等。初始日志数据可以是指每一服务自身生成的日志数据,各初始日志数据的类型和存储位置可以相同,也可以不同。初始日志数据的类型可以为基础设施即服务(infrastructure as a service,iaas)类型、平台即服务(platform as a service,paas)类型、软件即服务(software as a service,saas)类型、云计算管理平台(openstack)类型和互联网(web)类型等。例如:从第一服务中获取iaas类型和paas类型的初始日志数据,从第二服务中获取openstack类型和web类型的初始日志数据等。
40.在步骤s121实施的过程中,可以是从至少两个业务系统中每一业务系统的至少两层服务中每一层服务产生的至少两种日志类型的初始日志数据。至少两层服务可以是统一业务系统中的,也可以是不同业务系统中的,至少两中日志类型的初始日志数据可以是同一层服务产生的,也可以是不同层服务产生的。
41.步骤s122,利用预设的适配器,对每一所述初始日志数据进行格式转换,得到格式转换后的初始日志数据。
42.这里,适配器可以是指接口转换器,用于对初始日志数据进行数据格式转换。不同类型的初始日志数据可以对应不同的数据格式,单一数据格式的初始日志数据的数据量可能会增长到很大,难以进行读取从而成为性能瓶颈,需要定时清理,但是对于一个数据量较大的初始日志数据文件进行清,操作复杂,可以对初始日志数据进行人切分等处理。不同数据格式的初始日志数据的切分格式可以不同,因此,可以利用适配器将不同数据格式的初始日志数据转换为相同数据格式的初始日志数据。
43.步骤s123,利用日志收集系统将所述格式转换后的初始日志数据存储至消息队列。
44.这里,可以利用日志收集(elasticsearch logstash kibana,elk)系统将格式转换后的初始日志数据存储至预设的消息队列(kafka)中。例如:将格式转换后的实时日志数据存储至第一消息队列,将格式转换后的离线日志数据存储至第二消息队列等。
45.在一些实施例中,上述步骤s102可以包括如下步骤s124:
46.步骤s124,基于所述跟踪标识,从所述消息队列中获取所述调用链路关联的所述实时日志数据和所述离线日志数据。
47.这里,可以从第一消息队列和第二消息队列中分别获取携带有当前的跟踪标识的
实时日志数据和离线日志数据。
48.本公开实施例中,通过对从至少两个业务系统的每一业务系统中获取的不同日志类型的初始日志数据进行格式转换,并将格式转换后的初始日志数据存储至消息队列中,有助于简化处理流程,提高处理效率等。
49.在一些实施例中,上述步骤s124可以包括如下步骤s1241:
50.步骤s1241,基于所述跟踪标识,通过调用预设的标准化接口,从所述消息队列中获取所述调用链路关联的所述实时日志数据和所述离线日志数据。
51.这里,标准化接口可以是指用于访问消息队列的接口,标准化接口可以采用不同的方式访问不同的消息队列,如,发布订阅方式、点对点方式、请求应答方式等。在步骤s1241实施的过程中,可以预先设置不同访问方式的消息队列,用于存储不同业务系统或不同层服务产生的实时日志数据和离线日志数据;利用预设的标准化接口从不同访问方式的消息队列中,获取携带有当前的跟踪标识的实时日志数据和离线日志数据等。
52.相比于调用多个不同的接口访问不同的消息队列,本公开实施例中,通过调用预设的标准化接口,从消息队列中获取调用链路关联的实时日志数据和离线日志数据,有助理提高处理效率。
53.本公开实施例提供一种日志分析方法,如图2所示,该方法包括如下步骤s201至步骤s205:
54.步骤s201至步骤s202分别对应于前述步骤s101至步骤s102,在实施时可以参照前述步骤s101至步骤s102的具体实施方式。
55.步骤s203,利用分布式大数据处理引擎对所述实时日志数据进行在线处理,得到第一处理结果。
56.这里,分布式大数据处理引擎可以是指开源流处理框架(flink),flink以数据并行和流水线方式执行任意流数据程序,flink的流水线运行时系统可以执行批处理和流处理程序,可以用于对实时日志数据的在线实时计算,得到第一处理结果。例如:第一处理结果表征第一层服务中的第一调用函数的返回值出现溢值情况。
57.步骤s204,利用集群计算平台对所述第一处理结果和所述离线日志数据进行离线处理,得到第二处理结果。
58.这里,集群计算平台可以是指用于基于内存计算的大数据并行计算框架(spark),可以用于对第一处理结果和离线日志数据进行批量处理,得到第二处理结果。例如:第二处理结果表征第二层服务中的第二调用函数的输入值不属于预设输入格式类型。
59.步骤s205,对所述第一处理结果和所述第二处理结果进行联机分析处理,得到所述待分析工单的分析结果。
60.这里,联机分析处理(on line analytic processing,olap)是一种软件技术,联机分析处理使分析人员可以迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。
61.相比于相关技术中,单独对实时日志数据进行在线处理,或对离线日志数据进行离线处理,将处理结果直接作为分析结果。本公开实施例中,通过利用分布式大数据处理引擎对实时日志数据进行在线处理,得到第一处理结果,利用集群计算平台对第一处理结果和离线日志数据进行离线处理,得到第二处理结果,对第一处理结果和第二处理结果进行
联机分析处理,有助于得到待分析工单更加准确的分析结果。
62.在一些实施例中,上述方法在实施步骤s204之前还可以包括如下步骤s211至步骤s212:
63.步骤s211,确定所述待分析工单的工单类型。
64.这里,工单类型可以包括投诉工单、故障工单、问题工单、需求工单、变更工单等类型,不同工单类型的待分析工单的格式、结构中的一种或多种属性可以不同。在步骤s211实施的过程中,可以预先设置待分析工单的标识与工单类型之间的对应关系;通过确定待分析工单的标识,基于待分析工单的标识与工单类型之间的对应关系,确定与待分析工单的标识对应的工单类型。
65.步骤s212,获取与所述工单类型匹配的工单模板。
66.这里,工单模板用于记录某一类型的待分析工单中通用信息的模板,工单模板可以包括投诉工单模板、故障工单模板、问题工单模板、需求工单模板、变更工单模板等,工单模板可以由用户进行自定义创建和编辑等操作。在步骤s212实施的过程中,可以预先设置不同工单类型对应的工单模板,并将所有的工单模板存储至预设存储空间,通过确定待分析工单的工单类型,从预设存储空间中获取与当前的工单类型匹配的工单模板。
67.在一些实施例中,上述步骤s204可以包括如下步骤s213:
68.步骤s213,基于与所述工单类型匹配的工单模板中的模板信息,通过在所述集群计算平台中调用已训练的处理模型,对所述第一处理结果和所述离线日志数据进行数据提取,得到所述第二处理结果。
69.这里,工单模板中携带有某一类型的待分析工单的通用信息(也即模板信息),已训练的处理模型可以是指预先设置的机器学习模型,如,用于执行数据提取的神经网络模型。在步骤s213实施的过程中,可以将模板信息、第一处理结果和离线日志数据输入至已训练的处理模型,得到第二处理结果。
70.本公开实施例中,通过在集群计算平台中调用已训练的处理模型,对工单模板中的模板信息、第一处理结果和离线日志数据进行数据提取,可以准确地得到第二处理结果,减少工作量,提高第二处理结果的准确率等。
71.在一些实施例中,上述方法在实施步骤s203之后还可以包括如下步骤s221:
72.步骤s221,将所述第一处理结果分别存储至数据仓库工具和缓存空间。
73.这里,数据仓库工具(hive)是基于分布式系统基础架构(hadoop)设置的,用于进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在hadoop中的大规模数据的机制。缓存空间(remote dictionary server,redis)是一个开源的使用标准编程语言(ansic)语言编写、支持网络、可基于内存亦可持久化的日志型、键值(key-value)数据库,并提供多种语言的调用接口。在步骤s221实施的过程中,可以先将第一处理结果存储至数据仓库工具,再将第一处理结果存储至缓存空间。
74.在一些实施例中,上述步骤s205可以包括如下步骤s222:
75.步骤s222,在所述数据仓库工具中,对所述第一处理结果和所述第二处理结果进行联机分析处理,得到所述待分析工单的分析结果。
76.这里,也可以将第二处理结果存储至数据仓库工具,在数据仓库工具中对第一处理结果和第二处理结果进行联机分析处理,得到待分析工单的分析结果。
77.在一些实施例中,在实施步骤s205之后还可以包括如下步骤s223:
78.步骤s223,将所述分析结果存储至关系型数据库和所述缓存空间。
79.这里,关系型数据库(mysql)可以将分析结果保存在不同的表中,而不是将所分析结果放在一个大仓库内,增加了读取速度并提高了灵活性。在步骤s223实施的过程中,可以先将分析结果存储至关系型数据库,再将分析结果存储至缓存空间。
80.在一些实施例中,步骤s223实施之后,可以响应于用户的查询请求,采用即席查询方式从关系型数据库和缓存空间中获取与查询请求匹配的分析结果;对分析结果进行展示等。
81.本公开实施例中,通过将第一处理结果分别存储至数据仓库工具和缓存空间,在数据仓库工具中,对第一处理结果和第二处理结果进行联机分析处理,得到待分析工单的分析结果,将分析结果存储至关系型数据库和缓存空间,有助于准确地获取分析结果,提高分析结果传输的安全性等。
82.本公开实施例提供的日志分析方法,下面以基于日志分析方法确定的日志分析系统为例进行说明。
83.本公开实施例中,针对云相关的工单日志分析统计存在的短板,结合工单系统的特点,对工单系统的功能进行梳理,抽象出多个通用模块,引入当前主流的分布式开源框架,提出了一种云工单日志分析统计系统。如图3所示,该云工单日志分析统计系统的系统架构设计目标为高性能、高可用、可伸缩、可扩展、有安全性和敏捷性的分布式微服务系统,自上而下分为4层:前端展示层、应用层、服务层和数据层。
84.前端展示层可以包括渐进式框架(vue)框架、界面(elementui)组件301、可视化分析绘图(echarts)组件、应用编程接口(restapplication program interface,rest api)302等。
85.应用层核心基于去中心化的分布式任务调度引擎。支持待分析工单的分析任务在分布式场景下的分片和高可用,能够水平扩展任务的吞吐量和执行效率,任务处理能力随资源配备弹性伸缩。在适合的时间将适合的资源分配给分析任务并使其生效,相同分析任务聚合至相同的执行器统一处理,动态调配追加资源至新分配的分析任务。调度引擎面向线程级调度框架,任务作业能够透明化的与不同的工单模板相结合,高度解耦,更加方便的贴合不同云计算平台工单系统业务开发。
86.服务层针对云工单日志分析统计系统的特点,抽象出不同模块为任务调度引擎提供服务。服务层主要可以包括用户管理模块303、工具管理模块304、配置管理模块305、日志源模块306、工单模板模块307、日志采集模块308、日志分析模块309及日志应用模块310等。
87.用户管理模块303包含用户登录登出鉴权功能、用户权限控制功能及用户行为日志记录功能等。
88.工具管理模块304提供包括安全协议(secure shell,ssh)、办公软件(excel)、办公软件(word)等相关工具类服务进行日志数据导入和日志数据导出。比如,用户可以选择将日志数据以word的格式进行导出,用户可以将日志数据或待分析工单以某种格式批量地导入到系统中等。
89.配置管理模块305使用分布式配置管理平台(distributed configuration management platform,disconf)对通用业务产生的数据进行配置,支持热部署。分布式配
置管理平台专注于各种分布式系统配置管理的通用组件/通用平台,提供统一的配置管理服务。其中,配置管理服务包括服务器管理服务和资源池管理服务。用户管理模块303、工具管理模块304和配置管理模块305可以作为本系统的基础平台,用于日志分析前的准备处理。
90.日志源模块306可以使用适配器对接不同的日志来源;日志来源iaas类型、paas类型、saas类型、openstack类型和web类型等不同日志类型的实时日志数据和离线日志数据。适配器用于对不同类型的日志数据进行格式转换。
91.工单模板模块307可以提供标准化接口供不同云平台、不同业务系统接入,以得到日志数据,其中,不同的业务系统包括投诉工单系统、故障工单系统、问题工单系统等。工单模板模块307还可以提供给用户创建和编辑工单模板;其中,工单模板包括投诉工单模板、故障工单模板、问题工单模板、需求工单模板、变更工单模板等。在一些实施例中,可以使用工单模板模块307对日志数据进行分析清洗,以生成工单分析数据。待分析工单是前端人员创建好的,待分析工单接入本系统后,可以确定当前的待分析工单的工单类型。某一种类型的工单模板包括对应类型的工单的关键信息(也即模板信息),对于某类型的待分析工单,如投诉工单,就会获取投诉工单模板,然后将基于投诉工单模板的关键信息,从日志数据中提取对应的日志内容,然后对工单进行分析,以得到分析结果。
92.日志采集模块308可以使用elk系统将初始日志数据通过消息队列传入日志分析模块。日志采集模块308中可以分为两部分:一部分是通过elk系统实时采集日志数据,另一部分是离线的存量日志批处理,这里的数据集成即为通过实时和批量离线采集后的日志数据的汇聚。
93.日志分析模块309可以采用实时离线一体化计算方案,对实时传入的日志数据使用flink进行实时分析,实时分析包括操作成功率等,以及可以实时显示整体统计分析的第一处理结果。然后可以将第一处理结果既录入hive库供spark离线分析,又可以通过kafka写入redis等。日志分析模块309在进行离线分析时,可以调用智能(artificial intelligence,ai)工单服务311对离线日志数据进行离线分析得到第二处理结果;其中,智能工单服务311可以包括已训练的处理模型。最终,通过联机分析处理第一处理结果和第二处理结果,得到分析结果,将分析结果存入mysql及redis缓存中的。
94.日志应用模块310可以包括工单分析、工单展示、工单统计等功能。
95.本公开实施例中,云工单日志分析统计系统整合了多种现有主流开源工具框架,结合云计算业务特点,抽象通用组件,对扩展开放,可扩展性好,用户可以简单的配置分析模板。同时,整合了全业务日志收集,减少了工单分析前期的准备工作,提升工单分析效率与准度,降低了人工误操作率,对日志的原始数据与分析结果持久化,提供多维度多视图实时统计展示,支持多人协作分析等。
96.基于前述的实施例,本公开实施例提供一种日志分析装置,该装置包括所包括的各单元、以及各单元所包括的各模块,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(central processing unit,cpu)、微处理器(microprocessor unit,mpu)、数字信号处理器(digital signal processor,dsp)或现场可编程门阵列(field programmable gate array,fpga)等。
97.图4为本公开实施例提供的一种日志分析装置的组成结构示意图,如图4所示,日
志分析装置400包括:第一获取模块410、第二获取模块420和分析模块430,其中:
98.第一获取模块410,用于响应于针对待分析工单的分析请求,获取生成所述待分析工单的调用链路的跟踪标识;其中,所述调用链路用于表征针对所述待分析工单调用的至少两层服务的路径;第二获取模块420,用于基于所述跟踪标识,从每一层所述服务中分别获取所述调用链路关联的实时日志数据和离线日志数据;分析模块430,用于分别对所述实时日志数据和所述离线日志数据进行分析,得到所述待分析工单的分析结果。
99.在一些实施例中,所述分析模块,还用于:利用分布式大数据处理引擎对所述实时日志数据进行在线处理,得到第一处理结果;利用集群计算平台对所述第一处理结果和所述离线日志数据进行离线处理,得到第二处理结果;对所述第一处理结果和所述第二处理结果进行联机分析处理,得到所述待分析工单的分析结果。
100.在一些实施例中,所述装置还包括:确定模块,用于确定所述待分析工单的工单类型;第三获取模块,用于获取与所述工单类型匹配的工单模板;所述分析模块,还用于:基于与所述工单类型匹配的工单模板中的模板信息,通过在所述集群计算平台中调用已训练的处理模型,对所述第一处理结果和所述离线日志数据进行数据提取,得到所述第二处理结果。
101.在一些实施例中,所述装置还包括:第一存储模块,用于将所述第一处理结果分别存储至数据仓库工具和缓存空间;所述分析模块,还用于:在所述数据仓库工具中,对所述第一处理结果和所述第二处理结果进行联机分析处理,得到所述待分析工单的分析结果;所述装置还包括:第二存储模块,用于将所述分析结果存储至关系型数据库和所述缓存空间。
102.在一些实施例中,所述装置还包括:添加模块,用于利用预设的类库,采用面向切面编程方式,对同一所述调用链路中所有层服务中产生的日志数据添加对应的跟踪标识;其中,每一所述调用链路对应的跟踪标识是全局且唯一的。
103.在一些实施例中,所述装置还包括:第四获取模块,用于从至少两个所述业务系统的至少两层服务中获取至少两种日志类型的初始日志数据;转换模块,用于利用预设的适配器,对每一所述初始日志数据进行格式转换,得到格式转换后的初始日志数据;第三存储模块,用于利用日志收集系统将所述格式转换后的初始日志数据存储至消息队列;所述第二获取模块,还用于:基于所述跟踪标识,从所述消息队列中获取所述调用链路关联的所述实时日志数据和所述离线日志数据。
104.在一些实施例中,所述第二获取模块,还用于:基于所述跟踪标识,通过调用预设的标准化接口,从所述消息队列中获取所述调用链路关联的所述实时日志数据和所述离线日志数据。
105.以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
106.需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述的日志分析方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以
软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
107.本公开实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
108.本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
109.本公开实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
110.本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
111.这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本公开设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
112.需要说明的是,图5为本公开实施例中计算机设备的一种硬件实体示意图,如图5所示,该计算机设备500的硬件实体包括:处理器501、通信接口502和存储器503,其中:
113.处理器501通常控制计算机设备500的总体操作。
114.通信接口502可以使计算机设备通过网络与其他终端或服务器通信。
115.存储器503配置为存储由处理器501可执行的指令和应用,还可以缓存待处理器501以及计算机设备500中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(flash)或随机访问存储器(random access memory,ram)实现。处理器501、通信接口502和存储器503之间可以通过总线504进行数据传输。
116.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺
序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
117.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
118.在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
119.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
120.另外,在本公开各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
121.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
122.或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。
123.本公开所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
124.若本公开实施例涉及个人信息,应用本公开实施例的产品在处理个人信息前,已明确告知个人信息处理规则,并取得个人自主同意。若本公开实施例涉及敏感个人信息,应用本公开实施例的产品在处理敏感个人信息前,已取得个人单独同意,并且同时满足“明示同意”的要求。
125.以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。
技术特征:
1.一种日志分析方法,其特征在于,包括:响应于针对待分析工单的分析请求,获取生成所述待分析工单的调用链路的跟踪标识;其中,所述调用链路用于表征针对所述待分析工单调用的至少两层服务的路径;基于所述跟踪标识,从每一层所述服务中分别获取所述调用链路关联的实时日志数据和离线日志数据;分别对所述实时日志数据和所述离线日志数据进行分析,得到所述待分析工单的分析结果。2.根据权利要求1所述的方法,其特征在于,所述分别对所述实时日志数据和所述离线日志数据进行分析,得到所述待分析工单的分析结果,包括:利用分布式大数据处理引擎对所述实时日志数据进行在线处理,得到第一处理结果;利用集群计算平台对所述第一处理结果和所述离线日志数据进行离线处理,得到第二处理结果;对所述第一处理结果和所述第二处理结果进行联机分析处理,得到所述待分析工单的分析结果。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:确定所述待分析工单的工单类型;获取与所述工单类型匹配的工单模板;所述利用集群计算平台对所述第一处理结果和所述离线日志数据进行离线处理,得到第二处理结果,包括:基于与所述工单类型匹配的工单模板中的模板信息,通过在所述集群计算平台中调用已训练的处理模型,对所述第一处理结果和所述离线日志数据进行数据提取,得到所述第二处理结果。4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:将所述第一处理结果分别存储至数据仓库工具和缓存空间;所述对所述第一处理结果和所述第二处理结果进行联机分析处理,得到所述待分析工单的分析结果,包括:在所述数据仓库工具中,对所述第一处理结果和所述第二处理结果进行联机分析处理,得到所述待分析工单的分析结果;所述方法还包括:将所述分析结果存储至关系型数据库和所述缓存空间。5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:利用预设的类库,采用面向切面编程方式,对同一所述调用链路中所有层服务中产生的日志数据添加对应的跟踪标识;其中,每一所述调用链路对应的跟踪标识是全局且唯一的。6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:从至少两个所述业务系统的至少两层服务中获取至少两种日志类型的初始日志数据;利用预设的适配器,对每一所述初始日志数据进行格式转换,得到格式转换后的初始日志数据;利用日志收集系统将所述格式转换后的初始日志数据存储至消息队列;
所述基于所述跟踪标识,从每一层所述服务中分别获取所述调用链路关联的实时日志数据和离线日志数据,包括:基于所述跟踪标识,从所述消息队列中获取所述调用链路关联的所述实时日志数据和所述离线日志数据。7.根据权利要求6所述的方法,其特征在于,所述基于所述跟踪标识,从所述消息队列中获取所述调用链路关联的所述实时日志数据和所述离线日志数据,包括:基于所述跟踪标识,通过调用预设的标准化接口,从所述消息队列中获取所述调用链路关联的所述实时日志数据和所述离线日志数据。8.一种日志分析装置,其特征在于,包括:第一获取模块,用于响应于针对待分析工单的分析请求,获取生成所述待分析工单的调用链路的跟踪标识;其中,所述调用链路用于表征针对所述待分析工单调用的至少两层服务的路径;第二获取模块,用于基于所述跟踪标识,从每一层所述服务中分别获取所述调用链路关联的实时日志数据和离线日志数据;分析模块,用于分别对所述实时日志数据和所述离线日志数据进行分析,得到所述待分析工单的分析结果。9.一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述方法中的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述方法中的步骤。
技术总结
本公开实施例公开了一种日志分析方法、装置、设备及存储介质,其中,所述方法包括:响应于针对待分析工单的分析请求,获取生成待分析工单的调用链路的跟踪标识;其中,调用链路用于表征针对待分析工单调用的至少两层服务的路径;基于跟踪标识,从每一层服务中分别获取调用链路关联的实时日志数据和离线日志数据;分别对实时日志数据和离线日志数据进行分析,得到待分析工单的分析结果。本公开实施例可以简单准确地得到待分析工单的分析结果,简化日志分析流程,减少用户工作量,提高日志分析的准确率和效率等。准确率和效率等。准确率和效率等。
技术研发人员:王源
受保护的技术使用者:中国移动通信集团有限公司
技术研发日:2022.08.22
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/