一种交易系统实时监控方法及其监控系统与流程

文档序号:15448715发布日期:2018-09-14 23:41阅读:415来源:国知局

本发明属于交易系统监控技术领域,具体涉及一种交易系统实时监控方法及其监控系统。



背景技术:

随着我国经济的高速发展,银行各种业务也随之广泛地展开。与此同时,银行的各种交易系统也得到了长足的发展。银行的交易系统是银行对外提供金融服务的窗口,交易系统的可用性和安全性与客户体验息息相关,并直接关系到银行在广大客户中的公众形象。如何监控并保障各交易系统持续平稳运行,及早发现并排除已经发生的故障是各银行it部门的重要课题。

现有的交易系统对应的监控系统分散于不同主机中,难以对交易系统进行集中的监控。部分交易系统监控系统,需要人工设置不同时段的静态告警阈值,准确度的高低取决于专业人工经验的丰富程度,难以满足多交易系统的告警需求。



技术实现要素:

本发明的目的是提供一种交易系统实时监控方法及其监控系统,其基于历史交易日志训练得到交易量的决策树回归预测模型,实现分时段预测各交易系统交易量的交易量预测阈值,将交易量预测阈值作为各交易系统当前的动态告警阈值,精确识别出系统异常情况;同时采将多个交易系统集中使用一个决策树回国模型进行预测,满足多交易系统的告警需求。

一方面,本发明提供一种交易系统实时监控方法,包括如下步骤:

s1:采集交易系统的交易流水日志,并进行日志解析和提取关键字段;

其中,所述关键字段至少包括:系统名称、交易时间、交易类型;

s2:读取交易流水日志的关键字段并计算出每个交易系统在当前滑动时间窗口内的指标;

所述指标为在当前滑动时间窗口内的交易量;

其中,所述当前滑动时间窗口的长度为t,所述当前滑动时间窗口是以t间隔往后滑动,t小于t;

s3:基于预设的决策树回归预测模型获取每个交易系统在所述当前滑动时间窗口内的交易量预测阈值;

所述决策树回归预测模型是基于历史交易数据中每天的每个时间段的特征量与交易量训练而来,所述决策树回归预测模型的输入参数为交易系统在时间段的特征量,输出参数为交易系统在对应时间段内的交易量预测阈值;

其中,将每天划分为时长为t的时间段;并每间隔t时间时,获取每个交易系统在当前时间段的特征量,并利用预设的决策树回归预测模型获取每个交易系统在当前时间段内的交易量预测阈值;

其中,时间段的特征量包括:交易系统名、一周中的第几天、第几小时、小时中的第几个十分钟、是否是节假日、是否与节假日相隔小于2天以及前6个时间段的交易量;

s4:获取每个交易系统的每个指标的告警指标,再根据所述告警指标判断交易系统是否异常;

所述告警指标至少包括:交易系统名、指标名、指标阈值以及波动范围;交易量对应的指标阈值为s3获取的交易量预测阈值;

其中,判断s2计算出的每个交易系统在当前滑动时间窗口内的交易量与指标阈值之间的差是否超过波动范围,若超过,交易系统存在异常;否则,没有异常。

本发明的决策树回归预测模型中所选用的交易系统名、一周中的第几天、第几小时、小时中的第几个十分钟、是否是节假日、是否与节假日相隔小于n天以及前6个时间段的交易量的特征量是与交易量息息相关,能够最大程度影响交易量,因此,选用上述特征量可以提高本模型的预测结果。

进一步优选,s3的执行过程如下:

首先判断当前的滑动时间窗口是对应一个完整的时间段或是跨越两个时间段;

若是对应一个完整的时间段,则获取对应时间段内的交易量预测阈值;

若是跨越两个时间段,则按照步骤a、b计算当前的滑动时间窗口内的交易量预测阈值;

步骤a:获取所述当前滑动时间窗口在跨越的两个时间段中的长度比例,并将所述长度比例作为计算权重;

步骤b:再分别获取跨越的两个时间段内的交易量预测阈值,并采用所述计算权重对跨越的两个时间段内的交易量预测阈值进行加权平均得到当前的滑动时间窗口内的预测静态阈值。

由于在获取交易流水日志并计算在当前滑动时间窗口内的交易量时,系统同步随时间变化,且是以每间隔t时间时,利用预设的决策树回归预测模型获取每个交易系统在时间段内的交易量预测阈值;而当前滑动时间窗口的长度为t,且当前滑动时间窗口是以t间隔往后滑动,t小于t,因此,会存在当前的滑动时间窗口与当前的一个时间段是完全对应的或者是当前的滑动时间窗口跨越两个时间段的两个情况。

第一种情况,即当前的滑动时间窗口与当前的一个时间段是完全对应,本发明已经同步利用预设的决策树回归预测模型获取到每个交易系统在该时间段内的交易量预测阈值,该时间段内的交易量预测阈值即为交易系统在当前的滑动时间窗口内的交易量预测阈值;

第二种情况,即当前的滑动时间窗口跨越两个时间段,本发明采用步骤a、b计算当前的滑动时间窗口内的交易量预测阈值,其中,步骤b中获取的两个时间段内的交易量预测阈值中,前一个时间段内的交易量预测阈值必然是系统已同步获取到,后一个时间段内的交易量预测阈值则不一定已获得,若是暂未获得,则利用历史数据中该后一时间段所在同一时段的交易量预测阈值的平均值作为步骤b中后一时间段内的交易量预测阈值;若是后一时间段内的交易量预测阈值是已同步获得,则覆盖即可,步骤b中则使用同步获取的后一时间段内的交易量预测阈值。

进一步优选,构建所述预设的决策树回归预测模型的过程如下:

a:获取历史交易数据;

其中,所述历史交易数据包括前6-12个月内每个时长为t的时间段的特征量和交易量;

b:筛选出历史交易数据中的离群点并删除;

其中,对每周每个交易系统的同一时间段内的交易量采用拉依达准则进行离群点检测;

c:对筛选后的历史交易数据设定加权比例;

其中,历史交易数据中前两周的数据权重为普通日期的数据权重的4倍,两周后至前1个月之间的数据权重是普通日期的数据权重的2倍;

所述普通日期的数据为一个月后的数据;

d:将历史交易数据按照4:1的比例随机分为训练数据和测试数据,并输入决策树模型得到所述预设的决策树回归预测模型。

以每周同一时间段的交易量为一组,计算每组中的平均值以及标准差s,进而根据拉依达准则筛选出离群点。其中,位于区间之外的时间段的交易量即视为离群点。

进一步优选,所述关键字段还包括响应码、响应码描述以及交易时长,所述每个交易系统在当前滑动时间窗口内的指标还包括每个交易系统在当前滑动时间窗口内的交易成功率和交易平均响应时长;

s4中根据所述告警指标判断交易系统是否异常,还包括:

判断s2中获取的每个交易系统在当前滑动时间窗口内的交易成功率或交易平均响应时长是否低于对应指标阈值,且交易成功率或交易平均响应时长与对应指标阈值之间的差是否超过波动范围,若均是,交易系统存在异常;否则,没有异常。

交易成功率和交易平均响应时长对应的指标阈值为静态阈值,其为经验值。响应码、响应码描述可以用于判别交易是否成功。

进一步优选,所述告警指标还包括告警灵敏度;

其中,s4根据所述告警指标判断交易系统是否异常为:

判断s2计算出的每个交易系统在当前滑动时间窗口内的交易量与指标阈值之间的差是否超过波动范围且持续时间超过所述告警灵敏度;

若是,交易系统存在异常;否则,没有异常。

所述告警灵敏度代表异常持续时间。

进一步优选,s2的执行过程为:

采用sparkstreaming实时流式读取交易流水日志的关键字段并计算出每个交易系统在当前滑动时间窗口内的指标。

基于sparkstreaming流式计算框架的监控平台,能够实时处理流式数据,降低了传统方式的处理延迟。此外,sparkstreaming分布式的计算架构,使监控平台具备方便快捷的横向扩展能力,使监控平台能够轻易应对交易系统迅速增长的交易量。

进一步优选,s1的执行过程为:

首先,利用交易系统上的采集器采集文本类型的交易流水日志以及采集数据库中的交易流水日志;

然后,解析交易流水日志并提取关键字段,并按照预设统一格式输出关键字段得到格式化的交易流水日志;

其中,所述预设统一格式中关键字段值之间以竖线分割。

进一步优选,s2之前还包括采用分布式消息队列缓存格式化的交易流水日志;

其中,每个交易系统的交易流水日志占用一个消息队列的话题。

进一步优选,所述当前滑动时间窗口的长度t为10min,所述当前滑动时间窗口是以t间隔往后滑动时,t为10s。

另一方面,本发明还提供一种采用上述方法的监控系统,包括日志收集层、日志处理层以及存储层;

其中,所述日志收集层、日志处理层均与存储层通信连接;

其中,日志收集层设有日志采集器,用于采集交易系统的交易流水日志,并进行日志解析和提取关键字段;

所述日志处理层设有机器学习模块和流处理模块;

所述机器学习模块,用于构建所述决策树回归预测模型;

所述机器学习模块,用于每间隔t时间时,利用预设的决策树回归预测模型获取每个交易系统在时间段内的交易量预测阈值;以及基于每间隔t时间时获取的每个交易系统在时间段内的交易量预测阈值,来获取每个交易系统在所述当前滑动时间窗口内的交易量预测阈值;

所述流处理模块,用于计算出每个交易系统在当前滑动时间窗口内的指标,以及获取每个交易系统的每个指标的告警指标,再根据所述告警指标判断交易系统是否异常;

所述存储层设有数据库,用于存储交易流水日志、计算出的指标、交易量预测阈值、告警指标。

进一步优先,所述监控系统还包括与所述日志收集层、所述日志处理层连接的日志缓存层;

其中,所述日志缓存层,用于采用分布式消息队列缓存格式化的交易流水日志;

其中,每个交易系统的交易流水日志占用一个消息队列的主题。

有益效果

与现有预测技术相比,本发明的优点有:

1、本发明基于历史交易日志训练得到交易量的决策树回归预测模型,实现分时段预测各交易系统交易量的交易量预测阈值,将交易量预测阈值作为各交易系统当前的动态告警阈值,即每个交易系统在每个当前滑动时间窗口均对应一个动态阈值,进而基于该动态阈值进行异常判定,可以更加精确地识别出系统异常情况;同时将多个交易系统集中在一个决策树回归预测模型,实现了对多个交易系统的实时监控,满足多交易系统的告警需求。

2、本发明决策树回归预测模型是基于历史交易数据中每天的每个时间段的特征量与交易量训练而来,而选用的特征量为交易系统名、一周中的第几天、第几小时、小时中的第几个十分钟、是否是节假日、是否与节假日相隔小于n天以及前6个时间段的交易量,上述特征量既包括了具有时间属性的特征量,如一周中的第几天、第几小时、小时中的第几个十分钟、是否是节假日、是否与节假日相隔小于n天;还包括了具有趋势特性的特征量,如前6个时间段的交易量,充分考虑了交易量时间序列之间的依赖性,进而提高了本发明的决策树回归预测模型的预测结果的可靠性。

3、本发明采用分布式消息队列缓存格式化的交易流水日志以及采用sparkstreaming实时流式读取交易流水日志,能够实时处理流式数据,降低了传统方式的处理延迟。此外,sparkstreaming分布式的计算架构,使监控平台具备方便快捷的横向扩展能力,使监控平台能够轻易应对交易系统迅速增长的交易量。

附图说明

图1是本发明实施例提供的一种交易系统实时监控系统结构图;

图2是一个交易系统一周的交易趋势图;

图3是某交易系统一周的另一交易量趋势图;

图4是某交易系统经过离群点剔除后的交易量趋势图;

图5是某交易系统某天的实际与预测交易量趋势图。

具体实施方式

下面将结合实施例对本发明做进一步的说明。

如图1是本发明实施例提供的一种交易系统实时监控系统结构图。如图所示,监控系统包括依次连接的日志收集层、日志缓存层、日志处理层、存储层以及展示层。

其中,日志收集层设有日志采集器(logstash),用于采集交易系统上的交易流水日志,并解析提取关键字段,并按照预设统一格式输出关键字段得到格式化的交易流水日志。

logstash部署于各个交易系统的主机上,用于实时增量采集交易流水日志。其中,对于文本类型的交易流水日志,使用logstash中exec类型输入插件中的tail-f命令实现对日志文件的增量收集;对于数据库中的交易流水日志,使用logstash-input-jdbc插件实现数据库流水日志增量收集。

本实施例中,使用logstash采集器的grok模块可以对任意日志解析并结构化输出。根据每种交易流水日志的特点定义特定匹配模式,抽取出各交易系统流水日志的关键字段并以竖线分隔,进而将原始交易日志结构化成统一格式的日志,部分交易系统不存在特定字段,则直接空缺。例如如下格式:

系统名称|交易时间|卡号|交易类型|交易机构(渠道)|外联单位名称|单位标识|交易金额|响应码|响应码描述|交易时长。

本实施例中关键字段包括系统名称、交易时间、卡号、交易类型、交易机构(渠道)、外联单位名称、单位标识、交易金额、响应码、响应码描述和交易时长;其他可行的实施例,关键字段可以是其他组合,但是至少要包括系统名称、交易时间、交易类型。

本实施例中日志缓存层采用采用kafka分布式消息队列缓存格式化的交易流水日志,每个交易系统的日志占用一个kafka消息队列的话题(topic)。

本发明中日志处理层设有机器学习模块和流处理模块。本实施例中选用spark机器学习模块(sparkmachinelearning)和spark流处理模块(sparkstreaming)。

其中,spark流处理模块实时读取kafka消息队列中缓存的格式化交易系统流水日志,并利用sparkstreaming的窗口类型的算子计算每个系统的交易量、交易成功率和交易平均响应时间的指标。本实施中滑动时间窗口的长度设为10分钟,并以滑动时间间隔t=10s往后滑动,即sparkstreaming每10秒钟将10分钟长度的滑动时间窗口往后滑动10秒钟长度,并重新计算滑动时间窗口内的每个系统的交易量、交易成功率和交易平均响应时间,并将计算结果写入存储层中的数据库(mysql)中,最后通过展示层中的web界面实时展示出来。

其中,spark机器学习模块(sparkmachinelearning)用于构建决策树回归预测模型,并用于预测滑动时间窗口对应交易量的交易量预测阈值。请参照下文中决策树回归预测模型的构建过程的描述。

获取到交易量预测阈值后,spark流处理模块还用于获取每个交易系统的每个指标的告警指标,再根据所述告警指标判断交易系统是否异常。请参照下文中告警判断过程的描述。

本实施中,日志处理层也设有日志采集器(logstash),其中,日志处理层的日志采集器用于实时读取kafka消息队列中的交易流水数据,发送到存储层中elasticsearch分布式全文搜索引擎进行存储。

决策树回归预测模型:

其中,构建决策树回归预测模型的过程如下a-d:

a:获取历史交易数据;

本实施例中,历史交易数据通过elasticsearch分布式全文搜索引擎的restful接口获取,且本实施例中交易量的指标为以10min为时间段,统计出每个交易系统中前6个月内每个10min间隔内的交易量,并记录每个时间区级的特征量,特征量包括:交易系统名、一周中的第几天、第几小时、小时中的第几个十分钟、是否是节假日、是否与节假日相隔小于n天以及前6个时间段的交易量。

具体实现过程譬如:构造post请求报文,其中请求数据是json格式的聚合查询语句,使用系统名称联合10min时间段作为datehistogram聚合的聚合条件,并以json格式返回各交易系统每个10min间隔的交易量。系统解析http响应报文即可获取各交易系统每个10min间隔的历史交易量。

关于特征量,通过分析某交易系统的历史交易量数据,发现该交易系统的交易量具有一定的周期性,如图2所示,为该系统一周的交易趋势图(以10分钟为一个时段)。一天中,从凌晨到上班时间点以前这段时间,系统交易量一直维持在一个相对较低的水平。系统交易量在工作时间迅速升高,在中午时分到达峰值。交易量在中午工作休息时间暂时回落,下午工作时间开始后,交易量出现短暂回升,接着又开始缓降并一直持续到凌晨,如此循环往复。一周中,工作日交易量总体较高,周末交易量相对较低。此外,节假日交易量比非节假日交易量相对较低,节假日过后的工作日的交易量也相对较低。

通过研究发现,交易系统的10分钟段内的交易量与一周中的第几天、第几小时、小时中的第几个十分钟、是否是节假日、是否与节假日相隔小于n天具有非常高的相关性。且还发现交易量的量级与交易系统类型相关。

另一方面,上述特征量都是仅考虑日期属性对交易量的影响,没有考虑交易量时间序列之间的依赖性,因此本发明选取近期交易量作为趋势特征,使模型具备根据近期交易量动态修正预测值的能力。即将预测时间段前若干个时间段的实际交易量作为交易量趋势特征,经研究,取前60分钟即前6个十分钟段的交易量作为交易量近期趋势特征预测结果最优。

综上所述,为了提高模型的可靠性,本发明选用交易系统名、一周中的第几天、第几小时、小时中的第几个十分钟、是否是节假日、是否与节假日相隔小于2天以及前6个时间段的交易量作为特征量。

b:筛选出历史交易数据中的离群点并删除;

各交易系统每周同一时段的交易量一般稳定在一定量级,交易系统由于偶然情况导致某个时段的交易量激增,或者由于数据故障导致交易量趋于零。如图3所示,该交易系统星期四和星期五的交易量趋势图中均存在交易量尖峰,以上位于尖峰的离群点会对未来对应时段的预测产生消极影响。

本发明针对每周的同一时间段内的交易量采用拉依达准则进行离群点检测。如图4是经过离群点剔除后的交易量趋势图,离群点剔除效果良好。

c:对筛选后的历史交易数据设定加权比例;

其中,使用历史数据训练模型时,近期的交易量的变动会淹没在海量的历史数据当中,没有及时在预测值中反应出来。为了提高预测准确度,本发明将历史交易数据中前两周的数据权重为普通日期的数据权重的4倍,两周后至前1个月之间的数据权重是普通日期的数据权重的2倍;进而提高了交易预测对交易量趋势变化的响应速度。

其中,普通日期的数据为一个月后的数据。

需要说明的是,获取到历史数据中各个时间段的交易量以及特征量后,需要对特征量信息特征转换。本发明中交易量预测模型抽取的特征都是字符串型特征,无法直接输入决策树模型。首先需要对一系列特征进行转换,首先将字符串特征按频率编码为数值标签,接着将以上数值标签化的特征合并为特征向量,便于将特征输入接下里决策树回归模型。最后要对预测结果使用将系统名称特征索引化标签还原成原始字符串,便于预测结果与对应系统名关联。

d:将历史交易数据按照4:1的比例随机分为训练数据和测试数据,并输入决策树模型得到所述预设的决策树回归预测模型。

其中,述特征转换器和决策树回归模型构建成“管道”工作流。将经过预处理的历史数据使用按4:1的比例随机分成训练数据和测试数据。将训练数据输入决策树模型进行迭代训练,最终生成决策树回归预测模型。

需要说明的是,本发明将决策树回归预测模保存到文件系统,每10分钟导入训练好的决策树回归预测模型预测一次,该值即为各系统交易量的动态阈值。每天通过定时任务对各交易系统的分时段的交易量进行预测。

基于上述监控系统以及决策树回归预测模型,本发明提供的一种交易系统实时监控方法。本实施例中,计算出的指标包括每个交易系统在当前滑动时间窗口内的交易量、交易成功率和交易平均响应时间。所述方法的执行步骤如下:

s1:采集交易系统的交易流水日志,并进行日志解析和提取关键字段。

首先,利用交易系统上的采集器采集文本类型的交易流水日志以及采集数据库中的交易流水日志;然后,解析交易流水日志并提取关键字段,并按照预设统一格式输出关键字段得到格式化的交易流水日志。

本实施例中优选进s1和s2之间还包括采用分布式消息队列缓存格式化的交易流水日志;每个交易系统的交易流水日志占用一个消息队列的话题(topic)。

s2:读取交易流水日志的关键字段并计算出每个交易系统在当前滑动时间窗口内的指标;

本实施例中,当前滑动时间窗口的长度t为10min,所述当前滑动时间窗口是以t=10s间隔往后滑动;即每10秒钟将10分钟长度的滑动时间窗口往后滑动10秒钟长度,并重新计算滑动时间窗口内的每个系统的交易量、交易成功率和交易平均响应时间。

s3:基于预设的决策树回归预测模型获取每个交易系统在所述当前滑动时间窗口内的交易量预测阈值。

由于将每天划分为时长为t=10min的时间段,且系统同步每间隔t=10min时间时,利用预设的决策树回归预测模型获取每个交易系统在时间段(10min)内的交易量预测阈值,即,每10分钟导入训练好的决策树回归预测模型预测一次。因此,当前的滑动时间窗口是对应一个完整的时间段或是跨越两个时间段。

s3的执行过程如下:

首先判断当前的滑动时间窗口是对应一个完整的时间段或是跨越两个时间段;

若是对应一个完整的时间段,则获取对应时间段内的交易量预测阈值。应当理解,此时,随着每10分钟导入训练好的决策树回归预测模型预测一次,则系统已经得到对应时间段(10min)内的交易量预测阈值。

若是跨越两个时间段,则按照步骤a、b计算当前的滑动时间窗口内的交易量预测阈值;

步骤a:获取所述当前滑动时间窗口在跨越的两个时间段中的长度比例,并将所述长度比例作为计算权重;

步骤b:再获取跨越的两个时间段内的交易量预测阈值,并采用所述计算权重对跨越的两个时间段内的交易量预测阈值进行加权平均得到当前的滑动时间窗口内的预测静态阈值。

s4:获取每个交易系统的每个指标的告警指标,再根据所述告警指标判断交易系统是否异常;

本实施例中,告警指标至少包括:交易系统名、指标名、监控时间、指标阈值、告警灵敏度、波动范围、最大告警次数。交易量对应的指标阈值为s3获取的交易量预测阈值;交易成功率和交易平均响应时长对应的指标阈值为静态阈值,其值为经验值。

其中,s4的执行过程为:

判断s2计算出的每个交易系统在当前滑动时间窗口内的交易量与指标阈值之间的差是否超过波动范围且持续时间超过所述告警灵敏度,若超过,交易系统存在异常;否则,没有异常。

判断s2中获取的每个交易系统在当前滑动时间窗口内的交易成功率是否低于对应指标阈值,且交易成功率与对应指标阈值之间的差是否超过波动范围,且持续时间超过所述告警灵敏度,若均是,交易系统存在异常;否则,没有异常;

判断s2中获取的每个交易系统在当前滑动时间窗口内的交易平均响应时长是否低于对应指标阈值,且交易平均响应时长与对应指标阈值之间的差是否超过波动范围,且持续时间超过所述告警灵敏度,若均是,交易系统存在异常;否则,没有异常。

其他可行的实施例中,若没有告警灵敏度,则对应删除持续时间超过所述告警灵敏度这一条件即可。其他可行的实施例中,若没有波动范围,则对应删除指标与指标阈值之间的差是否超过波动范围的条件即可。每条告警指标的波动范围都灵活可调以及每条告警指标灵敏度都灵活可调。为了防止告警泛滥,超过告警指标设定的最大告警次数的系统短时间内将不再产生告警,直到该系统指标持续正常一段时间后,系统会恢复告警。

如图5所示,该图是某交易系统某天的实际与预测交易量趋势图。实线代表实际交易量,虚线代表预测交易量,箭头所指范围为该交易系统异常时间段。在该时间段内,交易量低于交易量阈值设定的波动范围,系统立即通过短信、微信和邮件将告警系统、告警时间、告警指标、交易量笔数等告警信息发送给运维人员,同时展示在web界面中。

需要强调的是,本发明所述的实例是说明性的,而不是限定性的,因此本发明不限于具体实施方式中所述的实例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,不脱离本发明宗旨和范围的,不论是修改还是替换,同样属于本发明的保护范围。

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