异常应用的故障分析方法、装置、设备及存储介质
文献发布时间:2023-06-19 12:10:19
技术领域
本发明涉及测试研发管理领域,尤其涉及一种异常应用的故障分析方法、装置、设备及存储介质。
背景技术
随着容器化技术的普及与推广,越来越多的公司和云计算厂商都着手投入资源做应用容器化改造和容器化平台。逐渐形成以容器(当前主流是docker管理引擎)为应用运行环境、Kubernetes为应用调度编排管理引擎。
容器化带来了开发、运维效率提升和资源利用率的提高;但容器所倡导大道至简的封装指导方针:容器镜像尽量精简,这一指导方针给以后应用故障问题排查带来了一定的困扰。当出现应用异常情况后,由于无法快速确定问题原因,因此对于异常的排查、定位以及修复都需要耗费大量的时间和精力。综上所述,即现有技术对容器化异常应用的排查效率低。
发明内容
本发明的主要目的在于解决现有技术对容器化异常应用的排查效率低的技术问题。
本发明第一方面提供了一种异常应用的故障分析方法,包括:获取客户端上传的排查当前异常应用的设置信息,并根据所述设置信息,对当前异常应用的运行环境进行分流检测,得到对应的分流检测结果;根据所述分流检测结果,确定当前异常应用的当前运行环境和当前运行环境对应的排查线路;根据当前运行环境,采用所述排查线路构建当前异常应用的排查容器和排查节点;通过所述排查容器和所述排查节点启动当前异常应用,对当前异常应用进行异常排查,得到异常排查结果,并将所述异常排查结果反馈至所述客户端。
可选的,在本发明第一方面的第一种实现方式中,所述根据所述设置信息,对当前异常应用的运行环境进行分流检测,得到对应的分流检测结果包括:解析所述设置信息,得到当前异常应用的运行环境的标识信息,并判断所述标识信息与预置标识参照信息是否一致;若一致,则保留当前异常应用的运行环境,否则根据所述标识信息,更新当前异常应用的运行环境,并将保留运行环境或者更新运行环境作为分流检测结果。
可选的,在本发明第一方面的第二种实现方式中,所述若当前异常应用的排查线路为第一分支线路,则根据当前运行环境,创建当前异常应用的第一排查容器和第一排查节点包括:若当前异常应用的排查线路为第一分支线路,则根据当前运行环境,标注预置初始排查容器的节点标签,以及获取当前运行环境对应的排查镜像;将所述初始排查容器调度至与所述节点标签相关联的任意一个排查节点,并将所述任意一个排查节点作为当前异常应用的第一排查节点;将排查镜像写入所述初始排查容器中,得到当前异常应用的第一排查容器;若当前异常应用的排查线路为第二分支线路,则从预置数据库中选取与当前异常应用绑定的第二排查容器和第二排查节点,其中,所述排查容器为第一排查容器或第二排查容器,所述排查节点为第一排查节点或第二排查节点。
可选的,在本发明第一方面的第三种实现方式中,所述通过所述排查容器和所述排查节点启动当前异常应用,对当前异常应用进行异常排查,得到异常排查结果包括:根据所述排查容器,在所述排查节点上启动当前异常应用;收集当前异常应用在运行过程中产生的日志信息;并采用预置排查工具对所述日志信息进行异常分析,得到异常分析结果;根据所述异常分析结果,对异常应用的运行过程进行故障排查,得到故障信息,并根据所述故障信息生成异常排查结果。
可选的,在本发明第一方面的第四种实现方式中,所述采用预置排查工具对所述日志信息进行异常分析,得到异常分析结果包括:采用预置排查工具遍历所述日志信息对应的日志目录,并抽取所述日志目录中包含异常标识信息的日志行;将抽取的日志行写入预置空白表格,得到当前异常应用的报错信息,并将所述报错信息作为所述日志信息对应的异常分析结果。
可选的,在本发明第一方面的第五种实现方式中,在所述根据当前运行环境,采用所述排查线路构建当前异常应用的排查容器和排查节点之后,还包括:检测所述排查容器中是否包含与当前异常应用相关的业务标签;若包含,则剔除所述排查容器中与当前异常应用相关的业务标签。
本发明第二方面提供了一种异常应用的故障分析装置,包括:分流检测模块,用于获取客户端上传的排查当前异常应用的设置信息,并根据所述设置信息,对当前异常应用的运行环境进行分流检测,得到对应的分流检测结果;确定模块,用于根据所述分流检测结果,确定当前异常应用的当前运行环境和当前运行环境对应的排查线路;创建模块,用于根据当前运行环境,采用所述排查线路构建当前异常应用的排查容器和排查节点;排查模块,用于通过所述排查容器和所述排查节点启动当前异常应用,对当前异常应用进行异常排查,得到异常排查结果,并将所述异常排查结果反馈至所述客户端。
可选的,在本发明第二方面的第一种实现方式中,所述分流检测模块包括:解析单元,用于解析所述设置信息,得到当前异常应用的运行环境的标识信息,并判断所述标识信息与预置标识参照信息是否一致;筛选单元,用于若一致,则保留当前异常应用的运行环境,否则根据所述标识信息,更新当前异常应用的运行环境,并将保留运行环境或者更新运行环境作为分流检测结果。
可选的,在本发明第二方面的第二种实现方式中,所述创建模块包括:标注单元,用于若当前异常应用的排查线路为第一分支线路,则根据当前运行环境,标注预置初始排查容器的节点标签,以及获取当前运行环境对应的排查镜像;调度单元,用于将所述初始排查容器调度至与所述节点标签相关联的任意一个排查节点,并将所述任意一个排查节点作为当前异常应用的第一排查节点;写入单元,用于将排查镜像写入所述初始排查容器中,得到当前异常应用的第一排查容器;若当前异常应用的排查线路为第二分支线路,则从预置数据库中选取与当前异常应用绑定的第二排查容器和第二排查节点,其中,所述排查容器为第一排查容器或第二排查容器,所述排查节点为第一排查节点或第二排查节点。
可选的,在本发明第二方面的第三种实现方式中,所述排查模块包括:启动单元,用于根据所述排查容器,在所述排查节点上启动当前异常应用;分析单元,用于收集当前异常应用在运行过程中产生的日志信息;并采用预置排查工具对所述日志信息进行异常分析,得到异常分析结果;排查单元,用于根据所述异常分析结果,对异常应用的运行过程进行故障排查,得到故障信息,并根据所述故障信息生成异常排查结果。
可选的,在本发明第二方面的第四种实现方式中,所述分析单元还用于:采用预置排查工具遍历所述日志信息对应的日志目录,并抽取所述日志目录中包含异常标识信息的日志行;将抽取的日志行写入预置空白表格,得到当前异常应用的报错信息,并将所述报错信息作为所述日志信息对应的异常分析结果。
可选的,在本发明第二方面的第五种实现方式中,所述异常应用的故障分析装置还包括:相关检测模块,用于检测所述排查容器中是否包含与当前异常应用相关的业务标签;剔除模块,用于若包含,则剔除所述排查容器中与当前异常应用相关的业务标签。
本发明第三方面提供了一种异常应用的故障分析设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述异常应用的故障分析设备执行上述的异常应用的故障分析方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的异常应用的故障分析方法。
本发明提供的技术方案中,首先通过客户端上传的设置信息,对异常应用的运行环境进行分流检测,确定采用第一分支线路还是第二分支线路对异常应用进行分析,并进一步确定分析的当前运行环境或者当前运行环境,以此创建排查容器和排查节点,再通过排查容器和排查节点启动异常应用,在异常应用的运行过程中进行异常排查,通过异常线路、运行环境、排查容器和排查节点、启动异常应用的执行流程,实现对异常应用的自动化分析,通过全程自动化的异常应用的故障分析,提升异常应用的排查效率。
附图说明
图1为本发明实施例中异常应用的故障分析方法的第一个实施例示意图;
图2为本发明实施例中异常应用的故障分析方法的第二个实施例示意图;
图3为本发明实施例中异常应用的故障分析方法的第三个实施例示意图;
图4为本发明实施例中异常应用的故障分析装置的一个实施例示意图;
图5为本发明实施例中异常应用的故障分析装置的另一个实施例示意图;
图6为本发明实施例中异常应用的故障分析设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种异常应用的故障分析方法、装置、设备及存储介质,根据异常应用排查的设置信息,对运行环境进行分流检测,并根据分流检测结果,确定异常应用的排查线路;若异常应用排查采用第一分支线路,则根据当前运行环境,创建第一排查容器和第一排查节点;若异常应用排查采用第二分支线路,则根据当前运行环境,筛选第二排查容器和第二排查节点;采用第一排查容器和第一排查节点启动当前异常应用、或第二排查容器和第二排查节点启动异常应用,对异常应用进行异常排查,得到异常排查结果,并将异常排查结果反馈至客户端。本发明实现了异常应用故障的自动化分析,提升异常应用故障的排查效率。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中异常应用的故障分析方法的第一个实施例包括:
101、获取客户端上传的排查当前异常应用的设置信息,并根据设置信息,对当前异常应用的运行环境进行分流检测,得到对应的分流检测结果;
可以理解的是,本发明的执行主体可以为异常应用的故障分析装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
本实施例中,需要说明的是,客户端通过管理平台对当前异常应用进行排查设置。其中,管理平台采用基于Kubernetes系统而开发的一套应用管理系统,该系统含Kubernetes集群管理、应用编排管理、应用配置管理、应用Pod信息查询、应用资源使用查看以及应用Pod故障诊断工具等。
具体的,管理平台根据以下方法判断是否需要保留当前的运行环境:其中,应用出现故障一般存在两种情况。1)应用Pod状态正常,在管理平台显示Pod状态,如亮绿色正常灯,但是应用程序内部异常,比如应用调用超时。2)应用Pod状态异常,在管理平台显示Pod状态,如亮红色异常灯。当应用异常的时候,应用开发者在该管理平台上根据红绿灯选择是否保留当前运行环境。红灯表示当前运行环境无需保留,绿灯当前运行环境需要保留,不能破坏当前运行环境。
102、根据分流检测结果,确定当前异常应用的当前运行环境和当前运行环境对应的排查线路;
在本实施例中,可以理解的是,通过确定当前异常应用的当前运行环境和当前运行环境对应的排查线路,目的在于排查在不同运行环境中的异常应用检测结果。第一排查分支线路和第二排查分支线路分别对应的是不需要保留当前异常应用的的运行环境的排查线路和需要保留当前异常应用的运行环境的排查线路。具体的,当前运行环境是新创建的运行环境,当前运行环境是初始的运行环境。
103、根据当前运行环境,采用所述排查线路构建当前异常应用的排查容器和排查节点;
本实施例中,在采用Kubernetes系统启动Pod时,具体过程如下所示:1)用户通过REST API创建一个Pod;2)Apiserver将其写入Etcd;3)Scheduluer检测到未绑定Node的Pod,开始调度并更新Pod的Node绑定;4)Kubelet检测到有新的Pod调度过来,通过Container Runtime运行该Pod;5)Kubelet通过Container Runtime取到Pod状态,并更新到Apiserver中。
在本实施例中,可以理解的是,筛选与当前异常应用绑定的第二排查容器和第二排查节点的方式是通过Debug工具启动一个Pod,该Pod调度到与当前异常应用绑定的第二排查容器所在的Node节点上,并尽量保持与当前出现异常Pod尽可能相同的问题环境。
具体的,集群会在可用的集群节点中寻找最合适的节点来运行相应的容器。首先,集群会排出如下节点:
a.节点状态为不可用的“如节点不通或者Kubernetes服务运行异常等”;
b.节点剩余的CPU,内存资源不足以运行容器的;
c.容器运行时占用的宿主机端口出现冲突的;
d.按照节点选择Label不匹配的;
在排除不符合的节点之后,剩下的节点均为候选节点。容器具体调度到集群的哪台宿主机上,由调度器的积分机制决定。
104、通过排查容器和排查节点启动当前异常应用,对当前异常应用进行异常排查,得到异常排查结果,并将异常排查结果反馈至客户端。
在本实施例中,启动当前异常应用之前,需要通过Debug工具启动一个Debug Pod,即根据当前出现异常Pod的编排文件,确定该Pod当前所在宿主机,然后创建一个新的编排文件,指定该Pod被调度到出现异常Pod的宿主机上。
具体的,排查容器启动应用的基本过程如下所示:先为容器创建一个镜像;然后用创建的镜像来创建新的容器,并安装Apache;接着再次提交新的容器;最后运行HTTP(Hypertext Transfer Protocol,超文本传输协议)服务器,并运行已启动的应用,即可开始对异常应用进行排查。
本发明实施例中,首先通过客户端上传的设置信息,对异常应用的运行环境进行分流检测,确定采用第一分支线路还是第二分支线路对异常应用进行分析,并进一步确定分析的当前运行环境或者当前运行环境,以此创建排查容器和排查节点,再通过排查容器和排查节点启动异常应用,在异常应用的运行过程中进行异常排查,通过异常线路、运行环境、排查容器和排查节点、启动异常应用的执行流程,实现对异常应用的自动化分析,通过全程自动化的异常应用的故障分析,提升异常应用的排查效率。
请参阅图2,本发明实施例中异常应用的故障分析方法的第二个实施例包括:
201、获取客户端上传的排查当前异常应用的设置信息;
202、解析设置信息,得到当前异常应用的运行环境的标识信息,并判断标识信息与预置标识参照信息是否一致;
本实施例中,可以理解的是,通过标识信息与预置标识参照信息的比较,目的在于判断是否需要保留当前异常应用的运行环境。具体的,开发人员通过交互界面进行设置信息。其中,设置信息中映射如AAAA运行环境,标识信息是AAAA字段,当异常应用写有生产环境或者开发环境所在的运行环境的标识信息时,即确定为预置标识参照信息。
203、若一致,则保留当前异常应用的运行环境,否则根据标识信息,更新当前异常应用的运行环境,并将保留运行环境或者更新运行环境作为分流检测结果;
本实施例中,可以理解的是,标识信息是异常应用的运行环境在运行过程中所产生的数据信息。更新当前异常应用的运行环境是指创建新的运行环境。在需要进行不同异常环境的检测结果比较时,更新当前异常应用的运行环境。更新当前异常应用的运行环境的方法为:通过Debug工具启动一个Debug Pod,在任意Node上启动。具体的,通过Debug工具启动一个Debug Pod是根据当前出现异常Pod的编排文件,确定该Pod当前所在宿主机,然后创建一个新的编排文件,指定该Pod被调度到出现异常Pod的宿主机上所完成的。
204、根据分流检测结果,确定当前异常应用的当前运行环境和当前运行环境对应的排查线路;
205、若当前异常应用的排查线路为第一分支线路,则根据当前运行环境,标注预置初始排查容器的节点标签,以及获取当前运行环境对应的排查镜像;
在本实施例中,使用Docker,从docker的官方registry或者其他仓库,获取一个可移植的运行环境镜像,无需安装。然后,基于这个镜像运行应用程序,确保运行应用程序、依赖项和运行时都一起运行。
具体的,给节点打上标签如下所示:
#kubectl label nodes
#kubectl label nodes 10.2.2.123key1=val1
#kubectl label nodes 10.2.2.123key2=val2
#kubectl label nodes 10.2.2.123key1=val1 key2=val2
具体的,需要说明的是,排查镜像内包含业务程序代码,但是以该镜像启动容器后,容器内只运行Bash进程。后续业务程序代码启动通过手工启动,即使业务程序Crash也不会导致诊断Pod退出。
具体的,每个容器类型都定义了一个默认构造函数。除Array之外,其他容器的默认构造函数都会创建一个指定类型的空容器。且都能接受指定容器大小和元素初始值的参数。
具体的,模拟容器定义和初始化的编译环境列表如下所示:
C c:默认构造函数,如果C是一个Array,则c中元素按默认方式初始化,否则c为空;
C c1(c2):c1初始化为c2的拷贝,c1和c2必须是相同类型(即,它们必须是相同的容器类型,且保存的是相同的元素类型;对于Array类型,两者还必须具有相同的大小),即Cc1=c2;
C c{a,b,c...}:c初始化为初始化列表中的元素的拷贝,列表中元素的类型必须与C的元素类型相容。对于Array类型,列表中元素数目必须等于或小于Array的大小,任何遗漏的元素都进行初始化;
C c(b,e):c初始化为迭代器b和e指定范围中的元素的拷贝,范围中元素的类型必须与C的元素类型相容(Array不适用),只有顺序容器(不包括Array)的构造函数才能接受大小参数;
C seq(n):seq包含n个元素,这些元素进行了值初始化;此构造函数是explicit的(string不适用);
C seq(n,t):seq包含n个初始化为值t的元素。
206、将初始排查容器调度至与节点标签相关联的任意一个排查节点,并将任意一个排查节点作为当前异常应用的第一排查节点;
在本实施例中,需要说明的是,本方案实施的容器调度策略是当新增一个容器时,集群会在可用的集群节点中寻找最合适的节点来运行相应的容器。首先,集群会排出如下节点:
a.节点状态为不可用的“如节点不通或者Kubernetes服务运行异常等”;
b.节点剩余的CPU,内存资源不足以运行容器的;
c.容器运行时占用的宿主机端口出现冲突的;
d.按照节点选择Label不匹配的;
在排除不符合的节点之后,剩下的节点均为候选节点。容器具体调度到集群的哪台宿主机上,由调度器的积分机制决定。
207、将排查镜像写入初始排查容器中,得到当前异常应用的第一排查容器;
在本实施例中,需要说明的是,Docker容器是由Docker镜像创建的运行实例,即容器是由镜像实例化而来的。并且,容器是基于镜像创建的,即容器中的进程依赖于镜像中的文件。因此,有必要将排查镜像写入初始排查容器中。
208、若当前异常应用的排查线路为第二分支线路,则从预置数据库中选取与当前异常应用绑定的第二排查容器和第二排查节点,其中,所述排查容器为第一排查容器或第二排查容器,所述排查节点为第一排查节点或第二排查节点。
209、通过排查容器和排查节点启动当前异常应用,对当前异常应用进行异常排查,得到异常排查结果,并将异常排查结果反馈至客户端。
本发明实施例中,通过设置信息中运行环境的标识信息,对异常应用排查的运行环境作分流检测,可以根据异常应用的业务需求采用不同的排查线路进行故障排查,提升异常应用故障排查的定制化程度;然后介绍了通过第一排查线路对异常应用进行故障排查,在当前运行环境下,重新创建第一排查容器和第一排查节点,以用于启动异常应用,实现异常应用的自动化排查。
请参阅图3,本发明实施例中异常应用的故障分析方法的第三个实施例包括:
301、获取客户端上传的排查当前异常应用的设置信息,并根据设置信息,对当前异常应用的运行环境进行分流检测,得到对应的分流检测结果;
302、根据分流检测结果,确定当前异常应用的当前运行环境和当前运行环境对应的排查线路;
303、根据当前运行环境,采用所述排查线路构建当前异常应用的排查容器和排查节点;
304、检测排查容器中是否包含与当前异常应用相关的业务标签;
305、若包含,则剔除排查容器中与当前异常应用相关的业务标签;
306、根据排查容器,在排查节点上启动当前异常应用;
在本实施例中,需要说明的是,排查容器在任何节点上都可以启动当前异常应用,不论是第一排查容器还是第二排查容器都要在对应节点启动当前异常应用,以提升排查效率。
在本实施例中,需要说明的是,检测第一排查容器或第二排查容器中是否包含与当前异常应用相关的业务标签,目的在于防止业务流量进入该诊断Pod内。其中,剔除操作为预置的自动化操作。
在本实施例中,需要说明的是,预置排查工具进行日志异常分析的具体过程包括:1)启动当前异常应用程序;2)进入当前异常应用程序的日志目录;3)查看当前异常应用程序异常的报错信息;4)预置排查工具进行日志异常分析,并得到分析结果。
在本实施例中,对异常应用的运行过程进行故障排查是通过在Debug Pod中进行启动当前应用程序操作,并且通过Debug具工和应用产生的日志进行排查。
307、收集当前异常应用在运行过程中产生的日志信息,采用预置排查工具遍历日志信息对应的日志目录,并抽取日志目录中包含异常标识信息的日志行;
在本实施例中,需要说明的是,预置排查工具进行日志异常排查的具体过程包括:1)启动当前异常应用程序;2)进入当前异常应用程序的日志目录;3)查看当前异常应用程序的异常报错信息。
308、将抽取的日志行写入预置空白表格,得到当前异常应用的报错信息,并将报错信息作为日志信息对应的异常分析结果;
在本实施例中,预先设置空白表格的格式,在空白表格中输入各表格框的关键字,每个空白表格进行表格ID的自动编码,并为其定义相关的接口,将抽取的日志行通过接口接入空白表格,并根据表格框的关键字,将日志行的内容依次写入预置空白表格中,填写完毕,根据表格ID,输出当前应用的报错信息即可。
309、根据异常分析结果,对异常应用的运行过程进行故障排查,得到故障信息,并根据故障信息生成异常排查结果并反馈至客户端。
本发明实施例中,详细介绍了通过排查容器和排查节点启动异常应用,采用收集到的日志信息对异常应用进行故障排查,在日志信息中,标记有异常标识信息的日志行即表示该异常应用存储的故障内容,通过异常标识日志行,即可自动识别异常应用的故障范围,实现对异常应用的自动化故障分析。
上面对本发明实施例中异常应用的故障分析方法进行了描述,下面对本发明实施例中异常应用的故障分析装置进行描述,请参阅图4,本发明实施例中异常应用的故障分析装置一个实施例包括:
分流检测模块401,用于获取客户端上传的排查当前异常应用的设置信息,并根据所述设置信息,对当前异常应用的运行环境进行分流检测,得到对应的分流检测结果;
确定模块402,用于根据所述分流检测结果,确定当前异常应用的当前运行环境和当前运行环境对应的排查线路;
创建模块403,用于根据当前运行环境,采用所述排查线路构建当前异常应用的排查容器和排查节点;
排查模块404,用于通过所述排查容器和所述排查节点启动当前异常应用,对当前异常应用进行异常排查,得到异常排查结果,并将所述异常排查结果反馈至所述客户端。
本发明实施例中,首先通过客户端上传的设置信息,对异常应用的运行环境进行分流检测,确定采用第一分支线路还是第二分支线路对异常应用进行分析,并进一步确定分析的当前运行环境或者当前运行环境,以此创建排查容器和排查节点,再通过排查容器和排查节点启动异常应用,在异常应用的运行过程中进行异常排查,通过异常线路、运行环境、排查容器和排查节点、启动异常应用的执行流程,实现对异常应用的自动化分析,通过全程自动化的异常应用的故障分析,提升异常应用的排查效率。
请参阅图5,本发明实施例中异常应用的故障分析装置的另一个实施例包括:
分流检测模块401,用于获取客户端上传的排查当前异常应用的设置信息,并根据所述设置信息,对当前异常应用的运行环境进行分流检测,得到对应的分流检测结果;
确定模块402,用于根据所述分流检测结果,确定当前异常应用的当前运行环境和当前运行环境对应的排查线路;
创建模块403,用于根据当前运行环境,采用所述排查线路构建当前异常应用的排查容器和排查节点;
排查模块404,用于通过所述排查容器和所述排查节点启动当前异常应用,对当前异常应用进行异常排查,得到异常排查结果,并将所述异常排查结果反馈至所述客户端。
具体的,所述分流检测模块401包括:
解析单元4011,用于解析所述设置信息,得到当前异常应用的运行环境的标识信息,并判断所述标识信息与预置标识参照信息是否一致;
筛选单元4012,用于若一致,则保留当前异常应用的运行环境,否则根据所述标识信息,更新当前异常应用的运行环境,并将保留运行环境或者更新运行环境作为分流检测结果。
具体的,所述创建模块403包括:
标注单元4031,用于若当前异常应用的排查线路为第一分支线路,则根据当前运行环境,标注预置初始排查容器的节点标签,以及获取当前运行环境对应的排查镜像;
调度单元4032,用于将所述初始排查容器调度至与所述节点标签相关联的任意一个排查节点,并将所述任意一个排查节点作为当前异常应用的第一排查节点;
写入单元4033,用于将排查镜像写入所述初始排查容器中,得到当前异常应用的第一排查容器;若当前异常应用的排查线路为第二分支线路,则从预置数据库中选取与当前异常应用绑定的第二排查容器和第二排查节点,其中,所述排查容器为第一排查容器或第二排查容器,所述排查节点为第一排查节点或第二排查节点。
具体的,所述排查模块404包括:
启动单元4041,用于根据所述排查容器,在所述排查节点上启动当前异常应用;
分析单元4042,用于收集当前异常应用在运行过程中产生的日志信息;并采用预置排查工具对所述日志信息进行异常分析,得到异常分析结果;
排查单元4043,用于根据所述异常分析结果,对异常应用的运行过程进行故障排查,得到故障信息,并根据所述故障信息生成异常排查结果。
具体的,所述分析单元4042还用于:
采用预置排查工具遍历所述日志信息对应的日志目录,并抽取所述日志目录中包含异常标识信息的日志行;
将抽取的日志行写入预置空白表格,得到当前异常应用的报错信息,并将所述报错信息作为所述日志信息对应的异常分析结果。
具体的,所述异常应用的故障分析装置还包括:
相关检测模块405,用于检测所述排查容器中是否包含与当前异常应用相关的业务标签;
剔除模块406,用于若包含,则剔除所述排查容器中与当前异常应用相关的业务标签。
本发明实施例中,通过设置信息中运行环境的标识信息,对异常应用排查的运行环境作分流检测,可以根据异常应用的业务需求采用不同的排查线路进行故障排查,提升异常应用故障排查的定制化程度;然后介绍了通过第一排查线路对异常应用进行故障排查,在当前运行环境下,重新创建第一排查容器和第一排查节点,以用于启动异常应用,实现异常应用的自动化排查;另一方面,也详细介绍了通过排查容器和排查节点启动异常应用,采用收集到的日志信息对异常应用进行故障排查,在日志信息中,标记有异常标识信息的日志行即表示该异常应用存储的故障内容,通过异常标识日志行,即可自动识别异常应用的故障范围,实现对异常应用的自动化故障分析。
上面图4和图5从模块化功能实体的角度对本发明实施例中的异常应用的故障分析装置进行详细描述,下面从硬件处理的角度对本发明实施例中异常应用的故障分析设备进行详细描述。
图6是本发明实施例提供的一种异常应用的故障分析设备的结构示意图,该异常应用的故障分析设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对异常应用的故障分析设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在异常应用的故障分析设备600上执行存储介质630中的一系列指令操作。
异常应用的故障分析设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的异常应用的故障分析设备结构并不构成对异常应用的故障分析设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种异常应用的故障分析设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述异常应用的故障分析方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述异常应用的故障分析方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 异常应用的故障分析方法、装置、设备及存储介质
- 异常检测、异常分析方法、装置、电子设备和存储介质