一种计算机故障定位方法和计算机技术

技术编号:37603602 阅读:13 留言:0更新日期:2023-05-18 11:54
本申请实施例提供了一种计算机故障定位方法和计算机,用于降低计算机故障定位的开销,包括:使用预设算法在目标代码中确定插桩点,在插桩点设置插桩程序;监控计算机功能模块,获得并存储采集数据;使用异常检测算法对采集数据进行分析,若存在异常则生成异常告警;若生成异常告警,则运行插桩程序,以定位目标代码中的漏洞bug。针对函数级异常,在目标代码中确定插桩点,设置插桩程序。在生成异常告警后,运行插桩程序,对目标代码的运行进行监控,以快速定位目标代码中的漏洞。只在发生异常时运行插桩程序,相比于插桩程序随主程序运行的现有技术,可以减小运行插桩程序带来的开销。销。销。

【技术实现步骤摘要】
一种计算机故障定位方法和计算机


[0001]本申请实施例涉及计算机领域,具体涉及一种计算机故障定位方法和计算机。

技术介绍

[0002]随着数字化、信息化、智能化的快速发展,大量功能和特性上云,以及数据的爆炸式增长,为了服务各种各样的应用以及管理和存储超大规模的数据,现有的软件系统(如云计算系统,大数据系统等)整个系统变得越来越庞大和复杂。如此复杂而庞大的系统使得故障很常见,但定位故障也变得极其困难。现有的计算机故障定位方法存在故障定位能力弱或开销大的问题,因此研究一种定位能力强,而且开销小的通用计算机故障定位方法显得十分必要。

技术实现思路

[0003]本申请实施例提供了一种计算机故障定位方法和计算机,用于降低计算机故障定位的开销。
[0004]本申请实施例第一方面提供了一种计算机故障定位方法,其特征在于,包括:
[0005]使用预设算法在目标代码中确定插桩点,在插桩点设置插桩程序;
[0006]监控计算机功能模块,获得并存储采集数据;
[0007]使用异常检测算法对采集数据进行分析,若存在异常则生成异常告警;
[0008]若生成异常告警,则运行插桩程序,以定位目标代码中的漏洞bug。
[0009]基于本申请实施例第一方面,本申请实施例第一方面的第一种实现方式中,生成异常告警后,所述方法还包括:
[0010]若生成异常告警,则根据异常告警,从计算机功能模块确定存在异常的目标功能模块;
[0011]对目标功能模块进行监控,以查找目标功能模块的异常。
[0012]基于本申请实施例第一方面或第一方面的第一种实现方式,本申请实施例第一方面的第二种实现方式中,使用预设算法在目标代码中确定插桩点,具体包括:
[0013]采用抽象语法树AST分析目标代码,识别脆弱函数/操作,确定插桩点。
[0014]基于本申请实施例第一方面、第一方面的第一种实现方式和第二种实现方式任一种,本申请实施例第一方面的第三种实现方式中,使用预设算法在目标代码中确定插桩点,具体包括:
[0015]根据预存有脆弱函数/操作的函数库,在目标代码中识别脆弱函数/操作,确定插桩点。
[0016]基于本申请实施例第一方面、第一方面的第一种实现方式至第三种实现方式任一种,本申请实施例第一方面的第四种实现方式中,脆弱函数/操作包括与资源相关、与输入输出IO端口相关、与网络相关、与同步相关、与参数输入相关和/或与事件相关的函数/操作。
[0017]基于本申请实施例第一方面、第一方面的第一种实现方式至第四种实现方式任一种,本申请实施例第一方面的第五种实现方式中,脆弱函数/操作包括for循环和/或while循环。
[0018]基于本申请实施例第一方面、第一方面的第一种实现方式至第五种实现方式任一种,本申请实施例第一方面的第六种实现方式中,使用预设算法在目标代码中确定插桩点,具体包括:
[0019]根据预存有预定函数的函数库,在目标代码中识别预定函数,确定插桩点,预定函数允许自定义设置。
[0020]基于本申请实施例第一方面、第一方面的第一种实现方式至第六种实现方式任一种,本申请实施例第一方面的第七种实现方式中,运行插桩程序,具体包括:
[0021]使用扩展的伯克利数据包过滤器eBPF技术运行插桩程序。
[0022]基于本申请实施例第一方面、第一方面的第一种实现方式至第七种实现方式任一种,本申请实施例第一方面的第八种实现方式中,使用异常检测算法对采集数据进行分析,具体包括:
[0023]使用邻近算法KNN算法、局部异常因子LOF算法或长短期记忆网络LSTM算法对采集数据进行分析。
[0024]基于本申请实施例第一方面、第一方面的第一种实现方式至第八种实现方式任一种,本申请实施例第一方面的第九种实现方式中,使用异常检测算法对采集数据进行分析,具体包括:
[0025]使用压缩感知算法对采集数据进行分析。
[0026]基于本申请实施例第一方面、第一方面的第一种实现方式至第九种实现方式任一种,本申请实施例第一方面的第十种实现方式中,所述压缩感知算法中,采用带替换的抽样算法。
[0027]基于本申请实施例第一方面、第一方面的第一种实现方式至第十种实现方式任一种,本申请实施例第一方面的第十一种实现方式中,所述压缩感知算法中,采用查找表LUT进行样本相似度计算。
[0028]基于本申请实施例第一方面、第一方面的第一种实现方式至第十一种实现方式任一种,本申请实施例第一方面的第十二种实现方式中,所述压缩感知算法中,在采样时在第一阈值的基础上去除第一样本并增加第二样本,计算得到第二阈值,第一阈值是根据第一样本得到的。
[0029]基于本申请实施例第一方面、第一方面的第一种实现方式至第十二种实现方式任一种,本申请实施例第一方面的第十三种实现方式中,计算机功能模块包括中央处理单元CPU、内存、网络模块和/或系统调用模块。
[0030]从以上技术方案可以看出,本申请实施例具有以下优点:
[0031]本申请中,针对函数级异常,在目标代码中确定插桩点,设置插桩程序。在生成异常告警后,运行插桩程序,对目标代码的运行进行监控,以快速定位目标代码中的漏洞。只在发生异常时运行插桩程序,相比于插桩程序随主程序运行的现有技术,可以减小运行插桩程序带来的开销。
[0032]本申请实施例第二方面提供了一种计算机,其特征在于,包括:故障定位模块、数
据采集模块和异常检测模块;
[0033]故障定位模块使用预设算法在目标代码中确定插桩点,在插桩点设置插桩程序;
[0034]数据采集模块监控计算机功能模块,获得并存储采集数据;
[0035]异常检测模块使用异常检测算法对采集数据进行分析,若存在异常则生成异常告警;
[0036]若异常检测模块生成异常告警,则故障定位模块运行插桩程序,以定位目标代码中的漏洞bug。
[0037]基于本申请实施例第二方面,本申请实施例第二方面的第一种实现方式中,异常检测模块生成异常告警后,所述方法还包括:
[0038]若异常检测模块生成异常告警,则故障定位模块根据异常告警,从计算机功能模块确定存在异常的目标功能模块;
[0039]故障定位模块对目标功能模块进行监控,以查找目标功能模块的异常。
[0040]基于本申请实施例第二方面或第二方面的第一种实现方式,本申请实施例第二方面的第二种实现方式中,故障定位模块使用预设算法在目标代码中确定插桩点,具体包括:
[0041]故障定位模块采用抽象语法树AST分析目标代码,识别脆弱函数/操作,确定插桩点。
[0042]基于本申请实施例第二方面、第二方面的第一种实现方式和第二种实现方式任一种,本申请实施例第二方面的第三种实现方式中,故障定位模块使用预设算法在目标代码中确定插桩点,具体包括:
[0043]故障定位模块根据预存有脆弱函数/操作的函数库,在目标代码本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算机故障定位方法,其特征在于,包括:使用预设算法在目标代码中确定插桩点,在插桩点设置插桩程序;监控计算机功能模块,获得并存储采集数据;使用异常检测算法对采集数据进行分析,若存在异常则生成异常告警;若生成异常告警,则运行插桩程序,以定位目标代码中的漏洞bug。2.根据权利要求1所述的计算机故障定位方法,其特征在于,生成异常告警后,所述方法还包括:若生成异常告警,则根据异常告警,从计算机功能模块确定存在异常的目标功能模块;对目标功能模块进行监控,以查找目标功能模块的异常。3.根据权利要求1所述的计算机故障定位方法,其特征在于,使用预设算法在目标代码中确定插桩点,具体包括:采用抽象语法树AST分析目标代码,识别脆弱函数/操作,确定插桩点。4.根据权利要求1所述的计算机故障定位方法,其特征在于,使用预设算法在目标代码中确定插桩点,具体包括:根据预存有脆弱函数/操作的函数库,在目标代码中识别脆弱函数/操作,确定插桩点。5.根据权利要求3或4所述的计算机故障定位方法,其特征在于,脆弱函数/操作包括与资源相关、与输入输出IO端口相关、与网络相关、与同步相关、与参数输入相关和/或与事件相关的函数/操作。6.根据权利要求3或4所述的计算机故障定位方法,其特征在于,脆弱函数/操作包括for循环和/或while循环。7.根据权利要求1所述的计算机故障定位方法,其特征在于,使用预设算法在目标代码中确定插桩点,具体包括:根据预存有预定函数的函数库,在目标代码中识别预定函数,确定插桩点,预定函数允许自定义设置。8.根据权利要求1所述的计算机故障定...

【专利技术属性】
技术研发人员:李诗逸夏文满洋
申请(专利权)人:哈尔滨工业大学深圳
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1