一种设定监控指标阈值的方法和装置 【技术领域】
本发明涉及应用系统监控技术领域, 特别涉及一种设定监控指标阈值的方法和装置。 背景技术 随着计算机技术的不断发展, 很多企业为了提高运营效率都大规模的应用 IT 技 术, 使企业核心业务对 IT 系统的依赖性越来越强, 企业应用系统以及 IT 系统基础架构的可 用、 稳定、 高效和安全对企业的生产、 经营和声誉都有着至关重要的影响。
国际上具有品类齐全和纷繁复杂的 IT 系统运维管理解决方案, 但在针对 IT 系统 管理人员最为关心的应用系统健康状况监测上, 市场上却没有针对性强和功能全面的产 品。许多产品虽然能够为用户提供大量的监测指标和数据, 但是如何从这些纷繁复杂的监 控指标中准确、 自动的分析和判断出应用系统是否健康却非常困难。IT 系统管理人员最希 望得到的是一个基本判断 : 应用系统现在是否健康、 是否可用。因此在应用系统监控过程
中, 如何全面、 准确地发现导致应用系统性能的严重下降的监控指标值, 是一个非常重要的 问题。
目前, 判断应用系统是否健康或是否可用的常见方法是 : 由人工设定监控指标阈 值 ( 包括预警阈值或告警阈值 ), 也就是运维人员根据自己的维护经验确定某些监控指标 的阈值后, 为这些监控指标设定监控指标阈值。当检测到的监控指标值大于监控指标阈值 时, 说明系统处于不健康状态, 进行预警或告警。
人工设定监控指标阈值, 运维人员主要依靠自身的维护经验, 凭借主观判断能力 确定监控指标阈值, 因此设定监控指标阈值的准确性较低。 同时, 对于设置复杂度较高的关 联指标阈值 ( 由多个组合的监控指标共同设置阈值 ), 不但人工操作复杂度高, 设定监控指 标阈值的准确性也偏低。
综上所述, 现有技术中人工设定监控指标阈值的准确性较低。 发明内容 本发明实施例提供一种设定监控指标阈值的方法和装置, 用以解决现有技术中人 工设定监控指标阈值的准确性较低的问题。
本发明实施提供一种设定监控指标阈值的方法, 包括 :
从数据库中采集多条监控数据, 其中每条监控数据包括监控指标值和应用系统响 应时间值 ;
根据采集的所述监控指标值, 确定所述监控指标值对应的监控指标离散状态, 根 据采集的所述应用系统响应时间值, 确定所述应用系统响应时间值对应的应用系统响应时 间离散状态, 确定所述监控指标离散状态与所述应用系统响应时间离散状态的关联规则 ;
根据所述关联规则设定监控指标阈值。
所述确定监控指标值对应的监控指标离散状态, 包括 :
将所述监控指标值映射到预先设置的多个离散状态中, 得到所述监控指标值对应 的监控指标离散状态 ;
所述确定应用系统响应时间值对应的应用系统响应时间离散状态, 包括 :
将所述应用系统响应时间值映射到预先设置的多个离散状态中, 得到所述监控指 标值对应的监控指标离散状态。
采用 K-means 聚类算法对所述监控指标值进行数据离散化。
通过对所述监控指标离散状态和所述系统响应时间离散状态进行关联规则挖掘, 确定所述监控指标离散状态与应用系统响应时间离散状态的关联规则。
所述通过关联规则挖掘确定关联规则包括 :
通过 Apriori 算法, 从监控指标离散状态和应用系统响应时间离散状态组成的项 集中确定支持度不小于最小支持度的频繁项集 ;
通过可信度计算算法, 从所述确定的频繁项集中确定可信度不小于最小可信度的 频繁项集, 得到所述监控指标离散状态与应用系统响应时间离散状态的关联规则。
所述最小支持度是 10% ;
所述最小可信度是 85%。
所述从数据库中采集多条监控数据包括 :
选取监控指标, 并采集包含选取的监控指标对应的监控指标值的监控数据。
一种设定监控指标阈值的装置, 包括 :
采集模块, 用于从数据库中采集多条监控数据, 其中每条监控数据包括监控指标 值和应用系统响应时间值 ;
关联规则模块, 用于根据采集的所述监控指标值, 确定所述监控指标值对应的监 控指标离散状态, 根据采集的所述应用系统响应时间值, 确定所述应用系统响应时间值对 应的应用系统响应时间离散状态, 确定所述监控指标离散状态与所述应用系统响应时间离 散状态的关联规则 ;
阈值模块, 用于根据所述关联规则设定监控指标阈值。
所述关联规则模块包括 :
第一离散模块, 用于将所述监控指标值映射到预先设置的多个离散状态中, 得到 所述监控指标值对应的监控指标离散状态 ;
第二离散模块, 用于对所述应用系统响应时间值进行数据离散化, 将所述应用系 统响应时间值映射到预先设置的多个离散状态中, 得到所述应用系统响应时间值对应的应 用系统响应时间离散状态。
所述第一离散模块还具体用于 :
采用 K-means 聚类算法对所述监控指标值进行数据离散化。
所述关联规则模块还包括 :
挖掘模块, 用于对所述监控指标离散状态和所述系统响应时间离散状态进行关联 规则挖掘, 确定监控指标离散状态与应用系统响应时间离散状态的关联规则。
所述挖掘模块还具体用于 :
通过 Apriori 算法, 从监控指标离散状态和应用系统响应时间离散状态组成的项 集中确定支持度不小于最小支持度的频繁项集 ;通过可信度计算算法, 从所述确定的频繁项集中确定可信度不小于最小可信度的 频繁项集, 得到所述监控指标离散状态与应用系统响应时间离散状态的关联规则。
所述采集模块还具体用于 :
选取监控指标, 并采集包含选取的监控指标对应的监控指标值的监控数据。
由于能够将关联规则技术应用到设定监控指标阈值领域, 能够提高设定监控指标 阈值的准确性, 进一步地, 本发明实施例可以由计算机设备设定监控指标阈值, 简化人工操 作。 附图说明
图 1 为本发明实施例中设定监控指标阈值的方法示意图 ;
图 2 为本发明实施例中产生关联规则的过程示意图 ;
图 3 为本发明实施例中设定监控指标阈值的装置示意图。 具体实施方式
本发明实施例从数据库中采集监控数据, 其中监控数据包括监控指标值和应用系 统响应时间值 ; 根据所述监控指标值和所述应用系统响应时间值, 确定所述监控指标值对 应的监控指标离散状态与所述应用系统响应时间值对应的应用系统响应时间离散状态的 关联规则 ; 根据所述关联规则设定监控指标阈值。由于将关联规则技术应用到设定监控指 标阈值领域, 能够提高设定监控指标阈值的准确性。 此外, 本发明实施例可以由计算机设备 设定监控指标阈值, 简化人工操作。
下面结合说明书附图对本发明方案作进一步详细说明。
参见图 1, 本发明实施例提供的一种设定监控指标阈值的方法, 包括如下步骤 :
步骤 101、 从数据库中采集多条监控数据, 其中每条监控数据包括监控指标值和应 用系统响应时间值。
步骤 102、 根据采集的所述监控指标值, 确定所述监控指标值对应的监控指标离散 状态, 根据采集的所述应用系统响应时间值, 确定所述应用系统响应时间值对应的应用系 统响应时间离散状态, 确定所述监控指标离散状态与所述应用系统响应时间离散状态的关 联规则。
步骤 103、 根据关联规则设定监控指标阈值。
步骤 101 中, 每条监控数据包括监控指标值和应用系统响应时间值, 可以理解为 : 一个时间点对应一条监控数据, 在同一个时间点, 应用系统的监控指标的具体数值与应用 系统响应时间的具体数值称为一条监控数据。
比如, 数据库中的包含如下数据 :
编号 CPU 使用率 (% ) 1 2 10 15CPU 温度 (℃ ) 33 386内存使用率 (% ) 26 35应用系统响应时间 ( 秒 ) 0.5 1.0101984415 A CN 101984418说44 89 25明56 68 81书1.5 3.0 20.54/7 页3 4 5
30 82 95表1
表 1 中, 首行的 “CPU 使用率” 、 “CPU 温度” 和 “内存使用率” 是三个监控指标, “应 用系统响应时间” 是反映应用系统总体性能的综合指标。第 2 ~ 4 列中的数值为监控指标 值, 第 5 列中的数值为应用系统响应时间值。编号 1 ~ 5 可以理解成 5 个时间点, 一个时间 点对应一个编号, 每个编号对应一条监控数据。
一般的, 数据库中存在的监控指标值都可以采集, 然后在后续步骤中, 找出监控指 标值对应的监控指标与应用系统反应时间之间的关联关系, 由于采集的监控指标值越多, 计算时间复杂度越高, 因此, 为了降低后续步骤的计算时间复杂度, 步骤 101 之前, 还可以 包括 : 选取监控指标。
其中, 可以选取对影响应用系统性能起关键作用的一个或几个监控指标。 相应的, 步骤 101 中, 采集包含选取的监控指标对应的监控指标值的监控数据。
为了进一步提高本发明实施例设置监控指标的准确性, 降低个别偶然错误数据对 后续计算的影响, 步骤 101 中, 采集监控数据的数量可以很大, 比如十万条以上的监控数 据。
步骤 102 中, 确定监控指标值对应的监控指标离散状态的方法包括 :
将所述监控指标值映射到预先设置的多个离散状态中, 得到所述监控指标值对应 的监控指标离散状态。也就是对监控指标值进行数据离散化。
其中, 对监控指标值进行数据离散化需要采用离散化算法, 本实施例中, 采用 K-means( 一种离散化算法 ) 聚类算法, 将监控指标值映射到几个离散的状态区间。比如 : 一个监控指标是 “CPU 使用率” , 预先设置 5 个离散状态, 经过离散化后, 5 个离散状态为 :
CPU 使用率小于 20%是优秀 CPU 使用率 ;
CPU 使用率大于等于 20%且小于 50%是良好 CPU 使用率 ;
CPU 使用率大于等于 50%且小于 60%是中等 CPU 使用率 ;
CPU 使用率大于等于 60%且小于 80%是差 CPU 使用率 ;
CPU 使用率大于等于 80%且小于等于 100%是差 CPU 使用率。
沿用表 1 中 CPU 使用率的数值举例, 编号 1 ~ 5 的 CPU 使用率对应的离散状态分 别是 : 优秀 CPU 使用率、 优秀 CPU 使用率、 良好 CPU 使用率、 差 CPU 使用率、 差 CPU 使用率。
使用同样的方法, 我们也可以预先设置其它监控指标对应的离散状态, 然后将监 控指标值映射到对应的监控指标离散状态中。
每个监控指标预先设置的离散状态数可以不同, 根据需要预先设置每个监控指标 的离散状态的数量。 比如 : 一个监控指标预先设置 5 个离散状态, 另一个监控指标预先设置 4 个离散状态。
步骤 102 中, 确定应用系统响应时间值对应的应用系统响应时间离散状态的方法7包括 :101984415 A CN 101984418
说明书5/7 页将应用系统响应时间值映射到预先设置的多个离散状态中, 得到所述监控指标值 对应的监控指标离散状态。也就是对应用系统响应时间值进行数据离散化。
与监控指标值不同的是, 对应用系统响应时间值进行数据离散化, 不需要采用 K-means 聚类算法, 一般根据人的感知对应用系统响应时间值进行数据离散化。比如 : 我们 为应用系统响应时间设置 3 个离散状态 :
应用系统响应时间小于 2 秒表示应用系统正常 ;
应用系统响应时间大于等于 2 秒且小于 4 秒表示应用系统预警 ;
应用系统响应时间大于等于 4 秒表示应用系统告警。
沿用表 1 中应用系统响应时间的数值举例, 编号 1 ~ 5 的应用系统响应时间值对 应的离散状态分别是 : 应用系统正常、 应用系统正常、 应用系统正常、 应用系统预警、 应用系 统告警。
需要说明的是, 本发明实施例中所举例所用的数值和离散状态都是为了阐述本发 明方案, 并不用于限定本发明。
步骤 102 中, 在将监控数据离散化后, 得到监控指标离散状态和系统响应时间离 散状态, 然后对监控指标离散状态和系统响应时间离散状态进行关联规则挖掘, 产生监控 指标离散状态与应用系统响应时间离散状态的关联规则。 关联规则技术或关联规则挖掘技 术是一项在国际上应用广泛的技术。关联规则挖掘包括两个阶段 : 频繁项集查找和可信度 计算。 频繁项集查找需用到频繁项集查找算法, 可信度计算需用到可信度计算算法, 这两类 算法业界都有较成熟的算法, 在此不再赘述。 本实施例中, 将由监控指标离散状态和应用系统响应时间离散状态组成的项集作 为频繁项集查找算法的输入, 通过频繁项集查找算法从监控指标离散状态和应用系统响应 时间离散状态组成的项集中查找出支持度 ( 或出现频率 ) 不低于预设的最小支持度的项 集, 称为频繁项集。本实施例中, 频繁项集查找算法采用 Apriori 算法, 经过多次实验, 将最 小支持度 (minsupport) 设定为 10%。
将经过频繁项集查找算法后得到的频繁项集, 再通过可信度计算算法, 找出可信 度不低于最小可信度的频繁项集, 淘汰可信度低的频繁项集, 最终得到的频繁项集可以确 定关联规则。经过多次实验, 本实施例将最小可信度 minconfidence 设定为 85%。
为了更直观地了解关联规则产生过程, 可以参见图 2, 为关联规则产生过程的示 意图, 将所有离散后的数据 ( 由监控指标离散状态和应用系统响应时间离散状态组成的项 集 ) 经过关联规则技术 ( 包括频繁项集查找算法和可信度计算算法 ) 处理后, 产生监控指 标离散状态和应用系统响应时间离散状态的关联规则。
关联规则是形如 A => D 或 {A, B, C} => D 之类的关系, 含义为 : A 事务发生时导 致 D 事务发生 ; 或 A、 B、 C 三个事务同时发生时导致 D 事务发生。比如 : 经过关联规则挖掘, 我们得到 { 差 CPU 使用率 } => { 应用系统告警 }, 或者 { 差 CPU 使用率, 高 CPU 温度 } = > { 应用系统告警 }。
步骤 103 中, 根据步骤 102 得到的关联规则设定监控指标阈值。 比如我们得到 { 差 CPU 使用率 } => { 应用系统告警 } 后, 从前面的例子中知道, CPU 的使用率大于等于 80% 且小于等于 100%对应差 CPU 使用率。因此可以将 CPU 的使用率的告警阈值设为 80%。利 用相同的原理, 可以设定 CPU 使用率的预警阈值, 以及设定其它监控指标的阈值, 在此不再
赘述。 基于同一发明构思, 本发明实施例还提供了一种设定监控指标阈值的装置, 装置 的原理与设定监控指标阈值的方法原理类似, 因此装置的实例可以参照方法的实施, 重复 之处, 不再赘述。
参见图 3, 本发明提供的一种设定监控指标阈值的装置, 包括 :
采集模块 301, 用于从数据库中采集多条监控数据, 其中每条监控数据包括监控指 标值和应用系统响应时间值。
关联规则模块 302, 用于根据采集模块 301 采集的监控指标值确定监控指标值对 应的监控指标离散状态, 根据采集模块 301 采集的应用系统响应时间值, 确定应用系统响 应时间值对应的应用系统响应时间离散状态, 确定监控指标值对应的监控指标离散状态与 应用系统响应时间值对应的应用系统响应时间离散状态的关联规则。
阈值模块 303, 用于根据关联规则模块 302 产生的关联规则设定监控指标阈值。
其中, 关联规则模块 302 包括 :
第一离散模块 3021, 用于将采集模块 301 采集的监控指标值映射到预先设置的多 个离散状态中, 得到监控指标值对应的监控指标离散状态。也就是对监控指标值进行数据 离散化。
第二离散模块 3022, 用于将采集模块 301 采集的应用系统响应时间值映射到预先 设置的多个离散状态中, 得到应用系统响应时间值对应的应用系统响应时间离散状态。也 就是对应用系统响应时间值进行数据离散化。
其中, 第一离散模块 3021 还具体用于 : 采用 K-means 聚类算法对监控指标值进行 数据离散化。
关联规则模块 302 还包括 :
挖掘模块 3023, 对第一离散模块 3021 得到的监控指标离散状态和第二离散模块 3022 得到的系统响应时间离散状态进行关联规则挖掘, 确定监控指标离散状态与应用系统 响应时间离散状态的关联规则。
其中, 挖掘模块 3023 还具体用于 :
通过 Apriori 算法, 从监控指标离散状态和应用系统响应时间离散状态组成的项 集中确定支持度不小于最小支持度的频繁项集 ; 通过可信度计算算法, 从所述确定的频繁 项集中确定可信度不小于最小可信度的频繁项集, 得到所述监控指标离散状态与应用系统 响应时间离散状态的关联规则。
进一步地, 为了降低关联规则模块的计算时间复杂度, 采集模块 301 还具体用于 :
选取监控指标, 并采集包含选取的监控指标对应的监控指标值的监控数据。
本领域内的技术人员应明白, 本发明的实施例可提供为方法、 系统、 或计算机程序 产品。因此, 本发明可采用完全硬件实施例、 完全软件实施例、 或结合软件和硬件方面的实 施例的形式。而且, 本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机 可用存储介质 ( 包括但不限于磁盘存储器、 CD-ROM、 光学存储器等 ) 上实施的计算机程序产 品的形式。
本发明是参照根据本发明实施例的方法、 设备 ( 系统 )、 和计算机程序产品的流程 图和 / 或方框图来描述的。应理解可由计算机程序指令实现流程图和 / 或方框图中的每一
流程和 / 或方框、 以及流程图和 / 或方框图中的流程和 / 或方框的结合。可提供这些计算 机程序指令到通用计算机、 专用计算机、 嵌入式处理机或其他可编程数据处理设备的处理 器以产生一个机器, 使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生 用于实现在流程图一个流程或多个流程和 / 或方框图一个方框或多个方框中指定的功能 的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特 定方式工作的计算机可读存储器中, 使得存储在该计算机可读存储器中的指令产生包括指 令装置的制造品, 该指令装置实现在流程图一个流程或多个流程和 / 或方框图一个方框或 多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计 算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理, 从而在计算机或 其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和 / 或方框图 一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例, 但本领域内的技术人员一旦得知了基本创造 性概念, 则可对这些实施例作出另外的变更和修改。 所以, 所附权利要求意欲解释为包括优 选实施例以及落入本发明范围的所有变更和修改。 从上述实施例可以看出 : 由于本发明实施例通过从数据库中采集监控数据, 其中 监控数据包括监控指标值和应用系统响应时间值 ; 根据所述监控指标值和所述应用系统响 应时间值, 确定所述监控指标值对应的监控指标离散状态与所述应用系统响应时间值对应 的应用系统响应时间离散状态的关联规则 ; 根据所述关联规则设定监控指标阈值。由于将 关联规则技术应用到设定监控指标阈值领域, 能够提高设定监控指标阈值的准确性。
显然, 本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样, 倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内, 则本发明也意图包含这些改动和变型在内。