一种日志监测方法及系统与流程

文档序号:15346825发布日期:2018-09-04 22:51阅读:142来源:国知局

本发明涉及信息技术领域,尤其涉及一种日志监测方法及日志监测系统。



背景技术:

随着it、互联网、移动互联网的持续发展,企业中各种业务it系统得到越来越多的重视,而日志监控指标作为表示企业业务it系统运行状况的必要参数,就需要得到及时的监控,随之而来的,日志数据的处理则成了企业业务it系统运维的一个基本工作。

随着大数据时代的到来,以及企业业务it系统的业务量的爆发式增长,企业业务it系统运行过程中产生的日志数据量也大规模增加,目前已经到了每天产生tb级别日志的地步。

目前,如何利用大量的日志数据进行有效告警,提高运维效率,现有技术还未有较好的解决方案。



技术实现要素:

本发明实施例提供一种日志监测方法及日志监测系统,实现了一种基于日志数据进行有效告警以提高运维效率的解决方案。

为了解决上述技术问题,本发明实施例提供了一种日志监测方法,所述方法包括:

显示指标告警的用户配置界面,所述用户配置界面包括有:需要监测的目标指标的配置项以及判断目标指标是否异常的动态阈值的配置项;

检测用户对所述用户配置界面的配置项的配置,并基于所述配置项的配置,进行日志监测,确定所述目标指标是否异常以及是否需要进行告警;

在需要进行告警时,通过告警展示界面展示所述目标指标的告警信息。

优选的,上述方法中,在进行所述日志监测时,所述方法还包括:

接收用户针对所述目标指标的实时状态显示指令;

显示所述目标指标的运行状态界面,所述运行状态界面包括下述至少之一:所述目标指标的运行状态、所述动态阈值的运行状态以及所述目标指标的告警历史信息。

优选的,上述方法中,所述用户配置界面还包括以下配置项中的一种或多种:

所述目标指标的告警触发规则的配置项,所述告警触发规则包括至少一种对应于告警敏感度的预设告警规则;

告警通知消息的接收对象的配置项,所述接收对象包括邮件地址、短消息接收终端和语音电话接听终端中的至少一种;

告警抑制时间的配置项,所述告警抑制时间用于在发生所述目标指标的重复告警时,指示不重复发送所述告警通知消息的时间段。

优选的,上述方法中,所述用户配置界面还包括:

所述告警敏感度的配置项,所述告警敏感度的配置项包括:

所述目标指标的异常发生频率;和/或,

所述动态阈值的参数值,其中,所述动态阈值在不同的参数值下具有不同的取值。

优选的,上述方法中,在所述通过告警展示界面展示所述目标指标的告警信息的步骤之后,所述方法还包括:

向所述接收对象发送所述告警通知消息。

优选的,上述方法中,所述基于所述配置项的配置,进行日志监测,确定所述目标指标是否异常以及是否需要进行告警的步骤,包括:

采集目标系统的日志数据;

根据所述日志数据,获得所述目标指标在当前统计时刻的数值;

根据所述目标指标在当前统计时刻的数值以及预先获得的所述目标指标的动态阈值,确定是否需要进行告警。

优选的,上述方法中,所述根据所述日志数据,获得所述目标指标在当前统计时刻的数值的步骤,包括:

提取所述日志数据中的目标信息,直接得到目标指标在当前统计时刻的数值;和/或,

根据所述日志数据,进行目标指标的计算,得到目标指标在当前统计时刻的当前数值。

优选的,上述方法中,所述确定是否需要进行告警的步骤,包括:

根据所述目标指标在当前统计时刻的当前数值,是否超出所述动态阈值在当前统计时刻的阈值范围,确定所述目标指标是否出现异常;

在所述目标指标出现异常时,更新所述目标指标的异常记录;

根据所述目标指标的异常记录是否满足所述告警触发规则,确定是否需要进行告警。

优选的,上述方法中,所述目标指标的动态阈值的获得,包括:

获取所述目标指标的历史数据;

判断所述历史数据是否包括有最近n个统计周期的数据,其中,所述n为大于1的整数,所述统计周期包括第一数量的连续且等长的统计时段,每个统计时段包括第二数量的统计时刻,相邻的统计时刻间隔相同的时间粒度;

在所述历史数据未包括最近n个统计周期的数据且包括有最近1个统计周期的数据时,提取所述目标指标在最近一个统计周期内不同统计时段的同一统计时刻的历史数据,得到每个统计时刻的第一参考样本;对所述第一参考样本进行统计分析,获得所述目标指标在每个统计时刻的第一动态阈值,得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值;

在所述历史数据包括最近n个统计周期的数据时,获得所述第一动态阈值,并提取所述目标指标在最近n个统计周期内的同一统计时段中的同一统计时刻的历史数据,得到每个统计时刻的第二参考样本;对所述第二参考样本进行统计分析,获得所述目标指标在每个统计时刻的第二动态阈值;对所述第一动态阈值和第二动态阈值进行加权求和,得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值。

优选的,上述方法中,按照以下步骤,对每个统计时刻的参考样本进行所述统计分析,所述参考样本为第一参考样本或第二参考样本:

对每个时刻的所述参考样本进行中位数计算,得到每个统计时刻的历史数据的中位数;

按照预定的滑动窗口长度,对所述统计时刻的历史数据的中位数进行滑动平均值计算,得到每个统计时刻的历史数据的基准值base;

对每个时刻的所述参考样本进行平均绝对离差计算,得到每个统计时刻的历史数据的平均绝对离差值mad;

根据每个统计时刻的所述基准值和平均绝对离差值,计算得到所述目标指标在每个统计时刻的动态阈值。

优选的,上述方法中,

按照公式base-m*mad和/或base+m*mad,计算所述目标指标在每个统计时刻的动态阈值,其中,m为一预设参数。

优选的,上述方法中,所述目标指标的动态阈值的获得,包括:

获取所述目标指标的历史数据,所述历史数据包括有最近1个统计周期的数据,所述统计周期包括第一数量的连续且等长的统计时段,每个统计时段包括第二数量的统计时刻,相邻的统计时刻间隔相同的时间粒度;

构造长短期记忆网络lstm模型,所述lstm模型的第一层至第四层分别为lstm层、丢失层、lstm层和全连接层;

将所述目标指标的历史数据,转换为所述lstm模型要求的格式后,输入至所述lstm模型,进行模型训练;

利用训练得到的所述lstm模型,预测得到所述目标指标在下一个统计时段的各个统计时刻的预测值;

以所述预测值为参考值进行预设幅度的上调和/或下调,得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值。

优选的,上述方法中,其特征在于,

在得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值的步骤之后,所述方法还包括:

根据所述目标指标在下一个统计时段的各个统计时刻的动态阈值,计算所述动态阈值的f1分数;

判断所述f1分数是否满足预设要求,并在未满足预设要求时,调整相关参数的取值,并重新计算所述目标指标在下一个统计时段的各个统计时刻的动态阈值,直至所述动态阈值的f1分数满足所述预设要求,其中,在所述动态阈值是所述第一动态阈值或者通过对所述第一动态阈值和第二动态阈值进行加权求和所获得时,所述相关参数包括所述m、所述n、所述第一数量、所述第一动态阈值的权重和第二动态阈值的权重中的至少一个;在所述动态阈值是以所述预测值为参考值进行预设幅度的上调和/或下调所获得时,所述相关参数包括所述预设幅度。

本发明实施例还提供了一种日志监测系统,所述日志监测系统包括:

配置接口模块,用于显示指标告警的用户配置界面,所述用户配置界面包括有:需要监测的目标指标的配置项以及判断目标指标是否异常的动态阈值的配置项;

日志监测模块,用于检测用户对所述用户配置界面的配置项的配置,并基于所述配置项的配置,进行日志监测,确定所述目标指标是否异常以及是否需要进行告警;

告警展示模块,用于在需要进行告警时,通过告警展示界面展示所述目标指标的告警信息。

优选的,上述日志监测系统还包括:

指令处理模块,用于接收用户针对所述目标指标的实时状态显示指令;

状态显示模块,用于显示所述目标指标的运行状态界面,所述运行状态界面包括下述至少之一:所述目标指标的运行状态、所述动态阈值的运行状态以及所述目标指标的告警历史信息。

优选的,上述日志监测系统中,所述用户配置界面还包括以下配置项中的一种或多种:

所述目标指标的告警触发规则的配置项,所述告警触发规则包括至少一种对应于告警敏感度的预设告警规则;

告警通知消息的接收对象的配置项,所述接收对象包括邮件地址、短消息接收终端和语音电话接听终端中的至少一种;

告警抑制时间的配置项,所述告警抑制时间用于在发生所述目标指标的重复告警时,指示不重复发送所述告警通知消息的时间段。

优选的,上述日志监测系统中,所述用户配置界面还包括:

所述告警敏感度的配置项,所述告警敏感度的配置项包括:

所述目标指标的异常发生频率;和/或,

所述动态阈值的参数值,其中,所述动态阈值在不同的参数值下具有不同的取值。

优选的,上述日志监测系统还包括:

通知发送模块,用于向所述接收对象发送所述告警通知消息。

优选的,上述日志监测系统中,所述日志监测模块包括:

日志采集模块,用于采集目标系统的日志数据;

指标计算模块,用于根据所述日志数据,获得目标指标在当前统计时刻的数值;

告警判断模块,用于根据所述目标指标在当前统计时刻的数值以及预先获得的所述目标指标的动态阈值,确定是否需要进行告警。

优选的,上述日志监测系统中,所述指标计算模块包括:

直接提取单元,用于提取所述日志数据中的目标信息,直接得到目标指标在当前统计时刻的数值;和/或,

计算处理单元,用于根据所述日志数据,进行目标指标的计算,得到目标指标在当前统计时刻的当前数值。

优选的,上述日志监测系统中,所述告警判断模块包括:

第一确定模块,用于根据所述目标指标在当前统计时刻的当前数值,是否超出所述动态阈值在当前统计时刻的阈值范围,确定所述目标指标是否出现异常;

记录更新模块,用于在所述目标指标出现异常时,更新所述目标指标的异常记录;

第二确定模块,用于根据所述目标指标的异常记录是否满足所述告警触发规则,确定是否需要进行告警。

优选的,上述日志监测系统还包括:

第一历史数据获得模块,用于获取所述目标指标的历史数据;

历史数据量判断模块,用于判断所述历史数据是否包括有最近n个统计周期的数据,其中,所述n为大于1的整数,所述统计周期包括第一数量的连续且等长的统计时段,每个统计时段包括第二数量的统计时刻,相邻的统计时刻间隔相同的时间粒度;

第一分析模块,用于在所述历史数据未包括最近n个统计周期的数据且包括有最近1个统计周期的数据时,提取所述目标指标在最近一个统计周期内不同统计时段的同一统计时刻的历史数据,得到每个统计时刻的第一参考样本;对所述第一参考样本进行统计分析,获得所述目标指标在每个统计时刻的第一动态阈值,得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值;

第二分析模块,用于在所述历史数据包括最近n个统计周期的数据时,获得所述第一动态阈值,并提取所述目标指标在最近n个统计周期内的同一统计时段中的同一统计时刻的历史数据,得到每个统计时刻的第二参考样本;对所述第二参考样本进行统计分析,获得所述目标指标在每个统计时刻的第二动态阈值;对所述第一动态阈值和第二动态阈值进行加权求和,得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值。

优选的,上述日志监测系统中,所述第一分析模块和第二分析模块,按照以下步骤,对每个统计时刻的参考样本进行所述统计分析,所述参考样本为第一参考样本或第二参考样本:

对每个时刻的所述参考样本进行中位数计算,得到每个统计时刻的历史数据的中位数;

按照预定的滑动窗口长度,对所述统计时刻的历史数据的中位数进行滑动平均值计算,得到每个统计时刻的历史数据的基准值base;

对每个时刻的所述参考样本进行平均绝对离差计算,得到每个统计时刻的历史数据的平均绝对离差值mad;

根据每个统计时刻的所述基准值和平均绝对离差值,计算得到所述目标指标在每个统计时刻的动态阈值。

优选的,上述日志监测系统中,所述第一分析模块和第二分析模块,按照公式base-m*mad和/或base+m*mad,计算所述目标指标在每个统计时刻的动态阈值,其中,m为一预设参数。

优选的,上述日志监测系统还包括:

第二历史数据获得模块,用于获取所述目标指标的历史数据,所述历史数据包括有最近1个统计周期的数据,所述统计周期包括第一数量的连续且等长的统计时段,每个统计时段包括第二数量的统计时刻,相邻的统计时刻间隔相同的时间粒度;

模型构造模块,用于构造长短期记忆网络lstm模型,所述lstm模型的第一层至第四层分别为lstm层、丢失层、lstm层和全连接层;

模型训练模块,用于将所述目标指标的历史数据,转换为所述lstm模型要求的格式后,输入至所述lstm模型,进行模型训练;

预测模块,用于利用训练得到的所述lstm模型,预测得到所述目标指标在下一个统计时段的各个统计时刻的预测值;

阈值输出模块,用于以所述预测值为参考值进行预设幅度的上调和/或下调,得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值。

优选的,上述日志监测系统还包括:

阈值调整模块,用于在得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值之后,根据所述目标指标在下一个统计时段的各个统计时刻的动态阈值,计算所述动态阈值的f1分数;判断所述f1分数是否满足预设要求,并在未满足预设要求时,调整相关参数的取值,并重新计算所述目标指标在下一个统计时段的各个统计时刻的动态阈值,直至所述动态阈值的f1分数满足所述预设要求,其中,在所述动态阈值是所述第一动态阈值或者通过对所述第一动态阈值和第二动态阈值进行加权求和所获得时,所述相关参数包括所述m、所述n、所述第一数量、所述第一动态阈值的权重和第二动态阈值的权重中的至少一个;在所述动态阈值是以所述预测值为参考值进行预设幅度的上调和/或下调所获得时,所述相关参数包括所述预设幅度。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的日志监测方法的步骤。

本发明实施例提供的日志监测方法及日志监测系统,通过向用户显示指标告警的用户配置界面,其中,所述用户配置界面包括有:需要监测的目标指标的配置项以及判断目标指标是否异常的动态阈值的配置项,通过检测用户对所述用户配置界面的配置项的配置,并基于所述配置项的配置,进行日志监测,进而确定所述目标指标是否异常以及是否需要进行告警,并在需要进行告警时,通过告警展示界面展示所述目标指标的告警信息。可以看出,本发明实施例通过采用可视化的用户配置界面,方便用户进行日志监测的个性化配置,并能够通过告警展示界面直观的展示告警信息,便于用户快速获知告警。另外,相比于静态阈值的实现方式,本发明实施例采用动态阈值进行告警,可以有效提高告警的可靠性和有效性,大幅节省运维人员的工作量,提高目标系统的运行稳定性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的日志监测方法的流程图;

图2是本发明实施例提供的日志监测方法的步骤102的流程图;

图3是本发明一实施例提供的目标指标与动态阈值相对关系的一个示例;

图4是本发明一实施例确定动态阈值的流程图;

图5~图8为本发明实施例提供的示例1中计算动态阈值的流程示例;

图9为本发明实施例中基于统计分析方式获得的动态阈值与指标实测值相对关系的一个示例;

图10为本发明实施例中基于lstm模型获得的动态阈值与指标实测值相对关系的一个示例;

图11是本发明一实施例提供的日志监测系统的结构图之一;

图12为本发明一实施例提供的日志监测系统的结构图之二。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例的日志监测系统,是基于大数据技术的日志管理及分析系统,当实时采集或计算的指标超出阈值范围时,在可视化监控界面展示异常指标,并可以根据配置触发告警通知,向运维人员发送短信或邮件等形式,通知告警信息。

请参照图1,图1是本发明一实施例提供的日志监测方法的流程图。所述方法可以应用于日志监测系统,如图1所示,所述方法包括以下步骤:

步骤101,显示指标告警的用户配置界面,所述用户配置界面包括有:需要监测的目标指标的配置项以及判断目标指标是否异常的动态阈值的配置项。

这里,本发明实施例的日志监测系统提供了一种进行指标告警配置的用户配置界面,通过显示该用户配置界面,并检测用户在该用户配置界面的相关配置,可以实现对指标告警的配置。具体的,用户配置界面可以提供多个配置项,如上述的需要监测的目标指标的配置项以及判断目标指标是否异常的动态阈值的配置项。每个配置项又可以通过一级或多级的选项页进行具体配置。

在本发明实施例中,特别采用了动态阈值来判断目标指标是否异常。通常情况下,目标指标都是在一个取值范围内波动。相比于静态阈值,动态阈值在不同的时刻可能具有不同的取值,因此,更能够适应于目标指标的波动情况,反应出目标指标是否异常。

步骤102,检测用户对所述用户配置界面的配置项的配置,并基于所述配置项的配置,进行日志监测,确定所述目标指标是否异常以及是否需要进行告警。

这里,在获得用户的配置后,即可以基于用户的配置,执行对应的日志监测,例如,采集日志监测数据并进行分析,确定目标指标是否异常以及是否需要进行告警。

步骤103,在需要进行告警时,通过告警展示界面展示所述目标指标的告警信息。

这里,根据发生异常且需要告警的目标指标,生成与之对应的告警信息,并可以记录在数据库中,形成告警记录。为了便于向用户进行告警展示,本发明实施例可以通过告警展示界面展示相关的告警信息,具体展示方式包括:通过弹出对话框以显示告警信息,通过声音(如告警音)或光线(如屏幕闪烁)等形式进行告警通知,等等。

通过以上步骤,本发明实施例实现了一种基于目标指标的动态阈值来判断目标指标是否异常以及是否需要触发告警的日志监控方法,通过设置基于动态阈值的告警,动态阈值的阈值范围可以根据历史指标数值智能计算,从而可以自动判断异常并进行智能告警,能够提高告警的可靠性和有效性,大幅节省运维人员的劳动。

在实际应用中,用户可能希望对目标指标的运行情况进行实时监控,为此,本发明实施例的日志监测方法还可以接收用户针对所述目标指标的实时状态显示指令;显示所述目标指标的运行状态界面,所述运行状态界面包括下述至少之一:所述目标指标的运行状态、所述动态阈值的运行状态以及所述目标指标的告警历史信息。

这里,目标指标及动态阈值的运行状态,具体可以通过曲线图、折线图、面积图、柱形图、条形图、散点图、饼图、环形图、曲面图等图表方式或上述方式的组合来呈现。

在本发明实施例中,还可以通过上述用户配置界面,提供更多的配置项,以适应于不同应用场景的需求。例如,所述用户配置界面还包括以下配置项中的一种或多种:

a)所述目标指标的告警触发规则的配置项,所述告警触发规则包括至少一种对应于告警敏感度的预设告警规则。

进一步的,还可以包括所述告警敏感度的配置项,所述告警敏感度的配置项包括:

所述目标指标的异常发生频率;和/或,

所述动态阈值的参数值,其中,所述动态阈值在不同的参数值下具有不同的取值。具体的,动态阈值的相关参数值,可以参考后文的介绍。

b)告警通知消息的接收对象的配置项,所述接收对象包括邮件地址、短消息接收终端和语音电话接听终端中的至少一种。

c)告警抑制时间的配置项,所述告警抑制时间用于在发生所述目标指标的重复告警时,指示不重复发送所述告警通知消息的时间段。

请参照图2,上述步骤102中的所述日志监测,具体可以包括:

步骤1021,采集目标系统中的日志数据。

所述目标系统具体可以是需要监控的企业业务it系统。企业业务it系统中通常有很多的应用程序,这些应用程序承担了企业的各种业务,例如银行的存款、贷款、取现等业务,这些业务系统在日常处理各种客户需求的过程中会生成日志,日志记录了业务系统的每一个运行过程。

当前it、互联网、移动互联网等业务蓬勃发展,为社会大众带了很大的便利,同时,不断增长的业务量也对企业业务it系统的运维工作提出了更高的要求。对业务it系统进行完备的监控包括日志监控是企业保障业务it系统平稳健康运行的前提。因此,为了及时对目标系统进行监控,在该步骤中,所述日志监测系统可以在所述目标系统运行时,采集所述目标系统中的日志数据。

其中,采集目标系统中的日志数据,可以是实时的进行数据采集。

其中,采集目标系统中的日志数据,可以是通过数据处理管道,例如服务器端数据处理管道logstash或者用于日志采集、聚合和传输的系统flume来收集日志。此外,logstash还可以把采集的日志数据存入分布式存储系统例如kafka等高吞吐量的分布式发布订阅消息系统或rabbitmq消息队列中。

步骤1022,根据所述日志数据,获得目标指标在当前统计时刻的数值。

该步骤中,所述日志监测系统在采集到所述日志数据后,可以对所述日志数据进行解析以及处理,得到目标指标在当前统计时刻的数值。具体的,目标指标在当前统计时刻的数值,可以是一段时间段内的所述目标指标的数据,该时间段可以是从当前统计时刻的前一个统计时刻到当前统计时刻。

这里,指标通常为用于衡量业务it系统运行状况的参数,包括基于日志数据计算出来的指标数据(例如交易总量等)、系统直接采集来的指标数据(例如cpu使用率等)和其他指标数据。计算出来的指标数据具体可以包括交易总量、平均耗时、成功率、交易失败量、异常日志量、超时、空指针异常、数据库异常等数据;直接采集来的指标数据可以包括网络流量、用户访问量、cpu使用率、数据库连接量等数据。因此,在该步骤中,可以提取所述日志数据中的目标信息,从而直接得到目标指标在当前统计时刻的数值;和/或,根据所述日志数据,进行目标指标的计算,得到目标指标在当前统计时刻的当前数值。

在根据所述日志数据,进行目标指标的计算时,可以根据与所述目标指标相关的日志数据,统计或计算所述目标指标的数值。举例来讲,企业业务it系统中有很多的应用程序,这些应用程序之间的一次调用,为一个交易,所述交易总量可以是某一时间段内各个应用程序之间总的调用次数,所述交易失败量可以是所述时间段内总的调用失败的次数,所述交易成功量可以是所述时间段内总的调用成功的次数,所述交易成功率可以是在所述时间段内的交易成功量与交易总量的比率,所述交易耗时可以是所述时间段内交易的平均耗时,所述交易异常数可以是所述时间段内交易出现异常的笔数。对于以上目标指标,可以通过统计或计算,确定所述目标指标的数值。

在本发明实施例中,日志监测系统可以周期性的获取目标指标的数值。例如,以预设的时间粒度为单位,设置统计时刻,相邻的统计时刻在时间上间隔所述时间粒度的长度。例如,以自然日中的00:00:00为一个统计时刻,30秒为时间粒度的话,则后续的统计时刻还包括:00:00:30、00:01:00、00:01:30、00:02:00、00:02:30、00:03:00…。在每个统计时刻到达时,日志监测系统基于当前已获得的日志数据,确定目标指标在当前统计时刻的数值。

根据目标指标的不同类型,目标指标的数值可能仅与最近一次采集的日志数据有关,也可能与最近n次采集的日志数据有关。本发明实施例可以根据具体的目标指标,利用相关的日志数据获取指标数值。

具体的,在对所述日志数据进行目标信息提取时,可以是将所述日志数据根据不同的字段进行解析,从而得到所述日志数据的字段解析数据。根据所述日志数据中的字段,比如所述日志数据中的日期、时间、日志级别、日志消息等字段,分别提取所述日志数据中划分的字段,来对日志数据进行解析。其中,日志解析的任务可以是由上述的logstash完成的,它可以一边读取日志数据,一边进行解析。这样,根据日志数据中的字段,对日志数据进行解析,可以直接获取相关字段中的信息,从而得到目标指标在当前统计时刻的数值。

步骤1023,根据所述目标指标在当前统计时刻的数值以及预先获得的所述目标指标的动态阈值,确定是否需要进行告警。

该步骤中,所述日志监测系统在得到所述目标指标在当前统计时刻的数值后,就可以根据所述目标指标在当前统计时刻的当前数值,是否超出所述动态阈值在当前统计时刻的阈值范围,确定所述目标指标是否出现异常。然后,在所述目标指标出现异常时,更新所述目标指标的异常记录,该异常记录中记录了所述目标指标出现异常的统计信息,如异常发生时间以及次数等。进一步的,可以根据所述目标指标的异常记录是否满足预设的告警触发规则,确定是否需要进行告警。

以上过程中,判断目标指标是否异常,需要使用到预先获得的动态阈值。所述动态阈值包括对应于各个统计时刻的阈值范围。针对每个统计时刻,预先计算了该统计时刻对应的动态阈值,即动态阈值计算的时间粒度,与指标异常判断的时间粒度相同。在判断出指标异常后,进一步判断当前的异常记录是否满足告警触发规则,以确定是否需要进行告警。

在进行指标异常的判断时,将当前时刻的目标指标的数值,与当前时刻的动态阈值进行比较,确定是否发生异常。动态阈值的获得方式,可以参考下文中的相关部分。异常判断可以包括三种情况,一是目标指标值高于动态阈值的上界,但对下界没要求;二是目标指标值低于动态阈值的下界,但对上界没要求;三是目标指标值高于动态阈值的上界或低于动态阈值的下界。

在实际应用中,可以在目标指标出现异常时,即确定需要进行告警。当然,也可以设置在异常出现的频次超过某个预定程度时,才确定需要进行告警。因此,可以通过设置告警触发规则,来触发是否需要告警。

在实际应用中,判断指标是否异常的阈值包括静态阈值和动态阈值。静态阈值通常为一个固定值,适用于波动性较小的指标,长期在某一个固定值附近微小波动,如果出现较大的波动点则为疑似异常。常见的适用于静态阈值的指标有:交易错误率、交易失败量、异常日志量、超时、空指针异常及数据库异常等。动态阈值是一组随着时间变化的值,适用于周期性波动的指标,这类指标按天、周或者月等,周期性的波动。例如cpu使用率是一个典型的按天周期性波动的指标,在业务高峰期较高、在深夜较低。又例如信用卡中心的交易总量是典型的按周的周期性变化指标,通常情况下周末交易量大于工作日。除此之外,适用于动态阈值的指标还有:平均耗时、成功率、网络流量(有业务高峰和低谷)、用户访问量及数据库连接量(程序跟数据库连接的数量)等。

本发明实施例中,除了通过用户界面展示告警信息外,还可以向运维人员发送告警通知,以实现告警信息的及时通知。具体的,在上述步骤103之后,还可以向预设对象发送告警通知消息。

在具体实现中,本发明实施例还可以在所述用户配置界面提供目标指标的动态阈值的配置。具体的,用户可设置具体的指标、指标类型、告警模式、告警敏感度、异常判断、时间粒度、告警模板及抑制时间。

其中,指标类型包括单值指标、维度指标和计算指标。单值指标为直接采集来的指标;维度指标是系统中通过对日志进行查询获取的指标,特点是可以通过结构化查询语言(spl)语句直接进行配置,灵活方便;计算指标是对单值指标和维度指标的进一步计算加工,有的还需要编写流式计算代码实现,适用于较复杂的指标。

告警模式包括静态模式和动态模式。用户选择了指标后,后台进行预分析,如该指标适合静态告警模式,则提醒用户“建议用静态阈值”,如该指标适合动态告警模式,则提醒用户“建议用动态阈值”。

在动态告警模式下,可以提供无级地任意调节的告警敏感度,即调节告警触发规则触发的条件。具体的,告警触发规则可以是基于一个连续时间段内(例如5分钟)异常发生的次数(即异常频率)。目标指标的实测值超出动态阈值的范围则定义为异常。例如,最高的告警敏感度对应于5分钟内发生1次异常则触发告警,最低告警敏感度对应于5分钟内发生10次异常则触发告警。另外,本发明实施例的调节告警敏感度,也可以通过调节动态阈值的范围来实现,具体可以通过调节下文中的m参数(参见下文的基于统计分析方式获得动态阈值的过程)和p参数(参见下文的基于长短期记忆网络方式获得动态阈值中的p_upper、p_lower),从而调整阈值的上界和下界。例如,较高的告警敏感度对应于较小的m参数和p参数,即阈值的上下界浮动较小,而较低的告警敏感度对应于较大的m参数和p参数,即阈值的上下界浮动较大。

异常判断包括三种情况,一是指标值高于阈值的上界,但对下界没要求,此时将认为出现指标异常;二是指标值低于阈值的下界,但对上界没要求,此时将认为出现指标异常;三是指标值高于阈值的上界或低于下界,此时将认为出现指标异常。

时间间隔是指指标阈值计算的时间粒度,此时间粒度与判断指标是否异常的时间粒度相同。在出现异常后,判断是否满足告警触发规则(比如5分钟窗口内出现3次异常),如满足,则产生告警。

抑制时间用于当出现目标指标触发的告警后,通过设置抑制时间来降低上述目标指标再次触发的告警通知消息的发送频率,例如抑制时间为60分钟,则在60分钟之内不会再次发出告警通知消息,但是告警信息会记录在数据库里,也会通过用户界面进行展示。如果60分钟之后告警依然存在,才会继续发出告警通知消息。上述抑制时间的设置,可以减少告警通知消息的重复发送,避免造成不必要的干扰。

告警模板可以用于设置告警通知消息的相关参数,具体包括:设置告警通知消息的发送方式以及告警通知消息的接收对象、告警通知消息的内容、编码格式等,后续可以基于配置好的告警模板,发送告警通知消息(可以包括告警信息的具体内容)。用户可以根据需要配置日志监测系统的告警通知的发送方式,可以包括下述方式中至少一种:短信通知、邮件通知、电话通知、微信通知及向企业沟通平台通知。日志监测系统向用户(例如企业运维人员)进行告警通知即发送告警通知消息时还可以展示告警级别。例如,告警级别可以分为低、中和高三个级别。每个级别可采用不同的告警通知方式,具体可以由用户设定每个级别采用的告警方式,例如,用户可以选择高级别的告警通知方式包括:电话通知和邮件通知等,低级别的告警通知方式可以只包括:邮件通知。

本发明实施例的日志监测方法中,使用动态阈值判断目标指标是否异常。进一步的,可在设定动态阈值时进行预览,并可以自定义告警触发规则进行告警的触发。在选择相应的目标指标进行动态阈值监控及告警之后,可以在用户界面展示动态阈值与目标指标的数值的相对关系,以展示系统的运行状况。图3给出了某个自然日的部分时段内的目标指标与动态阈值的一个示例,图3中的动态阈值包括有阈值上界31和阈值下界32,当目标指标33位于阈值上界31和阈值下界32之间时表示指标正常,否则,表示指标异常。

本发明实施例的日志监测系统,可以通过选择菜单项:告警管理->告警阈值,展示包含有至少一个阈值的列表,然后用户可以点击展开其中的一个动态阈值,可以查看该动态阈值的详情。或者在监控中心,用户可以通过配置监控一个动态阈值,在监控页面上实时查看目标指标是否在该动态阈值的范围内运行。

另外,本发明实施例的日志监测系统还可以提供告警分析的用户界面,在该用户界面上进行系统告警历史及可视化的结果展示,用户可以打开该告警分析的用户界面进行查看。具体的,用户可通过设备ip、告警级别、告警类别和时间范围等参数进行告警历史的查询。日志监测系统还可以支持通过系统组件间依赖关系、告警-告警间关联、告警与指标间的关联,实现告警的深度分析。

在本发明实施例的以上提供的日志监测方法中,根据所述目标指标在当前统计时刻的当前数值,是否超出所述动态阈值在当前统计时刻的阈值范围,确定所述目标指标是否出现异常。因此,在上述步骤1023之前,需要预先获得动态阈值的阈值范围。下面将介绍本发明实施例的动态阈值的确定方式。

本发明实施例采用统计分析方案和/或时间序列分析方案以确定动态阈值。其中时间序列分析方案具体采用神经网络中长短期记忆网络方式。下面将分别进行说明。

1)统计分析方案

日志监测系统的指标具有一定的周期性,且在统计时段内的各个统计时刻的数值,通常服从或近似服从正态分布。基于以上考虑,在该方案中,分段计算每个统计时段的各统计时刻的指标的中位数(median)的滑动平均值与平均绝对离差(mad),进而将median的滑动平均值作为指标的基准值base,确定指标的阈值范围如下:

指标的阈值上界为:base+m*mad

指标的阈值下界为:base–m*mad

其中,m是一个可以调节的参数,以控制阈值范围。具体的,m可以默认值为3,并可以根据指标历史数据的波动范围调整。

如图4所示,通过统计分析方案确定动态阈值的具体流程,可以包括:

步骤401,获取所述目标指标的历史数据。

这里,在日志监测系统运行过程中,通过记录目标指标的在各个统计时刻的数值,可以形成所述目标指标在各个历史统计时刻的历史数据的记录。然后,通过读入记录,可以获得所述目标指标的历史数据。另外,在读入记录时,可以通过数据清洗操作,以去除不相干的历史数据,仅保留所述目标指标在各个历史统计时刻的历史数据。

步骤402,判断所述历史数据是否包括有最近n个统计周期的数据,在所述历史数据未包括最近n个统计周期的数据且包括有最近1个统计周期的数据时,进入步骤403;在所述历史数据包括最近n个统计周期的数据时,进入步骤404。

这里,所述n为大于1的整数,所述统计周期包括第一数量的连续且等长的统计时段,每个统计时段包括第二数量的统计时刻,相邻的统计时刻间隔相同的时间粒度。

例如,以统计时段为自然日(天)为例,假设相邻的统计时刻间隔30秒,则可将一个自然日中的00:00:00、00:00:30、00:01:00、00:10:30、00:02:00、00:02:30、00:03:00…等,作为统计时刻。这样,一个自然日的统计时刻一共有2880个,即第二数量为2880。统计周期以“周”为例,即包括从周一到周日的一共7个自然日,即第一数量为7。考虑到日志数据与自然日、自然周、自然月通常有一定的关联关系,可以将所述n设置为4,即接近于一个自然月,包括有4周。

在上述步骤402中,如果历史数据足够多,至少包含有最近4周的数据,则进入步骤403,若不足4周,但包含有至少1周的数据,此时可以进入步骤404。对于不足1周的情况,则可以等待历史数据满足上述要求后再进行处理,在此过程中的动态阈值可以依据经验设置,或者设置为默认值。

步骤403,在所述历史数据未包括最近n个统计周期的数据且包括有最近1个统计周期的数据时,提取所述目标指标在最近一个统计周期内不同统计时段的同一统计时刻的历史数据,得到每个统计时刻的第一参考样本;对所述第一参考样本进行统计分析,获得所述目标指标在每个统计时刻的第一动态阈值,得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值。

步骤404,在所述历史数据包括最近n个统计周期的数据时,获得所述第一动态阈值,并提取所述目标指标在最近n个统计周期内的同一统计时段中的同一统计时刻的历史数据,得到每个统计时刻的第二参考样本;对所述第二参考样本进行统计分析,获得所述目标指标在每个统计时刻的第二动态阈值;对所述第一动态阈值和第二动态阈值进行加权求和,得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值。

这里,所述的同一统计时段或不同统计时段是按照统计时段在统计周期内的相对时间位置进行区分的。例如,不同统计周期内的同一时间位置所对应的多个统计时段,被认为是同一统计时段;不同统计周期内的不同时间位置所对应的多个统计时段,被认为是不同统计时段。类似的,同一统计时刻或不同统计时刻,是按照统计时刻在统计时段内的相对时间位置进行区分的。例如,不同统计时段内的同一时间位置所对应的多个统计时刻,被认为是同一统计时刻;不同统计时段内的不同时间位置所对应的多个统计时刻,被认为是不同统计时刻。

这里,假设第一动态阈值为b,第二动态阈值为c,则上述加权求和可以表示为:α*b+(1-α)*c,这里,α和1-α分别为第一动态阈值和第二动态阈值的权重。

以上步骤403和404中,都需要对参考样本进行统计分析,以获得目标指标在每个统计时刻的动态阈值。所述参考样本为第一参考样本或第二参考样本。例如,对第一参考样本进行统计分析,获得第一动态阈值,以及,对第二参考样本进行统计分析,获得第二动态阈值。具体的,对参考样本进行所述统计分析,可以包括以下步骤:

步骤a,对每个时刻的所述参考样本进行中位数计算,得到每个统计时刻的历史数据的中位数。

步骤b,按照预定的滑动窗口长度,对所述统计时刻的历史数据的中位数进行滑动平均值计算,得到每个统计时刻的历史数据的基准值base。

步骤c,对每个时刻的所述参考样本进行平均绝对离差计算,得到每个统计时刻的历史数据的平均绝对离差值mad。

步骤d,根据每个统计时刻的所述基准值和平均绝对离差值,计算得到所述目标指标在每个统计时刻的动态阈值。

这里,在步骤d中,可以按照公式base-m*mad和/或base+m*mad,计算所述目标指标在每个统计时刻的动态阈值,其中,m为一预设参数。

为了进一步使得动态阈值具有更好的针对性,提高日志监测的有效性和可靠性。在获得所述目标指标在下一个统计时段的各个统计时刻的动态阈值之后,本发明实施例还可以根据所述目标指标在下一个统计时段的各个统计时刻的动态阈值,计算所述动态阈值的f1分数(f1-score),并判断所述f1分数是否满足预设要求,并在未满足预设要求时,调整相关参数的取值,并重新计算所述目标指标在下一个统计时段的各个统计时刻的动态阈值,直至所述动态阈值的f1分数满足所述预设要求,所述相关参数包括所述m、所述n(最近n个统计周期的数据中的n)、所述第一数量、所述第一动态阈值的权重和第二动态阈值的权重中的至少一个。通过以上参数调优的过程,可以获得更为合适的阈值范围。

f1-score是统计分析中常用到的一种指标,为帮助理解,下面简单介绍f1-score。所述f1-score是用来衡量二分类模型精确度的一种指标,把预测的结果分为4类,见下表1提供的混淆矩阵。

表1

准确率计算公式如下:

precision=tp/(tp+fp)

召回率计算公式如下:

recall=tp/(tp+fn)

f1-score计算公式如下:

f1-score=2×precision×recall/(precision+recall)

下面通过2个具体示例,分别说明按照上述步骤403和404中的处理过程。示例1:

参数配置:假设需要计算目标日期2017-12-21的动态阈值,当前已保存了某个指标在最近7天的历史数据,判断指标是否异常的时间粒度以及计算动态阈值的时间粒度都是30秒。读入最近7天该指标的历史数据,时间粒度为30秒,假设读入了指标在以下统计时刻的历史数据:

2017-12-20日23:59:30

2017-12-20日23:59:00

2017-12-20日23:58:30

……

2017-12-14日00:01:00

2017-12-14日00:00:30

2017-12-14日00:00:00

以上历史数据历时7天,时间粒度是30秒,共20160条(7×24×60×60/30)数据。由于读入的历史数据小于28天,因此按照上述步骤402中的判断示例,可以按照步骤403的方式计算动态阈值,具体计算包括:

第一步:计算各统计时刻指标的基准值base(即中位数median的滑动平均值),流程如图5所示:

提取同一统计时刻在不同自然日的指标值,例如,针对统计时刻00:00:00,可以提取2017-12-14至2017-12-20这7天的00:00:00时刻的指标值,得到y个数值(这里y=7),然后计算这y个数的中位数(median)。中位数的计算方式包括:假设按数值大小排序后的这n个数可以记为x1<x2<…<xy,则当y为奇数时,中位数median=x(y+1)/2;当n为偶数时,中位数median=(xy/2+x(y/2+1))/2。

通过以上方式,遍历全天的各个统计时刻,可以计算自然日的各个统计时刻的指标的中位数,如00:00:00时刻的指标的中位数median_1,00:00:30时刻的指标的中位数median_2,00:01:00时刻的指标的中位数median_3,00:01:30时刻的指标的中位数median_3,…,23:59:30时刻的指标的中位数median_2880。

然后,按照预定的滑动窗口长度(此处取7),对统计时刻的中位数进行滑动平均值计算,得到每个统计时刻的历史数据的基准值base。计算滑动平均值可以按照现有的计算公式进行计算,例如,在计算n个数x1,x2,…,xn的滑动平均值时,假设滑动窗口window长度取7,xi的滑动平均值xi_ma为:

当i>window时:

当i≤window时:

xi_ma=xi

第二步:计算各统计时刻的平均绝对离差(meanabsolutedeviation),流程请参照图6,例如,针对统计时刻00:00:00,可以提取2017-12-14至2017-12-20这7天的00:00:00时刻的指标值,得到y个数值(这里y=7),然后计算这y个数的平均绝对离差。

具体的,计算y个数x1,x2,…,xy的平均绝对离差可以按照如下公式进行:

式中:median表示y个数值的中位数,xi表示y个数值中的第i个数值(元素)。

第三步:计算指标的动态阈值的阈值范围(如上界和/或下界)

阈值上界和下界计算分别如图7和图8所示,这里,m取值默认为3,可以根据指标特点进行调节。

通过以上步骤,可以在历史数据只包括一个统计周期(这里的统计周期为1周)时,计算得到指标的动态阈值。

示例2

参数配置:假设需要计算目标日期2017-12-21的动态阈值,当前已保存了某个指标的历史数据已达到或超过最近28天的数据,判断指标是否异常的时间粒度以及计算动态阈值的时间粒度都是30秒。读入最近28天该指标的历史数据,时间粒度为30秒。

第一步:先采用示例1相同的方式,利用最近7天的数据计算得到指标的动态阈值b。

第二步:由于指标具有一定的周期性,因此可以将每个星期作为一个周期,将每个星期内的同一天(如每个星期内的星期四)指标的历史数据提取出来,据此来计算指标的动态阈值c。例如,目标日期2017-12-21日是星期四,把回溯期(最近28天)内所有星期四的数据提取出来,即2017-11-23,2017-11-30,2017-12-7,2017-12-14共四天。再按示例1中的方法,基于提取的数据,计算每个统计时刻的基准值和平均绝对离差,进而计算得到指标的动态阈值c。

第三步:对动态阈值b和c加权求和,得到最终的动态阈值:

阈值上界=b_上界×α+c_上界×(1-α)

阈值下界=b_下界×α+c_下界×(1-α)

式中:

α:权重系数,默认值为0.5,实际使用时可以根据指标特点调整;

b_上界:是用最近d天(默认为7)的历史数据计算而得的阈值b的上界;

b_下界:是用最近d天(默认为7)的历史数据计算而得的阈值b的下界;

c_上界:是用回溯期e内与目标日期星期相同的历史数据计算而得的阈值c的上界,回溯期优选为e=28天;

c_下界:是用回溯期e内与目标日期星期相同的历史数据计算而得的阈值c的下界,回溯期优选为28天。

对于周期性指标,本发明实施例提供的上述两种示例,可以计算获得目标日期的各个统计时刻的动态阈值。相比采用的静态阈值的异常判断方式,本发明实施例能够根据指标的历史数据生成的动态阈值来表征不同时段的合理变动范围。图9给出了动态阈值与指标实测值变化关系的一个示例图,图中横轴为时间轴,纵轴表示交易量。图中的最上面和最下面的两条线,分别表示阈值的上界与下界,中间的线则为交易总量的指标实测值。当指标的实测值在阈值范围之外时,判为异常,如图9中的圆圈内的点。

2)长短期记忆网络(lstm,long-shorttermmemory)

长短期记忆网络是一种特殊的循环神经网络(rnn),可以用于时序数据分析。lstm模型适合做时间序列分析,lstm对时序数据的预测有较好的效果,另外,相比于传统的时间序列分析(arima),lstm模型更容易训练,模型升级更新更方便。本发明实施例还可以利用lstm模型来获得指标的动态阈值。

本发明实施例可以构造并训练lstm模型,利用训练好的lstm模型预测目标指标的动态阈值。具体的,通过lstm模型确定动态阈值的具体流程,可以包括:

步骤1,获取所述目标指标的历史数据,所述历史数据包括有最近1个统计周期的数据,所述统计周期包括第一数量的连续且等长的统计时段,每个统计时段包括第二数量的统计时刻,相邻的统计时刻间隔相同的时间粒度。

步骤2,构造长短期记忆网络lstm模型,所述lstm模型的第一层至第四层分别为lstm层、丢失层、lstm层和全连接层,其中,所述第一层包括所述第二数量的时间步以及所述第二数量的神经元,每步的特征数为1个。

这里,优选的,第二层的丢失的概率可以设置为8%~12%,例如10%。第三层的神经元的数量可以设置为80~120个,例如100个。第四层的激活函数可以设置为线性激活函数,神经元个数可以设置为1个。lstm模型中的优化算法可以选择adam算法,损失函数可以使用mape函数。

步骤3,将所述目标指标的历史数据,转换为所述lstm模型要求的格式后,输入至所述lstm模型,进行模型训练。

这里,把目标指标的历史数据按lstm模型要求的格式进行整理,包括使得输入数据的矩阵维度与神经网络结构匹配等,然后,把整理后的数据输入至lstm模型,进行模型训练。

步骤4,利用训练得到的所述lstm模型,预测得到所述目标指标在下一个统计时段的各个统计时刻的预测值。

步骤5,以所述预测值为参考值进行预设幅度的上调和/或下调,得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值。

这里,假设lstm模型的输出结果为base,base是lstm模型对监控指标的预测值,每个统计时刻对应一个预测值。但是每个统计时刻的真实值通常有一个合理的区间范围,实测值落在此区间内都算正常。此区间上下界的计算方法如下:

阈值上界=base×(1+p_upper%)

阈值下界=base×(1-p_lower%)

此处,p_upper与p_lower可以根据历史数据进行调整。例如,先根据监测经验给一个初值,比如10,之后再根据监测要求调整。

图10给出了利用lstm模型获取的某指标的阈值计算结果,还给出了该指标的实测值。图中最上面和最下面的两条线分别表示阈值的上界和下界,中间的线为指标的实测值。当指标的实测值在上界与下界之间时,判为指标正常,在上下界之外,则判为指标异常。

与前文的统计分析方案相类似,在长短期记忆网络方案中,当获得了所述目标指标在下一个统计时段的各个统计时刻的动态阈值之后,还可以根据所述目标指标在下一个统计时段的各个统计时刻的动态阈值,计算所述动态阈值的f1分数。然后,判断所述f1分数是否满足预设要求,并在未满足预设要求时,调整相关参数的取值,并重新计算所述目标指标在下一个统计时段的各个统计时刻的动态阈值,直至所述动态阈值的f1分数满足所述预设要求,这里,所述相关参数包括所述预设幅度,例如,具体可以为p_upper与p_lower。

以上详细说明了本发明实施例是如何预先获得目标指标的动态阈值的。

通过上文的介绍,可以看出,本发明实施例提供的日志监测方法,通过设置指标的动态阈值,可以自动判断异常指标并进行智能告警,有效提高告警的可靠性和有效性,大幅节省运维人员的工作量。另外,本发明实施例的日志监测方法具有较好的实时性,能够实时计算、实时采集,并自动化地进行指标阈值的更新计算、指标采集、监控与告警,降低运维对人工的依赖。并且,本发明实施例还通过可视化界面提供监控、告警等功能,提供告警敏感度以及抑制时间等设置,提高了系统使用便利性。

基于以上实施例提供的日志监测方法,本发明实施例还提供了实施上述方法的日志监测系统,请参照图11,本发明实施例提供的日志监测系统110包括:

配置接口模块111,用于显示指标告警的用户配置界面,所述用户配置界面包括有:需要监测的目标指标的配置项以及判断目标指标是否异常的动态阈值的配置项;

日志监测模块112,用于检测用户对所述用户配置界面的配置项的配置,并基于所述配置项的配置,进行日志监测,确定所述目标指标是否异常以及是否需要进行告警;

告警展示模块113,用于在需要进行告警时,通过告警展示界面展示所述目标指标的告警信息。

请参照图12,本发明实施例提供的另一种日志监测系统120,除了包括图11中的模块外,还包括:

指令处理模块114,用于接收用户针对所述目标指标的实时状态显示指令;

状态显示模块115,用于显示所述目标指标的运行状态界面,所述运行状态界面包括下述至少之一:所述目标指标的运行状态、所述动态阈值的运行状态以及所述目标指标的告警历史信息。

本发明实施例中,所述用户配置界面还可以包括以下配置项中的一种或多种:

所述目标指标的告警触发规则的配置项,所述告警触发规则包括至少一种对应于告警敏感度的预设告警规则;

告警通知消息的接收对象的配置项,所述接收对象包括邮件地址、短消息接收终端和语音电话接听终端中的至少一种;

告警抑制时间的配置项,所述告警抑制时间用于在发生所述目标指标的重复告警时,指示不重复发送所述告警通知消息的时间段。

更进一步的,所述用户配置界面还可以包括:所述告警敏感度的配置项,所述告警敏感度的配置项包括:所述目标指标的异常发生频率;和/或,所述动态阈值的参数值,其中,所述动态阈值在不同的参数值下具有不同的取值。

优选的,上述日志监测系统还可以包括通知发送模块,用于向所述接收对象发送所述告警通知消息。

以上的日志监测系统中,上述日志监测模块可以包括:

日志采集模块,用于采集目标系统的日志数据;

指标计算模块,用于根据所述日志数据,获得目标指标在当前统计时刻的数值;

告警判断模块,用于根据所述目标指标在当前统计时刻的数值以及预先获得的所述目标指标的动态阈值,确定是否需要进行告警。

具体的,所述指标计算模块可以包括:

直接提取单元,用于提取所述日志数据中的目标信息,直接得到目标指标在当前统计时刻的数值;和/或,

计算处理单元,用于根据所述日志数据,进行目标指标的计算,得到目标指标在当前统计时刻的当前数值。

具体的,所述告警判断模块可以包括:

第一确定模块,用于根据所述目标指标在当前统计时刻的当前数值,是否超出所述动态阈值在当前统计时刻的阈值范围,确定所述目标指标是否出现异常;

记录更新模块,用于在所述目标指标出现异常时,更新所述目标指标的异常记录;

第二确定模块,用于根据所述目标指标的异常记录是否满足所述告警触发规则,确定是否需要进行告警。

具体的,上述的日志监测系统,还可以包括:

第一历史数据获得模块,用于获取所述目标指标的历史数据;

历史数据量判断模块,用于判断所述历史数据是否包括有最近n个统计周期的数据,其中,所述n为大于1的整数,所述统计周期包括第一数量的连续且等长的统计时段,每个统计时段包括第二数量的统计时刻,相邻的统计时刻间隔相同的时间粒度;

第一分析模块,用于在所述历史数据未包括最近n个统计周期的数据且包括有最近1个统计周期的数据时,提取所述目标指标在最近一个统计周期内不同统计时段的同一统计时刻的历史数据,得到每个统计时刻的第一参考样本;对所述第一参考样本进行统计分析,获得所述目标指标在每个统计时刻的第一动态阈值,得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值;

第二分析模块,用于在所述历史数据包括最近n个统计周期的数据时,获得所述第一动态阈值,并提取所述目标指标在最近n个统计周期内的同一统计时段中的同一统计时刻的历史数据,得到第二参考样本;对所述第二参考样本进行统计分析,获得所述目标指标在每个统计时刻的第二动态阈值;对所述第一动态阈值和第二动态阈值进行加权求和,得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值。

具体的,所述第一分析模块和第二分析模块,进一步按照以下步骤,对每个统计时刻的参考样本进行所述统计分析,所述参考样本为第一参考样本或第二参考样本:

对每个时刻的所述参考样本进行中位数计算,得到每个统计时刻的历史数据的中位数;

按照预定的滑动窗口长度,对所述统计时刻的历史数据的中位数进行滑动平均值计算,得到每个统计时刻的历史数据的基准值base;

对每个时刻的所述参考样本进行平均绝对离差计算,得到每个统计时刻的历史数据的平均绝对离差值mad;

根据每个统计时刻的所述基准值和平均绝对离差值,计算得到所述目标指标在每个统计时刻的动态阈值。

具体的,所述第一分析模块和第二分析模块,进一步按照公式base-m*mad和/或base+m*mad,计算所述目标指标在每个统计时刻的动态阈值,其中,m为一预设参数。

具体的,上述日志监测系统还可以包括:

第二历史数据获得模块,用于获取所述目标指标的历史数据,所述历史数据包括有最近1个统计周期的数据,所述统计周期包括第一数量的连续且等长的统计时段,每个统计时段包括第二数量的统计时刻,相邻的统计时刻间隔相同的时间粒度;

模型构造模块,用于构造长短期记忆网络lstm模型,所述lstm模型的第一层至第四层分别为lstm层、丢失层、lstm层和全连接层,其中,所述第一层包括所述第二数量的时间步以及所述第二数量的神经元,每步的特征数为1个;

模型训练模块,用于将所述目标指标的历史数据,转换为所述lstm模型要求的格式后,输入至所述lstm模型,进行模型训练;

预测模块,用于利用训练得到的所述lstm模型,预测得到所述目标指标在下一个统计时段的各个统计时刻的预测值;

阈值输出模块,用于以所述预测值为参考值进行预设幅度的上调和/或下调,得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值。

具体的,上述日志监测系统还可以包括:

阈值调整模块,用于在得到所述目标指标在下一个统计时段的各个统计时刻的动态阈值之后,根据所述目标指标在下一个统计时段的各个统计时刻的动态阈值,计算所述动态阈值的f1分数;判断所述f1分数是否满足预设要求,并在未满足预设要求时,调整相关参数的取值,并重新计算所述目标指标在下一个统计时段的各个统计时刻的动态阈值,直至所述动态阈值的f1分数满足所述预设要求,其中,在所述动态阈值是所述第一动态阈值或者通过对所述第一动态阈值和第二动态阈值进行加权求和所获得时,所述相关参数包括所述m、所述n、所述第一数量、所述第一动态阈值的权重和第二动态阈值的权重中的至少一个;在所述动态阈值是以所述预测值为参考值进行预设幅度的上调和/或下调所获得时,所述相关参数包括所述预设幅度。

本发明实时例提供的日志监测系统110或120,能够实现上述方法实施例中日志监测系统实现的各个过程,为避免重复,这里不再赘述。

本发明实时例提供的日志监测系统,通过设置指标的动态阈值,可以自动判断异常指标并进行智能告警,有效提高告警的可靠性和有效性,大幅节省运维人员的工作量。另外,本发明实施例的日志监测系统具有较好的实时性,能够实时计算、实时采集,并自动化地进行指标阈值的更新计算、指标采集、监控与告警,降低运维对人工的依赖。并且,该日志监测系统还通过可视化界面提供监控、告警等功能,提供告警敏感度以及抑制时间等设置,提高了系统使用便利性。

本发明实时例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述的日志监测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1