服务器日志消息分类方法、装置、设备及可读存储介质与流程

文档序号:28816389发布日期:2022-02-09 06:14阅读:82来源:国知局

1.本发明涉及日志消息处理领域,尤其涉及一种服务器日志消息分类方法、装置、设备及可读存储介质。


背景技术:

2.在云原生的架构里,服务的部署都是以集群化的模式管理,如k8s(kubernetes),服务程序的都在pod(kubernetes项目中的一个调度单位)的容器里运行,由于k8s的动态伸缩特性,加上pod和容器个数增多,服务错误信息也随之增多,且服务的异常报错通常都是一大串多行的报错内容,导致对服务异常信息的监测工作变得更加复杂和困难。
3.因此,在面对众多且复杂的服务异常信息时,如何让服务异常监测管理端能更好的解读发生的错误,成了亟待解决的问题。
4.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

5.本发明的主要目的在于提供一种服务器日志消息分类方法,旨在解决服务器生成的服务异常日志不利于后续服务异常监测管理端解读的技术问题。
6.为实现上述目的,本发明提供一种服务器日志消息分类方法,所述服务器日志消息分类方法包括以下步骤:获取服务器的服务异常日志;根据预设实时流式处理方式对所述服务异常日志进行处理生成服务异常指纹,并将所述服务异常日志与所述服务异常指纹对应写入储存区中;从所述储存区中获取所述服务异常指纹以及与所述服务异常指纹对应的所述服务异常日志,并基于所述服务异常指纹对所述服务异常日志进行分类。
7.进一步的,所述获取服务器的服务异常日志的步骤包括:通过搜集器从所述服务器获取所述服务异常日志;并通过所述搜集器将所述服务异常日志发送至消息队列;将计算服务端作为消费者订阅所述消息队列中的所述服务异常日志,其中,所述计算服务端储存有所述预设实时流式处理方式。
8.进一步的,所述根据预设实时流式处理方式对所述服务异常日志进行处理生成服务异常指纹的步骤包括:当所述计算服务端接收到所述消息队列发送的所述服务异常日志时,提取所述服务异常日志的错误堆栈;使用预设正则公式匹配所述错误堆栈中动态变量标识文本,将所述动态变量标识文本替换为预设字符生成去噪错误堆栈;基于去噪服务异常日志经加密算法加密生成所述服务异常指纹,其中,所述去噪
服务异常日志为携带所述去噪错误堆栈的所述服务异常日志。
9.进一步的,所述基于去噪服务异常日志经加密算法加密生成所述服务异常指纹的步骤包括:从所述去噪服务异常日志中提取错误类型文本、错误信息文本以及去噪错误堆栈文本;将所述错误类型文本、所述错误信息以及所述去噪错误堆栈文本作为md5算法的加密因子,并将所述md5算法加密生成的结果作为所述去噪服务异常日志对应的所述服务异常日志的所述服务异常指纹。
10.进一步的,所述将所述服务异常日志与所述服务异常指纹对应写入储存区中的步骤包括:将所述服务异常日志和所述服务异常指纹对应发送至所述消息队列中;将所述储存区作为所述消息队列的消费者订阅所述服务异常日志以及和所述服务异常日志对应的所述服务异常指纹。
11.进一步的,所述加密因子还包括错误源编写语言类型文本,所述基于去噪服务异常日志经加密算法加密生成所述服务异常指纹的步骤还包括:从所述去噪服务异常日志中提取所述错误源编写语言类型文本、所述错误类型文本、所述错误信息文本以及所述去噪错误堆栈文本;将所述错误源编写语言类型文本、所述错误类型文本、所述错误信息以及所述去噪错误堆栈文本作为md5算法的加密因子,将所述md5算法加密生成的结果作为所述去噪服务异常日志对应的所述服务异常日志的所述服务异常指纹。
12.进一步的,所述基于所述服务异常指纹对所述服务异常日志进行分类的步骤包括:将所述储存区中所述服务异常指纹相同的所述服务异常日志划分为一类,并将分类结果进行展示。
13.此外,为实现上述目的,本发明还提供一种服务器日志消息分类装置,所述服务器日志消息分类装置包括:获取模块,用于获取服务器的服务异常日志;生成模块,用于根据预设实时流式处理方式对所述服务异常日志进行处理生成服务异常指纹,并将所述服务异常日志与所述服务异常指纹对应写入储存区中;分类模块,用于从所述储存区中获取所述服务异常指纹以及与所述服务异常指纹对应的所述服务异常日志,并基于所述服务异常指纹对所述服务异常日志进行分类。
14.此外,为实现上述目的,本发明还提供一种服务器日志消息分类设备,所述服务器日志消息分类设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的服务器日志消息分类程序,所述服务器日志消息分类程序被所述处理器执行时实现如上述的服务器日志消息分类方法的步骤。
15.此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有服务器日志消息分类程序,所述服务器日志消息分类程序被处理器执行时实现如上述的服务器日志消息分类方法的步骤。
16.本发明实施例提出的一种服务器日志消息分类方法,通过对服务异常日志进行二
次处理,使用正则公式将服务异常日志中错误堆栈的动态变使用统一字符替换,使得同一个方法或者接口面对不同调用对象时因相同错误调用报错的日志中错误堆栈相同,再提取日志中错误类型、错误信息和去噪错误堆栈使用md5算法生成统一的服务异常指纹,基于服务异常指纹可将众多且复杂的服务异常日志,分类简化显示,帮助服务异常监测管理端能更好的解读发生的错误,提升了用户的使用体验。
附图说明
17.图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;图2为本发明服务器日志消息分类方法的第一实施例的流程示意图。
18.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
19.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
20.本发明实施例的主要解决方案是:通过对服务异常日志进行二次处理,使用正则公式将服务异常日志中错误堆栈的动态变使用统一字符替换,使得同一个方法或者接口面对不同调用对象时因相同错误调用报错的日志中错误堆栈相同,再提取日志中错误类型、错误信息和去噪错误堆栈使用md5算法生成统一的服务异常指纹,基于服务异常指纹可将众多且复杂的服务异常日志,分类简化显示。
21.由于在云原生的架构里,服务的部署都是以集群化的模式管理,如k8s,服务程序的都在pod的容器里运行,由于k8s的动态伸缩特性,加上pod和容器个数增多,服务错误信息也随之增多,且服务的异常报错通常都是一大串多行的报错内容,导致对服务异常信息的监测工作变得更加复杂和困难。因此,在面对众多且复杂的服务异常信息时,如何让服务异常监测管理端能更好的解读发生的错误,成了亟待解决的问题。
22.本发明提供一种解决方案,基于服务异常指纹可将众多且复杂的服务异常日志,分类简化显示,帮助服务异常监测管理端能更好的解读发生的错误,提升了用户的使用体验。
23.如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
24.本发明实施例设备可以是服务器,也可以是pc、便携计算机等具有显示功能的可移动式终端设备。
25.如图1所示,该设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
26.可选地,设备还可以包括摄像头、rf(radio frequency,射频)电路,传感器、音频电路、wifi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来
调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
27.本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
28.如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及服务器日志消息分类程序。
29.在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的服务器日志消息分类程序,并执行以下操作:获取服务器的服务异常日志;根据预设实时流式处理方式对所述服务异常日志进行处理生成服务异常指纹,并将所述服务异常日志与所述服务异常指纹对应写入储存区中;从所述储存区中获取所述服务异常指纹以及与所述服务异常指纹对应的所述服务异常日志,并基于所述服务异常指纹对所述服务异常日志进行分类。
30.进一步地,处理器1001可以调用存储器1005中存储的服务器日志消息分类程序,还执行以下操作:所述获取服务器的服务异常日志的步骤包括:通过搜集器从所述服务器获取所述服务异常日志;并通过所述搜集器将所述服务异常日志发送至消息队列;将计算服务端作为消费者订阅所述消息队列中的所述服务异常日志,其中,所述计算服务端储存有所述预设实时流式处理方式。
31.进一步地,处理器1001可以调用存储器1005中存储的服务器日志消息分类程序,还执行以下操作:所述根据预设实时流式处理方式对所述服务异常日志进行处理生成服务异常指纹的步骤包括:当所述计算服务端接收到所述消息队列发送的所述服务异常日志时,提取所述服务异常日志的错误堆栈;使用预设正则公式匹配所述错误堆栈中动态变量标识文本,将所述动态变量标识文本替换为预设字符生成去噪错误堆栈;基于去噪服务异常日志经加密算法加密生成所述服务异常指纹,其中,所述去噪服务异常日志为携带所述去噪错误堆栈的所述服务异常日志。
32.进一步地,处理器1001可以调用存储器1005中存储的服务器日志消息分类程序,还执行以下操作:所述基于去噪服务异常日志经加密算法加密生成所述服务异常指纹的步骤包括:从所述去噪服务异常日志中提取错误类型文本、错误信息文本以及去噪错误堆栈文本;
将所述错误类型文本、所述错误信息以及所述去噪错误堆栈文本作为md5算法的加密因子,并将所述md5算法加密生成的结果作为所述去噪服务异常日志对应的所述服务异常日志的所述服务异常指纹。
33.进一步地,处理器1001可以调用存储器1005中存储的服务器日志消息分类程序,还执行以下操作:所述将所述服务异常日志与所述服务异常指纹对应写入储存区中的步骤包括:将所述服务异常日志和所述服务异常指纹对应发送至所述消息队列中;将所述储存区作为所述消息队列的消费者订阅所述服务异常日志以及和所述服务异常日志对应的所述服务异常指纹。
34.进一步地,处理器1001可以调用存储器1005中存储的服务器日志消息分类程序,还执行以下操作:所述加密因子还包括错误源编写语言类型文本,所述基于去噪服务异常日志经加密算法加密生成所述服务异常指纹的步骤还包括:从所述去噪服务异常日志中提取所述错误源编写语言类型文本、所述错误类型文本、所述错误信息文本以及所述去噪错误堆栈文本;将所述错误源编写语言类型文本、所述错误类型文本、所述错误信息以及所述去噪错误堆栈文本作为md5算法的加密因子,将所述md5算法加密生成的结果作为所述去噪服务异常日志对应的所述服务异常日志的所述服务异常指纹。
35.进一步地,处理器1001可以调用存储器1005中存储的服务器日志消息分类程序,还执行以下操作:所述基于所述服务异常指纹对所述服务异常日志进行分类的步骤包括:将所述储存区中所述服务异常指纹相同的所述服务异常日志划分为一类,并将分类结果进行展示。
36.参照图2,本发明服务器日志消息分类方法中的第一实施例,所述服务器日志消息分类方法包括:步骤s10,获取服务器的服务异常日志;在本实施例中,上述服务器中的虚拟环境较为复杂,如服务器中的服务a可以提供一个方法或者api接口(application programming interface,应用程序接口)被其他对象所调用,而在面对众多对象时难免会出现调用错误的情况,对应的,错误不同其服务异常日志将不同,而在同一个方法或者接口发生相同错误时面对不同调用对象服务异常日志也不同,其不同服务异常日志区别在于服务异常日志中错误堆栈的动态变量,如:时间戳、ip地址、服务实例名和容器实例名等,但该类不同的服务异常日志其本质上体现的错误是相同的。
37.进一步的,通过搜集器从所述服务器获取所述服务异常日志;并通过所述搜集器将所述服务异常日志发送至消息队列;将计算服务端作为消费者订阅所述消息队列中的所述服务异常日志,其中,所述计算服务端储存有所述预设实时流式处理方式。
38.具体的,使用服务端探针将产生的服务异常日志(即服务报错的日志信息)进行抓取,将抓取的服务异常日志上报至搜集器,而搜集器又将服务异常日志发送至消息队列,其中消息队列可以是pulsar或者kafuka等消息中间件,本实施例以pulsar为例进行说明,如
将搜集器作为pulsar集群的生产者,向pulsar集群中的主题1发送服务异常日志。可理解的是,本实施例中,需要对服务异常日志进行再次处理,将储存有实时流式处理方式的计算服务端作为pulsar集群的消费者订阅上述主题1(主题1中储存有服务异常日志),以获取服务异常日志。
39.步骤s20,根据预设实时流式处理方式对所述服务异常日志进行处理生成服务异常指纹,并将所述服务异常日志与所述服务异常指纹对应写入储存区中;进一步的,当所述计算服务端接收到所述消息队列发送的所述服务异常日志时,提取所述服务异常日志的错误堆栈;使用预设正则公式匹配所述错误堆栈中动态变量标识文本,将所述动态变量标识文本替换为预设字符生成去噪错误堆栈;基于去噪服务异常日志经加密算法加密生成所述服务异常指纹,其中,所述去噪服务异常日志为携带所述去噪错误堆栈的所述服务异常日志。
40.具体的,在计算服务端通过订阅主题1获取到服务异常日志后,从服务异常日志提取错误堆栈部分,并使用正则公式对错误堆栈中动态变量标识文本进行匹配,正则匹配规则可根据动态变量的特点设置,例如以动态变量中时间戳为正则公示匹配对象,设置匹配规则为“四位数字/两位数字/两位数字”或者“四位数字.两位数字.两位数字”等,具体的正则公式可根据实际情况设定,此处不再赘述。将错误堆栈中与正则公式匹配的文本(即动态变量标识文本)替换为固定字符(如:##),从而将动态变量标识文本去除,得到去噪错误堆栈,其中,“噪”为动态变量标识文本,对应的携带有去噪错误堆栈的服务异常日志即为去噪服务异常日志。
41.进一步的,从所述去噪服务异常日志中提取错误类型文本、错误信息文本以及去噪错误堆栈文本;将所述错误类型文本、所述错误信息以及所述去噪错误堆栈文本作为md5算法的加密因子,并将所述md5算法加密生成的结果作为所述去噪服务异常日志对应的所述服务异常日志的所述服务异常指纹。
42.具体的,服务异常日志中除存在错误堆栈外还包括错误类型和错误信息,对应提取去噪服务异常日志中错误类型文本、错误信息文本和去噪错误堆栈文本,将上述三种文本作为md5算法的加密因子进行加密,md5算法生成的字符串(如:603f52d844017e83ca267751fee5b61b)即为该去噪服务异常日志去噪前服务异常日志的服务异常指纹,例如:方法1被服务a、服务b和服务c调用时因为同一个问题报错,服务a的服务异常日志a:错误类型+错误信息+错误堆栈a;服务b的服务异常日志b:错误类型+错误信息+错误堆栈b;服务c的服务异常日志c:错误类型+错误信息+错误堆栈c,经上述去噪处理后服务异常日志均变为错误类型+错误信息+错误堆栈##,因此经过去噪处理后从服务异常日志a、服务异常日志b和服务异常日志c提取的加密因子均相同,所述md5算法生成的字符串也相同,使得同一种错误的日志其服务异常指纹相同,可以理解是,上述去噪和md5算法计算即为预设实时流式处理方式。
43.可选的,所述加密因子还包括错误源编写语言类型文本,从所述去噪服务异常日志中提取所述错误源编写语言类型文本、所述错误类型文本、所述错误信息文本以及所述去噪错误堆栈文本;将所述错误源编写语言类型文本、所述错误类型文本、所述错误信息以及所述去噪错误堆栈文本作为md5算法的加密因子,将所述md5算法加密生成的结果作为所述去噪服务异常日志对应的所述服务异常日志的所述服务异常指纹。
44.具体的,在进行md5加密计算时,加密因子除错误类型文本、错误信息文本以及去噪错误堆栈文本外,还可以包括错误源编写语言类型文本,错误源编写语言类型为调用上述方法或者接口的对象所使用的编程语言,如基于上述例子,服务a、服务b和服务c所述使用的程序语言分别为python、java和go,将方法或者接口调用对象对应的编程语音作为加密因子参与到最终服务错误指纹的计算中,可在上述同种问题分类基础上的进一步根据程序语言分类。更好的反映出上下游服务之间因为服务语言不同而产生的问题。可以理解的是,上述加密因子可根据实际需求任意组合达到解决实际问题的目的。
45.进一步的,将所述服务异常日志和所述服务异常指纹对应发送至所述消息队列中;将所述储存区作为所述消息队列的消费者订阅所述服务异常日志以及和所述服务异常日志对应的所述服务异常指纹。
46.具体的,当在计算服务端对服务异常日志进行实时流式处理生成服务异常日志的服务异常指纹后,计算服务端又将作为pulsar集群的生产者,将服务异常日志和其对应的服务异常指纹统一发送至pulsar集群主题2。同样的将储存区作为pulsar集群的消费者订阅主题2获取到服务异常日志和其对应的服务异常指纹进行储存。
47.步骤s30,从所述储存区中获取所述服务异常指纹以及与所述服务异常指纹对应的所述服务异常日志,并基于所述服务异常指纹对所述服务异常日志进行分类。
48.进一步的,将所述储存区中所述服务异常指纹相同的所述服务异常日志划分为一类,并将分类结果进行展示。
49.具体的,储存区中所有服务异常日志均带有服务异常指纹,在进行服务异常日志展示时,从储存区获取带有服务异常指纹的服务异常日志,将服务异常指纹相同的服务异常日志分为一类。
50.可以理解的是,在本实施例中,通过对服务异常日志进行二次处理,使用正则公式将服务异常日志中错误堆栈的动态变使用统一字符替换,使得同一个方法或者接口面对不同调用对象时因相同错误调用报错的日志中错误堆栈相同,再提取日志中错误类型、错误信息和去噪错误堆栈使用md5算法生成统一的服务异常指纹,基于服务异常指纹可将众多且复杂的服务异常日志,分类简化显示,帮助服务异常监测管理端能更好的解读发生的错误,提升了用户的使用体验。
51.此外,在本实施例中还提供一种服务器日志消息分类装置,所述服务器日志消息分类装置包括:获取模块,用于获取服务器的服务异常日志;生成模块,用于根据预设实时流式处理方式对所述服务异常日志进行处理生成服务异常指纹,并将所述服务异常日志与所述服务异常指纹对应写入储存区中;分类模块,用于从所述储存区中获取所述服务异常指纹以及与所述服务异常指纹对应的所述服务异常日志,并基于所述服务异常指纹对所述服务异常日志进行分类。
52.此外,在本实施例中还提供一种服务器日志消息分类设备,所述服务器日志消息分类设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的服务器日志消息分类程序,所述服务器日志消息分类程序被所述处理器执行时实现如上述的服务器日志消息分类方法的步骤。
53.此外,在本实施例中还提供一种可读存储介质,所述可读存储介质上存储有服务
器日志消息分类程序,所述服务器日志消息分类程序被处理器执行时实现上述的服务器日志消息分类方法的步骤。
54.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
55.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
56.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
57.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1