CN115186001A - 一种补丁处理方法和装置 - Google Patents
一种补丁处理方法和装置 Download PDFInfo
- Publication number
- CN115186001A CN115186001A CN202210821070.8A CN202210821070A CN115186001A CN 115186001 A CN115186001 A CN 115186001A CN 202210821070 A CN202210821070 A CN 202210821070A CN 115186001 A CN115186001 A CN 115186001A
- Authority
- CN
- China
- Prior art keywords
- information
- patch
- fault
- key
- patch information
- 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.)
- Pending
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/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- 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/2453—Query optimisation
-
- 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
Abstract
本申请公开了一种补丁处理方法和装置,该方法包括:获取已经发布的补丁的补丁信息,并将所述补丁信息进行保存,其中,所述补丁信息用于对所述补丁进行描述;获取系统发生故障之后的日志信息;根据所述日志信息获取用于标识所述故障的关键信息;根据所述故障的关键信息在保存的补丁信息中搜索与所述关键信息匹配的补丁信息。通过本申请解决了现有技术中运维人员人工输入关键词检索软件系统故障对应的补丁时所存在的检索效率低的问题,进而在提高检索效率的基础上,在一定程度上还增加了检索的准确性。
Description
技术领域
本申请涉及到系统故障处理领域,具体而言,涉及一种补丁处理方法和装置。
背景技术
在软件系统(例如,操作系统)发生故障之后,运维人员一般会根据已经发生的故障对应的故障信息查找该软件系统的补丁来解决该故障。例如,当一个操作系统的内核宕机发生后,为了能够快速恢复和避免下一次再因同一个问题宕机,尽快匹配已知问题或者相似问题,利用他人提供的解决方案(为了表述方式在下文中将解决方案均称为补丁)来解决问题十分重要。
通常情况下,可以利用通用的搜索引擎来进行检索,由于这些通用的搜索引擎搜索范围过大,如果输入关键词比较少,则得到大量的检索结果,从这些检索结果中需要花费大量的时间来检索到需要的结果;如果输入的关键词比较多,则很难命中。为了避免使用通用搜索引擎检索带来的问题,运维人员还可以直接在与该软件系统相关的上游社区网站来检索与故障相关的补丁,在这些上游社区网站中开发者会发布各种补丁,因此,在下文中也将与软件系统相关的上游社区网站等能够发布各种补丁的平台统称为补丁发布平台。
运维人员在上游社区网站中进行检索的时候,需要自己确定关键词,另外各个上游社区网站的检索功能也各不相同,因此使用关键词在上游社区网站进行检索效率不高,不能及时获取到该软件系统发生的故障对应的补丁,增加了软件系统发生故障后的维护时间。
发明内容
本申请实施例提供了一种补丁处理方法和装置,以至少解决现有技术中运维人员人工输入关键词检索软件系统故障对应的补丁时所存在的检索效率低的问题。
根据本申请的一个方面,提供了一种补丁处理方法,包括:获取已经发布的补丁的补丁信息,并将所述补丁信息进行保存,其中,所述补丁信息用于对所述补丁进行描述;获取系统发生故障之后的日志信息;根据所述日志信息获取用于标识所述故障的关键信息;根据所述故障的关键信息在保存的补丁信息中搜索与所述关键信息匹配的补丁信息。
根据本申请的另一个方面,还提供了一种补丁处理装置,包括:第一获取模块,用于获取已经发布的补丁的补丁信息,并将所述补丁信息进行保存,其中,所述补丁信息用于对所述补丁进行描述;第二获取模块,用于获取系统发生故障之后的日志信息;第三获取模块,用于根据所述日志信息获取用于标识所述故障的关键信息;搜索模块,用于根据所述故障的关键信息在保存的补丁信息中搜索与所述关键信息匹配的补丁信息。
根据本申请的另一个方面,还提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述的方法步骤。
根据本申请的另一个方面,还提供了一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现上述的方法步骤。
在本申请实施例中,采用了获取已经发布的补丁的补丁信息,并将所述补丁信息进行保存,其中,所述补丁信息用于对所述补丁进行描述;获取系统发生故障之后的日志信息;根据所述日志信息获取用于标识所述故障的关键信息;根据所述故障的关键信息在本地保存的补丁信息中搜索与所述关键信息匹配的补丁信息。通过本申请解决了现有技术中运维人员人工输入关键词检索软件系统故障对应的补丁时所存在的检索效率低的问题,进而在提高检索效率的基础上,在一定程度上还增加了检索的准确性。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的补丁处理方法的流程图;
图2是根据本申请实施例的补丁搜索方法的示意图;
图3是根据本申请实施例的内存访问错误检索式示意图;
图4是根据本申请实施例的除零错误检索式示意图;
图5是根据本申请实施例的soft lockup检索式示意图;
图6是根据本申请实施例的BUG ON检索式示意图;以及,
图7是根据本申请实施例的补丁处理装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在以下实施方式中涉及到系统发生故障之后的处理,这里所提到的系统可以是任何一个软件系统,例如,操作系统就是一个软件系统,该软件系统还可以是运行在操作系统上的应用软件,在以下实施方式中对此并不做限制。软件系统的故障可以是多种类型的故障,各种故障的类型所导致的后果也不相同,有的故障会导致软件系统的崩溃,有的故障会导致软件系统的部分功能异常,以下实施方式中的方案可以应用在解决各种故障中,即以下实施方式中的方案并不限定于解决特定的故障,以下实施方式中描述的特定故障的解决均可以理解是一个例子。对于故障的解决方案在以下实施方式中均称为补丁,通过补丁可以解决故障,补丁可以仅仅包括文字描述的解决方案,也可以包括补丁程序,所有的与补丁相关的信息均会被开发者发布到补丁发布平台,被开发者发布到补丁发布平台上的与该补丁相关的信息可以被称作是补丁信息。
在本实施例中提供了一种补丁处理方法,图1是根据申请实施例的补丁处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取已经发布的补丁的补丁信息,并将所述补丁信息进行保存,其中,所述补丁信息用于对所述补丁进行描述。
在该步骤中,可以从各种公开渠道获取已经发布的补丁信息,例如,可以预先配置补丁发布平台,然后从补丁发布平台中获取已经发布的补丁信息。在将补丁信息进行保存的时候,可以保存在本地,也可以保存在云服务器中,保存在本地读取比较便捷,在以下实施方式中以保存在本地为例进行说明。
步骤S104,获取系统发生故障之后的日志信息。
步骤S106,根据所述日志信息获取用于标识所述故障的关键信息。
步骤S108,根据所述故障的关键信息在保存的补丁信息中搜索与所述关键信息匹配的补丁信息。
在上述步骤中,一方面可以将提前获取到的补丁信息进行保存,这样可以缩小检索范围,提高检索效率;另外一方面,在上述步骤并不是通过人工来提取检索所使用的关键词的,而是通过故障发生后产生的日志信息提取到关键信息,通过提取到的关键信息和已经保存下来的补丁信息可以进行搜索匹配。正是通过关键信息和补丁信息的获取,从而为进行多特征融合检索提供了数据基础,因此,通过上述步骤解决了现有技术中运维人员人工输入关键词检索软件系统故障对应的补丁时所存在的检索效率低的问题,进而在提高检索效率的基础上,在一定程度上还增加了检索的准确性。
在上述步骤S102中可以从补丁发布平台获取已经发布的补丁信息,补丁发布平台可以是网站等通过公众网络可以访问到的平台,可以使用抓取工具从补丁发布平台来进行数据的抓取。例如,可以首选获取补丁发布平台中补丁信息的发布的网络地址以及补丁信息发布的格式,通过该网络地址访问访问补丁发布平台中的相关网页,将网页的内容抓取下来之后,通过预先设置的补丁信息的发布格式从抓取的网页内容中提取到该补丁发布平台已经发布的补丁的补丁信息。
补丁发布平台可以有多个,在实际实施时,可以根据需要配置所要抓取的补丁发布平台。例如,在某家公司中大量使用的A软件,为了能够更好的检索到A软件的补丁信息,可以预先将发布A软件的补丁信息的多家网站配置成补丁发布平台。在配置之后,从补丁发布平台中抓取的补丁信息就是A软件的补丁信息。又例如,某家公司大量使用了A软件和B软件,则可以将发布A软件补丁信息的网站以及发送B软件补丁信息的网站均配置成补丁发布平台,这样就可以抓取到A软件和B软件的补丁信息。
在一个可选实施方式中,针对不同的软件系统可以配置不同的补丁发布平台,从不同的补丁发布平台抓取的数据可以一起在本地进行保存,或者也可以分开在本地进行保存。例如,从A补丁发布平台抓取的补丁信息是针对A软件的,则可以将这些A软件的补丁信息保存在数据库的一张表里,从B补丁发布平台抓取的补丁信息是针对B软件的,则可以将B软件的补丁信息保存在数据库的另一张表中。在搜索补丁信息时,可以根据日志信息区分出该故障是A软件发生的故障还是B软件发生的故障,然后分别在对应的数据库的表中进行搜索。
在本地保存补丁信息时,可以对补丁信息进行预处理,将预处理之后的补丁信息保存到本地,这样可以有利于提高搜索效率。进行预处理的方式可以多种,例如,可以对所述补丁信息的不同部分进行提取,得到所述补丁信息对应的多个部分;将提取到的所述补丁信息的多个部分分别保存在本地。
由于补丁信息是从补丁发布平台抓取回来的,因此,抓取回来的补丁信息的结构可能比较复杂,为了便于检索,可以根据补丁发布平台发布补丁信息的格式,得到该补丁信息的多个部分,然后从每个部分中提取相关的信息,这样就可以得到补丁信息对应的多个部分,然后将多个部分保存在本地。
在补丁发布平台发布补丁信息的时候,一般会有一个标题,在标题下会有正文(即补丁内容)。在将补丁信息保存在本地时,可以将补丁信息分为补丁标题和补丁内容两个部分来进行保存。在后续进行检索时,可以使用关键信息与补丁标题和补丁内容来进行匹配,提高匹配的效率。例如,首先将关键信息与补丁标题进行匹配,如果补丁标题中包括了该关键信息,则可以认为该补丁标题对应的补丁信息就是与关键信息匹配的补丁信息。如果没有检索到包括该故障的关键信息的补丁标题,再在补丁内容中检索该关键信息即可。
在另一个可选实施方式中,可以将补丁信息的多个部分进行拆分,然后将多个部分本身进行保存;还可以从多个部分中提取出代表该部分的词语或者句子,将提取出来的词语或者句子作为该部分进行保存。例如,从补丁标题中提取了词语1、词语2和词语3,则将词语1、词语2和词语3作为补丁标题的部分进行保存;从补丁内容中提取出了词语4、词语5、句子1和句子2,则将词语4、词语5、句子1和句子2作为补丁内容部分进行保存。这样经过再加工的补丁信息的各个部分,能够提高搜索时的匹配效率。
将补丁信息拆分成补丁标题和补丁内容两个部分能够提高搜索效率,在另外的实施方式中还可以补丁信息分为更多的部分,即除了补丁标题和补丁内容之外,还可以从补丁信息中提取更多的内容,例如,还可以提取补丁中所涉及到的模块。这里所说的模块是指发生故障的软件系统中的模块,例如,在操作系统中,如果出现故障代码为0x000011FF的故障,在导致该故障出现的原因有可能是操作系统中的负责数据存储的模块出现了问题,该补丁信息对应的补丁就是用来对负责数据存储的模型进行修补的。由于日志信息中记录了大量的故障信息,在根据日志信息能够确定是由于哪个模块故障才导致发生该故障的情况下,通过日志信息中确定的故障模块,在补丁信息的补丁中所涉及到模块该部分进行检索,这样就可以进一步提高搜索的命中率。
补丁信息还可以分为更多的部分,但是补丁信息分成的部分过多的话,在本地维护补丁信息的多个部分的工作量就会比较大,因此,上述将补丁信息分为三个部分是一种比较优的实施方式,即所述补丁信息对应的多个部分包括:所述补丁信息中包括的补丁标题、所述补丁信息中包括的补丁内容以及所述补丁信息对应的补丁中所涉及到的模块。该实施方式即可以在提高检索效率,又不会使数据维护的难度提高太多。
上述实施方式中,用来与补丁信息进行比较的是日志信息,这是由于在软件系统中,为了便于对软件系统进行维护,均会采用日志信息来记录软件系统的运行情况,因此在软件系统发生故障之后,通过日志信息就可以获取到能够标识出该故障的关键信息。对于关键信息来说,只要与故障相关的信息均可以认为是故障的关键信息,例如故障发生之后的故障代码,该故障代码可以标识故障的类别,该类别可以作为故障的关键信息;又例如,在发生故障时该软件系统正在执行的操作信息,该操作信息可以认为故障信息的一种,也可以被包括在故障的关键信息中。
在一个可选的实施方式中,为了更好的定位该故障,可以从日志信息中提取出相应的内容作为该故障的关键信息,例如,可以将故障的类别对应的关键字以及故障的类别对应故障信息作为该故障的关键信息,然后将关键字和故障信息作为关键信息在搜索时使用。即根据所述日志信息获取用于标识所述故障的关键信息的步骤可以包括:根据所述日志信息确定所述故障的类别;根据所述故障的类别确定用于指示所述故障的类别的关键字;从所述日志信息中获取与所述故障的类别对应的所述故障的故障信息,其中,所述关键信息包括所述关键字和所述故障信息。
在上述步骤中,需要从日志文件识别出故障的类别然后根据该类别确定关键字,其中,识别故障类别可以有很多种方式,在一种方式中,可以预先创建故障列表,该列表中对应保存了不同的故障类别和相应的日志信息;获取故障发生后的日志信息,将获取到的日志信息与预先配置的故障列表对应的日志信息进行匹配,将故障列表中的匹配成功故障类别作为该故障的故障类别。
在另一种方式中,日志信息中还有可能直接携带有故障代码,例如出现0x00001111故障代码时,表示故障类别为内存访问错误;又例如出现0x2222FFFF故障代码时,表示故障类别为软锁死等。
上述两种根据日志信息确定故障类别的方式,需要预先配置相应的规则。作为另一个可选实施方式,还可以使用机器学习的方式来判断故障的类别,在该方式中,收集历史上真实发生的故障,获取该故障时和/或发生故障之前的预定时长内的日志信息,将收集到日志信息和该日志信息对应的故障类别作为一组训练数据,在训练数据的数量超过一定数量的情况下,使用收集到的这些训练数据进行有监督的机器学习的训练,在训练满足收敛条件之后,该机器学习模型就可以使用。采集软件系统运行过程中的日志信息,将采集到的日志信息输入到机器学习模型中,则该机器学习模型就可以输出该日志信息对应的故障的类别。
故障的类别对应的关键词可以是预先配置的,或者也可以使用从日志信息中提取到的最能够代表该故障类别的词语作为所述关键词。
在故障的类别确定之后,从日志信息中就可以筛选出与该类别有关的信息作为故障信息。在日志信息中存在大量的信息,如果将日志信息中的所有信息均用于检索,将可能无法匹配到合适的补丁信息,因此,从日志信息中选择与故障的类别对应的故障信息作为检索依据,有利于提高检索的效率和检索结果的命中率。与故障的类别对应的故障信息可能有很多种类,在一个可选实施方式中,可以将故障的故障信息按照不同的种类进行保存,在进行检索时可以根据故障的类别来选择不同的种类的故障信息来进行使用。
在该可选实施方式中,从所述日志信息中提取与所述故障的类别对应的所述故障的故障信息可以包括:从所述日志信息按照故障信息的种类提取所述故障的故障信息;保存提取到的每个种类的故障信息;其中,所述种类包括以下至少之一:所述故障涉及到的模块、所述故障的调用栈、与所述故障对应的异常日志。故障信息在按照不同的种类进行提取和保存之后,在进行检索时,就可以根据故障的类别来选择使用不同种类的故障信息来进行检索,这样能够使搜索更加具有针对性。
在上述实施方式中,将故障的关键信息分为关键字和不同种类的故障信息,这些关键信息均可以作为搜索依据在本地保存的补丁信息中进行搜索。为了提高搜索的命中率,提供一种可选的搜索方式,在该搜索方式中,使用了关键字和故障信息至少一种,如果关键字能够被成功匹配,并且故障信息中的至少一种种类被匹配则认为查找到该故障匹配的补丁信息。即根据所述故障的关键信息在本地保存的补丁信息中搜索与所述关键信息匹配的补丁信息可以包括:将所述关键字和所述故障的故障信息在本地保存的补丁信息中进行搜索;如果在预定补丁信息中查找到所述关键字,并且在所述预定补丁信息中查找到所述故障信息中的至少一种种类,则将所述预定补丁信息作为与所述关键信息匹配的补丁信息。
例如,使用关键字和故障涉及到的模块在补丁信息中进行搜索,匹配到一个补丁信息,则将给补丁信息作为与该故障相匹配的补丁信息;如果使用关键字和故障涉及到的模块在补丁信息中进行搜索,匹配到多个补丁信息,此时可以将多个补丁信息均提供给维护人员,以供维护人员进行选择。或者还可以增加另一个种类的故障信息再进行搜索,例如,使用关键字、故障涉及到的模块以及故障的调用栈在补丁信息中再次进行搜索,匹配到一个补丁信息,则将补丁信息作为与该故障匹配的补丁信息。如果使用关键字、故障涉及到的模块以及故障的调用栈在补丁信息中再次进行搜索时,没有匹配到任何补丁信息,则可以将故障的条用蘸更换为故障的异常日志,使用关键字、故障涉及到的模块以及故障的异常日志在补丁信息中再次进行搜索。
考虑到本地保存的补丁信息也被分为了多个部分,在不同的部分使用不同的关键信息来进行搜索可能得到不同的搜索结果,在一个可选实施方式中,可以使用带有逻辑关系的检索式来进行检索。这种检索式可以提供基本的逻辑运算,被称为布尔检索。布尔检索是是一种检索方法,是用逻辑“或”(OR)、逻辑“与”(AND)、逻辑“非”(NOT)等算符在检索中对检索结果进行定性的方法。其中,逻辑“或”:用来组配相同概念的词,补丁信息中凡含有"A"或者"B"检索词或者同时含有检索词"A"和"B"的补丁信息均为命中补丁信息。逻辑“与”:检索时,补丁信息中同时含有检索词"A"和检索词"B"的补丁信息才为命中补丁信息。逻辑“非”:补丁信息中凡含有检索词"A"而不含有检索词"B"的补丁信息为命中补丁信息。即在该可选方式中,根据所述故障的关键信息在保存的补丁信息中搜索与所述关键信息匹配的补丁信息可以包括如下步骤:生成基于布尔搜索的检索式,其中,基于布尔搜索的检索式用于指示所述故障的关键信息中的部分或全部在所述补丁信息的不同部分被检索到的逻辑关系;根据所述检索式搜索与所述故障的关键信息匹配的补丁信息。通过该可选的方式,可以提供多种特征组合来进行进行检索,从而能够增加检索的效率和准确性。
另外,作为另一个可选的实施方式,为了体现出不同搜索结果的差异,还可以增加权重来搜索与故障的关键信息匹配的补丁信息。即根据所述故障的关键信息在本地保存的补丁信息中搜索与所述关键信息匹配的补丁信息的步骤可以包括:根据所述故障的关键信息在所述补丁信息的不同部分被搜索到时所对应权重,确定与所述关键信息匹配的补丁信息。
例如,使用故障的关键信息在补丁标题中进行搜索得到与故障关键信息匹配的补丁信息1,使用同样的关键信息在补丁内容中进行搜索得到与故障关键信息匹配的补丁信息2。这种情况下,可以获取补丁信息1和补丁信息2的权重,预先配置的是在补丁标题中命中的补丁信息的权重为权重1,在补丁内容中进行搜索得到的补丁信息的权重为权重2。因此,可以得知补丁信息1的权重是权重1而补丁信息2的权重是权重2。如果预先配置的权重1大于权重2,则认为补丁信息1与故障的关键信息更加匹配,将补丁信息1作为该故障的补丁信息。或者也可以将补丁信息1、补丁信息2以及各自对应的权重均提供给维护人员,供维护人员从中进行选择。如果预先配置的权重2大于权重1,则认为补丁信息2与故障的关键信息更加匹配。
在上述实施方式中,将故障的关键信息分为了关键词和不同种类的故障信息,此时可以将关键词、不同种类的故障信息在补丁信息的不同部分被检索到时配置相应的权重。即针对在所述补丁信息的不同部分检索到所述关键词的情况配置权重,其中,所述补丁信息中的每个部分检索到所述关键词的情况均对应一个权重;针对在所述补丁信息的不同部分检索到不同种类的故障信息的情况分别配置权重;其中,所述补丁信息中每个部分检索到每种故障信息的情况均对应一个权重。
例如,在补丁标题检索到的关键词对应权重1,在补丁内容检索到关键词对应权重2,在补丁标题检索到种类1的故障信息对应权重2,在补丁内容检索到种类1的故障信息对应权重3,在补丁标题检索到种类2的故障信息对应权重3,在补丁内容检索到种类3的故障信息对应权重4等。
通过各种权重配置,可以组合使用关键词和不同种类的故障信息来进行搜索,每种不同的搜索均对应于不同的权重,根据权重选择与该故障最匹配的补丁信息。不同故障类别的检索可以对应不同的关键词和不同种类的故障信息的组合。例如,如果故障类别为故障类别1,则使用关键词在补丁标题中进行检索以及使用种类3的故障信息在补丁中所涉及到的模块中进行检索;如果故障类别为故障类别2,则使用关键词在补丁标题中进行检索以及使用种类1的故障信息在补丁内容中进行检索等等。
上述实施方式可以应用到各种软件系统的各种故障中,以下以宕机为例对一个可选实施例进行说明。
宕机是由于操作系统内核检测到严重的硬件错误或者操作系统内核软件错误而产生的操作系统崩溃然后重启机器/节点的现象。宕机会导致机器/节点重启,业务中断。在宕机发生后,可以获取宕机发生后产生的日志信息,通过日志信息可以获取到宕机信息(即故障的故障信息)。
由于宕机是内核发生的错误,因此,可以内核上游社区(内核上有社区是一个网站或者一个网站中提供数据上传和数据浏览的功能模块)中获取补丁信息,该内核上游社区即为上述的补丁发布平台。内核上游社区指的是内核开源项目最初的发起者或非营利性组织的社区,由于每个人都可以对这个原始项目(上游)作出修改和贡献,上游社区中有很多解决了旧版本问题的补丁信息。
在本实施例中,宕机的类别可以包括以下至少之一:内存访问错误导致的宕机、除零错误导致的宕机、软锁死(soft lockup)导致的宕机、检查BUGON条件不满足导致的宕机。下面对这几种宕机的类别分别进行说明。
soft lockup导致的宕机,也可以称为soft lockup宕机。该宕机的原因是由于cpu长时间被占用,因此,cpu无法调度的时间超过了系统设定的阈值,此时将会产生softlockup。
内存访问错误宕机:由于访问非法内存导致的宕机。
除零错误宕机:由于系统计算除法时,除数为0导致的宕机。
内核代码由于检查BUGON条件不满足导致宕机,该宕机也被称为BUG ON宕机。BUGON是一个函数接口,一般用来判断内核是否出现问题,如果参数为真的话,证明内核出现了bug,打印BUG信息,然后产生系统内核错误。当BUG ON接口被调用的时候,它会导致栈的回溯和错误信息的打印,因此在系统中会将BUGON定义成某种非法操作。
本可选实施例首先将宕机信息和已知上游社区宕机补丁进行预处理,之后进行分类和关键特征提取等操作,再结合布尔搜索来进行问题的搜索匹配。图2是根据本申请实施例的补丁搜索方法的示意图,下面结合图2对本可选实施例进行说明。在图2中将本实施例中的方案分成了如下几个功能模块:宕机信息预处理、上游社区补丁预处理、匹配补丁。这几个功能模块也可以理解为三个大步骤。其中,在宕机信息预处理步骤或者模块中,主要是获取宕机的类别,然后获取了宕机的故障信息,该故障信息可以分为三个种类:宕机子模块(即故障涉及到的模块)、宕机调用栈(即故障的调用栈)以及宕机异常日志(即故障的异常日志);在上游社区补丁预处理模块或步骤中,主要将来自上游社区的补丁信息分为了三个部分:涉及子模块(补丁中所涉及到的模块)、补丁标题以及补丁内容。在匹配补丁的步骤或者模块中,主要采用了布尔搜索。布尔检索是是一种检索方法,是用逻辑“或”(OR)、逻辑“与”(AND)、逻辑“非”(NOT)等算符在检索中对检索结果进行定性的方法。其中,逻辑“或”:用来组配相同概念的词,补丁信息中凡含有"A"或者"B"检索词或者同时含有检索词"A"和"B"的补丁信息均为命中补丁信息。逻辑“与”:检索时,补丁信息中同时含有检索词"A"和检索词"B"的补丁信息才为命中补丁信息。逻辑“非”:补丁信息中凡含有检索词"A"而不含有检索词"B"的补丁信息为命中补丁信息。下面对上述三个功能模块或者步骤分别进行说明。
宕机日志信息预处理
首先收集宕机后生成的宕机日志(即日志信息),通过宕机日志将宕机进行分类,在一种实施方式中,宕机分类可以分为内存访问错误、除零错误、soft lockup和BUG ON四类。然后根据宕机的类别,从宕机信息中提取宕机的子模块、宕机的调用栈(即宕机时函数调用关系,该调用关系在宕机信息中被保存下来)和宕机中涉及的异常日志。其中,宕机的子模块、宕机的关键调用栈和宕机中涉及的异常日志作为三种不同种类的故障信息在搜索中使用。之后将预处理好并且提取了关键特征的信息(即关键信息,包括三种不同种类的故障信息以及用于指示宕机类别的关键字)在已经预处理好的来自上游社区的补丁信息中进行布尔搜索。
来自上游社区的补丁信息预处理
上游社区补丁与宕机日志不同,往往是开发者在提交代码是写的一些提示信息,所以针对这个情况在本实例中对上游社区补丁首先进行清洗,选取涉及宕机的、一定版本的补丁信息。在另一种情况下,如果还需要查找其他故障对应的补丁信息,则可以选择其他故障对应的补丁信息。在选择出宕机对应的补丁信息之后,再从补丁信息中提取多个部分:补丁信息中的子模块(即补丁中所涉及到的模块)、补丁标题和补丁内容,然后将进行提取到的多个部分保存到本地。
布尔搜索
基于对宕机信息的预处理得到的关键信息,利用搜索引擎中的布尔搜索在已经预处理好的补丁信息的多个部分中进行搜索。根据宕机分类的不同,布尔搜索中的条件和权重也不同。下面结合附图对不同宕机类型的布尔搜索逻辑和各个搜索条件的权重进行说明。
在图3到图6中,权重数值越大对应的权重越大,例如,权重3的权重大于权重2,权重2的权重大于权重1等。
图3是根据本申请实施例的内存访问错误检索式示意图,如图3所示,在宕机的类别是内存访问错误,提取内存访问错误关键字(或称为关键词),并且提取宕机信息,然后根据提取到的关键字和宕机信息来构建检索式。下面对构建的检索式进行说明。
将内存访问错误关键字在补丁标题或者补丁内容中进行检索,在补丁标题或补丁内容中进行检索的权重为1;并且还使用宕机信息进行检索,其中,使用关键字在补丁标题或补丁内容中进行检索和使用宕机信息进行检索是“与”的关系。宕机信息有多种,可以使用不同种类的宕机信息进行检索,其中,可以在补丁子模块中检索宕机的子模块,在补丁内容中检索宕机的调用栈,在补丁内容中检索宕机的异常日志,在补丁标题中检索宕机的调用栈;这这些检索内容为“或”的关系。在图3中还为不同的检索条件配置了不同的权重,其中,补丁子模块中检索宕机的子模块权重为2,在补丁内容中检索宕机的调用栈权重为3到6(这里权重3到6表示可以在3到6之间灵活配置该权重,例如可以针对不同的调用栈来配置不同的权重),在补丁内容中检索宕机的异常日志权重为3,在补丁标题中检索宕机的调用栈权重为3。
假设检索到的第一个补丁信息是依靠“补丁标题包含内存访问关键字”并且“补丁子模块中有宕机子模块”的搜索条件搜索到的,此时可以提示运维人员该补丁信息是依靠权重为1和权重为2的搜索条件搜索到的。
假设检索到的第二补丁信息是依靠“补丁内容包含内存访问关键字”并且“补丁内容中有宕机的异常日志”的搜索条件搜索到的,此时,可以提示运维人员该补丁信息是依靠权重为1和权重为3的搜索条件搜索到的。
第二个补丁信息相对于第一个补丁信息来说权重更大,因此也可以直接将第二个补丁信息作为与故障的关键信息匹配的补丁信息。
图4是根据本申请实施例的除零错误检索式示意图,如图4所示,在宕机的类别是除零错误,提取除零错误关键字,并且提取宕机信息,然后根据提取到的关键字和宕机信息来构建检索式。下面对构建的检索式进行说明。
将除零错误关键字在补丁标题或者补丁内容中进行检索,在补丁标题或补丁内容中进行检索的权重为1;并且还使用宕机信息进行检索,其中,使用关键字在补丁标题或补丁内容中进行检索和使用宕机信息进行检索是“与”的关系。宕机信息有多种,可以使用不同种类的宕机信息进行检索,其中,可以在补丁子模块中检索宕机的子模块,在补丁内容中检索发生除零错误的函数,在补丁标题中检索发生除零错误的函数;这这些检索内容为“或”的关系。在图4中还为不同的检索条件配置了不同的权重,其中,在补丁子模块中检索宕机的子模块的权重为2,在补丁内容中检索发生除零错误的函数的权重为3,在补丁标题中检索发生除零错误的函数的权重为2。
图5是根据本申请实施例的soft lockup检索式示意图,如图5所示,在宕机的类别是soft lockup,提取soft lockup关键字,并且提取宕机信息,然后根据提取到的关键字和宕机信息来构建检索式。下面对构建的检索式进行说明。
将soft lockup关键字在补丁标题或者补丁内容中进行检索,在补丁标题或补丁内容中进行检索的权重为1;并且还使用宕机信息进行检索,其中,使用关键字在补丁标题或补丁内容中进行检索和使用宕机信息进行检索是“与”的关系。宕机信息有多种,可以使用不同种类的宕机信息进行检索,其中,可以在补丁子模块中检索宕机的子模块,在补丁内容中检索宕机的调用栈,在补丁标题中检索宕机的调用栈;这这些检索内容为“或”的关系。在图5中还为不同的检索条件配置了不同的权重,其中,在补丁子模块中检索宕机的子模块的权重为2,在补丁内容中检索宕机的调用栈的权重为6,在补丁标题中检索宕机的调用栈的权重为3到5(例如可以针对不同的调用栈可以配置不同的权重)。
图6是根据本申请实施例的BUG ON检索式示意图,如图6所示,在宕机的类别是BUGON,提取BUG ON关键字,并且提取宕机信息,然后根据提取到的关键字和宕机信息来构建检索式。下面对构建的检索式进行说明。
将BUG ON关键字在补丁标题或者补丁内容中进行检索,在补丁标题或补丁内容中进行检索的权重为1;并且还使用宕机信息进行检索,其中,使用关键字在补丁标题或补丁内容中进行检索和使用宕机信息进行检索是“与”的关系。宕机信息有多种,可以使用不同种类的宕机信息进行检索,其中,可以在补丁子模块中检索宕机的子模块,在补丁内容中检索宕机的调用栈,在补丁标题中检索宕机的调用栈,在补丁标题中检索BUG ON文件,在补丁内容中检索BUG ON文件;这这些检索内容为“或”的关系。在图6中还为不同的检索条件配置了不同的权重,其中,可以在补丁子模块中检索宕机的子模块的权重为2,在补丁内容中检索宕机的调用栈的权重为4,在补丁标题中检索宕机的调用栈的权重为4,在补丁标题中检索BUG ON文件的权重为4,在补丁内容中检索BUG ON文件的权重为4。
在上述可选实施例中,针对普通公开的搜索引擎搜索范围过大的问题,上述可选实施例将关注的上游社区的补丁进行预处理后保存到本地后构建搜索,减小搜索范围,增强匹配的准确度。针对普通网站内只能通过单字符串进行搜索匹配的问题,上述实施方式将宕机信息和上游社区的补丁方案都进行预处理,分类、提炼出关键信息后进行多特征融合搜索匹配。从而,上述可选实施例能够自动提取宕机相关的关键信息,结合布尔搜索能够基于不同的宕机分类,在单个补丁信息中不同的区域中进行不同的搜索,能够更快地搜索到匹配度高的补丁,提高搜索效率。
在本实施例中,提供一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行以上实施例中的方法。
上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。
该本实施例中就提供了这样的一种装置或系统。该装置被称为补丁处理装置,图7是根据本申请实施例的补丁处理装置的示意图,如图7所示,该装置包括:第一获取模块72,用于从补丁发布平台获取已经发布的补丁的补丁信息,并将所述补丁信息保存在本地,其中,所述补丁信息用于对所述补丁进行描述;第二获取模块74,用于获取系统发生故障之后的日志信息;第三获取模块76,用于根据所述日志信息获取用于标识所述故障的关键信息;搜索模块78,用于根据所述故障的关键信息在本地保存的补丁信息中搜索与所述关键信息匹配的补丁信息。
该系统或者装置用于实现上述的实施例中的方法的功能,该系统或者装置中的每个模块与方法中的每个步骤相对应,已经在方法中进行过说明的,在此不再赘述。
例如,所述第一获取模块72,用于对所述补丁信息的不同部分进行提取,得到所述补丁信息对应的多个部分;将提取到的所述补丁信息的多个部分分别保存在本地。
又例如,所述第三获取模块76,用于根据所述日志信息确定所述故障的类别;根据所述故障的类别确定用于指示所述故障的类别的关键字;从所述日志信息中获取与所述故障的类别对应的所述故障的故障信息,其中,所述关键信息包括所述关键字和所述故障信息。
可选地,所述第三获取模块76,用于从所述日志信息按照故障信息的种类提取所述故障的故障信息;保存提取到的每个种类的故障信息;其中,所述种类包括以下至少之一:所述故障涉及到的模块、所述故障的调用栈、与所述故障对应的异常日志。
又例如,所述搜索模块78,用于将所述关键字和所述故障的故障信息在本地保存的补丁信息中进行搜索;将检索到所述关键字和所述故障信息中的至少一种种类的补丁信息,作为与所述关键信息匹配的补丁信息。
可选地,所述搜索模块78,用于根据所述故障的关键信息在所述补丁信息的不同部分被搜索到时所对应权重,确定与所述关键信息匹配的补丁信息。
可选地,所述搜索模块78,用于生成基于布尔搜索的检索式,其中,所述基于布尔搜索的检索式用于指示所述故障的关键信息中的部分或全部在所述补丁信息的不同部分被检索到的逻辑关系;根据所述检索式搜索与所述故障的关键信息匹配的补丁信息。
又例如,所述装置还可以包括:配置模块,用于针对在所述补丁信息的不同部分检索到所述关键词的情况配置权重,其中,所述补丁信息中的每个部分检索到所述关键词的情况均对应一个权重;针对在所述补丁信息的不同部分检索到不同种类的故障信息的情况分别配置权重;其中,所述补丁信息中每个部分检索到每种故障信息的情况均对应一个权重。
通过上述实施例解决了现有技术中运维人员人工输入关键词检索软件系统故障对应的补丁时所存在的检索效率低的问题,进而在提高检索效率的基础上,在一定程度上还增加了检索的准确性。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种补丁处理方法,包括:
获取已经发布的补丁的补丁信息,并将所述补丁信息进行保存,其中,所述补丁信息用于对所述补丁进行描述;
获取系统发生故障之后的日志信息;
根据所述日志信息获取用于标识所述故障的关键信息;
根据所述故障的关键信息在保存的补丁信息中搜索与所述关键信息匹配的补丁信息。
2.根据权利要求1所述的方法,其中,将所述补丁信息进行保存包括:
对所述补丁信息的不同部分进行提取,得到所述补丁信息对应的多个部分;
将提取到的所述补丁信息的多个部分分别进行保存。
3.根据权利要求2所述的方法,其特征在于,所述补丁信息对应的多个部分包括:所述补丁信息中包括的补丁标题、所述补丁信息中包括的补丁内容以及所述补丁信息对应的补丁中所涉及到的模块。
4.根据权利要求1所述的方法,其特征在于,根据所述日志信息获取用于标识所述故障的关键信息包括:
根据所述日志信息确定所述故障的类别;
根据所述故障的类别确定用于指示所述故障的类别的关键字;
从所述日志信息中获取与所述故障的类别对应的所述故障的故障信息,其中,所述关键信息包括所述关键字和所述故障信息。
5.根据权利要求4所述的方法,其特征在于,从所述日志信息中提取与所述故障的类别对应的所述故障的故障信息包括:
从所述日志信息按照故障信息的种类提取所述故障的故障信息;
保存提取到的故障信息;其中,所述种类包括以下至少之一:所述故障涉及到的模块、所述故障的调用栈、与所述故障对应的异常日志。
6.根据权利要求5所述的方法,其特征在于,根据所述故障的关键信息在保存的补丁信息中搜索与所述关键信息匹配的补丁信息包括:
将所述关键字和所述故障的故障信息在保存的补丁信息中进行搜索;
将检索到所述关键字和所述故障信息中的至少一种种类的补丁信息,作为与所述关键信息匹配的补丁信息。
7.根据权利要求2至6中任一项所述的方法,其中,根据所述故障的关键信息在保存的补丁信息中搜索与所述关键信息匹配的补丁信息包括:
生成基于布尔搜索的检索式,其中,基于布尔搜索的检索式用于指示所述故障的关键信息中的部分或全部在所述补丁信息的不同部分被检索到的逻辑关系;
根据所述检索式搜索与所述故障的关键信息匹配的补丁信息。
8.根据权利要求2至6中任一项所述的方法,其中,根据所述故障的关键信息在保存的补丁信息中搜索与所述关键信息匹配的补丁信息包括:
根据所述故障的关键信息在所述补丁信息的不同部分被搜索到时所对应权重,确定与所述关键信息匹配的补丁信息。
9.根据权利要求7所述的方法,其中,在根据所述故障的关键信息在保存的补丁信息中搜索与所述关键信息匹配的补丁信息之前,所述方法还包括:
针对在所述补丁信息的不同部分检索到所述关键词的情况配置权重,其中,所述补丁信息中的每个部分检索到所述关键词的情况均对应一个权重;
针对在所述补丁信息的不同部分检索到不同种类的故障信息的情况分别配置权重;其中,所述补丁信息中每个部分检索到每种故障信息的情况均对应一个权重。
10.根据权利要求1至6中任一项所述的方法,其中,所述故障包括宕机,所述宕机的类别包括以下至少之一:内存访问错误导致的宕机、除零错误导致的宕机、软锁死导致的宕机、检查BUGON条件不满足导致的宕机。
11.根据权利要求1至6中任一项所述的方法,其中,
获取已经发布的补丁的补丁信息包括:从补丁发布平台获取所述补丁信息;和/或,
将所述补丁信息进行保存包括:将所述补丁信息保存在本地或云服务器上。
12.一种补丁处理装置,包括:
第一获取模块,用于获取已经发布的补丁的补丁信息,并将所述补丁信息进行保存,其中,所述补丁信息用于对所述补丁进行描述;
第二获取模块,用于获取系统发生故障之后的日志信息;
第三获取模块,用于根据所述日志信息获取用于标识所述故障的关键信息;
搜索模块,用于根据所述故障的关键信息在保存的补丁信息中搜索与所述关键信息匹配的补丁信息。
13.一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1至11任一项所述的方法步骤。
14.一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现权利要求1至11任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210821070.8A CN115186001A (zh) | 2022-07-13 | 2022-07-13 | 一种补丁处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210821070.8A CN115186001A (zh) | 2022-07-13 | 2022-07-13 | 一种补丁处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115186001A true CN115186001A (zh) | 2022-10-14 |
Family
ID=83519593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210821070.8A Pending CN115186001A (zh) | 2022-07-13 | 2022-07-13 | 一种补丁处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115186001A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225770A (zh) * | 2023-04-26 | 2023-06-06 | 阿里云计算有限公司 | 补丁匹配方法、装置、设备及存储介质 |
-
2022
- 2022-07-13 CN CN202210821070.8A patent/CN115186001A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225770A (zh) * | 2023-04-26 | 2023-06-06 | 阿里云计算有限公司 | 补丁匹配方法、装置、设备及存储介质 |
CN116225770B (zh) * | 2023-04-26 | 2023-10-20 | 阿里云计算有限公司 | 补丁匹配方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11334602B2 (en) | Methods and systems for alerting based on event classification and for automatic event classification | |
Yuan et al. | Automated known problem diagnosis with event traces | |
US9652318B2 (en) | System and method for automatically managing fault events of data center | |
US9612898B2 (en) | Fault analysis apparatus, fault analysis method, and recording medium | |
US11153144B2 (en) | System and method of automated fault correction in a network environment | |
CN109766719B (zh) | 一种敏感信息检测方法、装置及电子设备 | |
CN110224874B (zh) | 一种设备故障的处理方法及装置 | |
US10248517B2 (en) | Computer-implemented method, information processing device, and recording medium | |
Chen et al. | Identifying linked incidents in large-scale online service systems | |
US10628250B2 (en) | Search for information related to an incident | |
US11080171B2 (en) | Test cycle optimization using contextual association mapping | |
CN109213773B (zh) | 一种在线故障的诊断方法、装置及电子设备 | |
CN110909363A (zh) | 基于大数据的软件第三方组件漏洞应急响应系统及方法 | |
CN106250319A (zh) | 静态代码扫描结果处理方法和装置 | |
US10305738B2 (en) | System and method for contextual clustering of granular changes in configuration items | |
CN110716539A (zh) | 一种故障诊断分析方法和装置 | |
CN112799722A (zh) | 命令识别方法、装置、设备和存储介质 | |
CN115186001A (zh) | 一种补丁处理方法和装置 | |
JP7470235B2 (ja) | 語彙抽出支援システムおよび語彙抽出支援方法 | |
CN110968779A (zh) | 网页信息爬取的处理方法和装置 | |
CN113641702B (zh) | 一种语句审计后与数据库客户端交互处理方法和装置 | |
CN116302984A (zh) | 一种测试任务的根因分析方法、装置及相关设备 | |
US20230011129A1 (en) | Log analyzer for fault detection | |
CN112699005A (zh) | 服务器硬件故障监控的方法、电子设备及存储介质 | |
CN112199573A (zh) | 一种非法交易主动探测方法及系统 |
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 |