本发明涉及预警技术领域,尤其涉及一种预警方法。
背景技术:
现有技术中,预警系统种类繁多,功能各异,有用于森林防火的,有用于治安管理的,有用于健康管理的等等。一般均是对自然、生产过程中的关键安全参数进行监测,当达到极限值时产生强提示性的报警。然而这种常见的报警方式比较单一,配置规则内容时并不友好,只能简单根据已有采集数据模型进行简单阀值配置,一些需要因地制宜的预警逻辑、一些需要复杂公式计算的预警逻辑,往往需要用户自行计算出阀值结果,再把阀值配置进规则中,并不能把真正地把预警逻辑固化在规则中,导致很容易出现轻易发出预警或轻易解除预警,无法做到真正的把控。
技术实现要素:
本发明的目的在于针对背景技术中的缺陷,提出一种预警方法和系统,通过预设好的全局标准化预警规则和用户自定义的客户化预警规则,基于预警组合机制和预警升级机制,将预警逻辑固化在规则中,及时地对监测值的异常动态变化情况进行提前预警和分析,高效灵活积累异常识别经验,根据环境动态提升异常等级,提高异常处理的效率;
通过预警恢复机制,利用恢复系数和恢复条件,准确判断是否解除异常预警状态,避免发生频繁的预警恢复和误报。
为达此目的,本发明采用以下技术方案:
一种预警方法,包括在进行预警识别前进行预警异常处理;
所述预警识别包括如下步骤:
采集环境或待预警设备的二进制数据,对二进制数据进行临时备份;
基于采集的二进制数据添加待预警的采集项,基于采集项添加全局标准化预警规则和/或客户化预警规则;
转化二进制数据为遵从json协议的数据;
并发地将已转化好的json数据推送至rabbitmq队列;
实时监听rabbitmq队列,对json数据进行数据校验,排除问题数据以获得正确数据;
将正确数据存储至redis数据库进行一级缓存以备份数据以及存储至ehcache缓存框架进行二级缓存以运行数据;
从ehcache缓存框架获取正确数据,根据采集项匹配预警规则,识别预警的组合、升级机制,基于线程池并发解释预警规则进行预警;
触发预警,生成预警日志,报告预警情况;
触发预警恢复机制,解除异常,生成预警恢复日志。
所述预警恢复机制包括:
识别所采集的二进制数据恢复至正常范围内时,根据恢复系数和恢复条件执行恢复判断操作,所述恢复判断操作包括判断二进制数据是否刚好恢复至触碰正常范围的临界值,若是,则将本次恢复判定为非正常恢复,若否,则判定为正常恢复。
优选的,所述预警恢复机制具体包括:
若本次预警为上限预警,则所述恢复判断操作包括判断检测值是否下降至正常范围内所设定的低点值;
若本次预警为下限预警,则所述恢复判断操作包括判断检测值是否上升至正常范围内所设定的高点值;
所述低点值和所述高点值不属于正常范围的临界值。
优选的,预警的组合机制复用已有预警规则进行复杂预警,具体包括:
新建预警规则;
将新建的预警规则关联其他已有预警规则进行联动预警。
优选的,预警的升级机制配置多条预警规则进行升级联动预警,具体包括:
配置多条预警规则,对多条预警规则进行等级划分;
基于划分的等级,下级预警规则触发上级预警规则进行预警,以此类推,直至触发最高级预警规则进行预警。
优选的,每一个所述采集项可添加多条预警规则;
所述全局标准化预警规则为预设好的预警规则;
所述客户化预警规则为需自定义的预警规则;
预警规则包括规则内容、持续时间和预警级别;
所述规则内容包括根据采集项的二进制数据设置判断逻辑来构成触发预警条件;
所述持续时间包括在所述规则内容被判断生效时,在经过预设的持续时间后方可触发预警;
所述预警级别包括根据严重程度划分预警等级。
优选的,所述数据校验包括:
校验所采集的数据是否为负数,若是,则进行负数排除警告,排除问题数据;
校验所采集的数据其自带的采集时间是否超过实际系统时间,若是,则进行时间排除告警,排除问题数据。
优选的,所述预警日志包括记录预警生效后所有全预警状态的日志;
所述预警恢复日志包括记录恢复时刻的日志。
优选的,所述预警异常处理包括如下步骤:
步骤s1:采集环境或待预警设备的原始数据,基于原始数据判断预警识别过程中所使用的预警规则是全局标准化预警规则还是客户化预警规则;
若为客户化预警规则,则执行步骤s3;
若为全局标准化预警规则,则执行步骤s2;
步骤s2:设置全局标准化预警规则;
步骤s3:基于所选的预警规则进行试运行预警,生成预警记录,不对外报告预警信息;
步骤s4:根据预警记录运行预警判断,生成预警判断运行结果,同时触发预警自我纠错机制判断预警规则是否存在问题,若是,则暂停该预警规则的预警功能;
步骤s5:根据预警判断运行结果判断本次试运行预警是否被触发,若是,则本次试运行预警不存在异常,若否,则本次试运行预警存在异常,对本次试运行预警进行修复。
优选的,预警自我纠错机制判断预警规则是否存在问题包括如下步骤:
判断当前预警规则是否超出纠错系数,若是,则当前预警规则存在问题;
暂停存在问题的预警规则的预警功能并对其进行修复。
优选的,当本次试运行预警没有被触发时,判断在预设时间内是否确认处理本次预警异常,若是,则修复本次预警;若否,则发出异常告警。
本发明相对于现有技术所达到的有益效果:
1、本发明在预警识别前进行预警异常处理,通过根据不同预警规则进行试运行预警来判断当前预警系统是否存在异常以及通过预警自我纠错机制判断当前预警规则是否存在问题,实现预警规则自检,以提高预警系统的正确性。
2、本发明通过预设好的全局标准化预警规则和用户自定义的客户化预警规则,基于预警组合机制和预警升级机制,将预警逻辑固化在规则中,及时地对监测值的异常动态变化情况进行提前预警和分析,高效灵活积累异常识别经验,根据环境动态提升异常等级,提高异常处理的效率;
3、本发明通过预警恢复机制,利用恢复系数和恢复条件,准确判断是否解除异常预警状态,避免发生频繁的预警恢复和误报;
4、本发明提供人工审核功能以及提供预警记录供溯源分析,保障可靠的保证安全生产作业,在危险发生前,提前通知相关方进行预防保护。
附图说明
图1是本发明的一个实施例的预警异常处理流程图;
图2是本发明的一个实施例的预警识别过程的时序图。
具体实施方式
下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中,相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能理解为对本发明的限值;
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
现有技术中的预警方式比较单一,配置规则内容时并不友好,只能简单根据已有采集数据模型进行简单阀值配置,一些需要因地制宜的预警逻辑、一些需要复杂公式计算的预警逻辑,往往需要用户自行计算出阀值结果,再把阀值配置进规则中,并不能把真正地把预警逻辑固化在规则中,为了解决上述问题,本申请提出一种预警方法,如图2所示,包括在进行预警识别前进行预警异常处理;
所述预警识别包括如下步骤:
采集环境或待预警设备的二进制数据,对二进制数据进行临时备份;
在本实施例中,使用处理器采集环境或者设备的二进制数据,并使用存储器对二进制数据进行临时备份,以防止丢失所采集的数据;
基于采集的二进制数据添加待预警的采集项,基于采集项添加全局标准化预警规则和/或客户化预警规则;
在本实施例中,所述采集项可包括电流、电压、谐波、温度等项目,具体采集项根据实际生产和视处理器的采集能力而定;采集项的添加和删除会动态反应到本次预警中;
优选的,每一个所述采集项可添加多条预警规则;
所述全局标准化预警规则为预设好的预警规则,需要说明的是,此处预设好的预警规则为本系统自带的预警规则,无需用户自行设定;
所述客户化预警规则为需自定义的预警规则,需要说明的是,此处自定义的预警规则需要用户自行设定预警规则,然后再进行添加;
所述全局标准化预警规则和所述客户化预警规则可自行切换,即用户在选择全局标准化预警规则后,可将其转换为选择客户化预警规则,预警规则的转换会动态反应到预警中;
预警规则包括规则内容、持续时间和预警级别;
所述规则内容包括根据采集项的二进制数据设置判断逻辑来构成触发预警条件;
例如,在本实施例中,所述预警规则基于一种接近自然语言的语法,根据实际业务需求使用这种语法,通过笔录或者声控输入判断逻辑,例如:(warning.actualvaluec>(warning.ratinga*1.07-10))&&(warning.measurepointname.equals("xxx采集点")||warning.measurepointarea.contain("xxx城市"));
上述预警规则的含义为采集数据实际值大于额定值*1.07-10,且采集点名称是xxx采集点或者采集点地区是xxx城市时,判断生效;预警规则内容除了个别关键字外,其语法和自然语言一样,便于进行书写;
同时系统也提供另外的方式生成规则内容:设置简单阀值,根据设置的阀值生成上诉规则内容;
所述持续时间包括在所述规则内容被判断生效时,在经过预设的持续时间后方可触发预警;即当规则内容中的逻辑被触发后,需要持续一段时间,方可触发预警。
所述预警级别包括根据严重程度划分预警等级。
如按严重程度分为蓝色(一般)、黄色(较重)、红色(严重),根据不同的颜色来划分预警等级;
需要说明的是,用户在配置预警规则时,是可以进行人工审核后,才被允许通过的,若是需要人工审核,则需发起申请,需要在一定时间内人工确认,如果一定时间内没有人工确认则默认该规则无效,无法触发预警。
转化二进制数据为遵从json协议的数据;
并发地将已转化好的json数据推送至rabbitmq队列;
所述云端采集服务器在接收处理器发送的二进制数据后,把二进制位数据解释成遵从json协议的数据,使用java线程池充分利用云端服务器的多核处理器,并发地把json数据推送至rabbitmq队列;
实时监听rabbitmq队列,对json数据进行数据校验,排除问题数据以获得正确数据;
通过监听rabbitmq队列来获得json数据,使用java线程池,并发对采集数据进行数据校验,排除问题数据;
具体的,所述数据校验包括:
校验所采集的数据是否为负数,若是,则进行负数排除警告,排除问题数据;
校验所采集的数据其自带的采集时间是否超过实际系统时间,若是,则进行时间排除告警,排除问题数据;
通过校验数据可以有效地防止错误数据干扰预警结果。
将正确数据存储至redis数据库进行一级缓存以备份数据以及存储至ehcache缓存框架进行二级缓存以运行数据;
具体的,还包括将正确的数据存储至redis数据库,所述redis数据是进行一级缓存作用,进行正确数据的备份,防止正确数据的丢失,同时还包括将正确数据存储至ehcache缓存框架,所述ehcache缓存框架是进行二级缓存作用,后续匹配预警规则将从此处获取数据,通过设置两级存储,可以有效避免出现在应用大量数据时,由于数据量过大导致系统运行崩溃或运行缓慢的情况。
从ehcache缓存框架获取正确数据,根据采集项匹配预警规则,识别预警的组合、升级机制,基于线程池并发解释预警规则进行预警;
具体的,根据不同的采集项来匹配从选定的全局标准化预警规则或客户化预警规则中选择对应的预警规则进行匹配;
优选的,预警的组合机制复用已有预警规则进行复杂预警,具体包括:
新建预警规则;
将新建的预警规则关联其他已有预警规则进行联动预警。
优选的,预警的升级机制配置多条预警规则进行升级联动预警,具体包括:
配置多条预警规则,对多条预警规则进行等级划分;
基于划分的等级,下级预警规则触发上级预警规则进行预警,以此类推,直至触发最高级预警规则进行预警。
预警组合包括通过新建一个预警规则来关联其他已有预警规则进行联动预警,例如如下场景:
需求对火警进行预警,目前已有规则:
a、一氧化碳气体浓度超高预警规则(持续时间一分钟,预警级别特别严重);
b、空气温度超高预警规则(持续时间一分钟,预警级别特别严重);
c、粉尘浓度超高预警规则(持续时间一分钟,预警级别特别严重);
组合后实际操作:客户新增一条火警预警规则关联以上三条预警规则,三条预警规则同时有两条生效时,即可触发对火警进行预警,通过新建一条预警规则来复用已有预警规则进行复杂预警,无需新增采集设备,无需设计重复预警逻辑,最大限度地节省成本;
进一步的,预警升级根据业务需求配置多条预警规则的升级联动,从而实现预警的升级,例如如下场景:
需求对雷雨天气进行预警,目前已有规则:
a、大雨预警降雨量25~50mm预警规则(持续时间24小时,预警级别严重);
b、暴雨降雨量50~100mm预警规则(持续时间24小时,预警级别严重);
c、大暴雨降雨量100~250mm预警规则(持续时间24小时,预警级别严重);
d、特大暴雨降雨量在250mm以上者预警规则(持续时间24小时,预警级别严重);
升级后实际操作:新增一条雷雨天气预警规则关联以上4条预警规则,下级的预警生效时会触发上级预警进行预警,上级预警生效时会再触发再上一级预警,如此循环,达至最高级别预警。
触发预警,生成预警日志,报告预警情况;
所述报告预警情况可通过发送短信、电子邮件、微信、语音消息等形式进行通知;
触发预警恢复机制,解除异常,生成预警恢复日志。
在异常解除后,触发预警恢复机制来恢复正常,防止出现持续预警的情况,通过生成预警日志和生成预警恢复日志,来保存本次预警的相关信息,以便后续查看。
所述预警恢复机制包括:
识别所采集的二进制数据恢复至正常范围内时,根据恢复系数和恢复条件执行恢复判断操作,所述恢复判断操作包括判断二进制数据是否刚好恢复至触碰正常范围的临界值,若是,则将本次恢复判定为非正常恢复,若否,则判定为正常恢复。
优选的,所述预警恢复机制具体包括:
若本次预警为上限预警,则所述恢复判断操作包括判断检测值是否下降至正常范围内所设定的低点值;
若本次预警为下限预警,则所述恢复判断操作包括判断检测值是否上升至正常范围内所设定的高点值;
所述低点值和所述高点值不属于正常范围的临界值。
当识别到所采集的数据发生变化时,在本实施例中可被理解为数据值恢复至正常范围值内时,此时不会立即解除预警状态,而是根据恢复系数和恢复条件进行判断,当判断到检测值,即采集的数据下降至正常范围内的低点值时或者是上升至正常范围内的高点值时,才会解除异常状态,需要注意的是,检测值触碰到正常范围的临界值是不会触发解除异常状态的操作的。
恢复系数和恢复条件设置方式有两种:
1、用户自定义设置(两种方式):a、可以填写具体数值;b、填写恢复内容;
2、根据本监测点或相似监测点的之前多次预警生效和恢复来进行机器学习,人工智能自动判断;
优选的,所述预警日志包括记录预警生效后所有全预警状态的日志;
所述预警恢复日志包括记录恢复时刻的日志。
现有技术中的预警系统的触发条件和预警流程一旦经过设定,通常情况下不会进行更改以及检查,很容易发生因预警流程和触发条件等因素出现问题而不自知的情况,即无法识别与处理整个预警系统本身所存在的异常,使得整个预警系统在进行预警的时候,容易发生偏差,为了解决上述问题,本申请在进行预警识别之前进行预警异常处理,所述预警异常处理包括如下步骤:
步骤s1:采集环境或待预警设备的原始数据,基于原始数据判断预警识别过程中所使用的预警规则是全局标准化预警规则还是客户化预警规则;
若为客户化预警规则,则执行步骤s3;
若为全局标准化预警规则,则执行步骤s2;
步骤s2:设置全局标准化预警规则;
优选的,设置全局标准化预警规则包括设置规则内容、上下限值、预警恢复条件和预警恢复系数;
所述预警判断包括对规则内容、上下限值、预警恢复条件、预警恢复系数、持续时间和预警级别进行判断。
在本实施例中,如全局标准化预警规则表所示,以配电网预警为例,设置全局标准化预警规则,包括设置预警规则名称、预警规则内容、上限值、下限值、恢复系数、恢复条件等,在进行设置时,如果上下限值为空,则按预警规则内容预警,否则按上下限值预;
全局标准化预警规则表:
步骤s3:基于所选的预警规则进行试运行预警,生成预警记录,不对外报告预警信息;
步骤s4:根据预警记录运行预警判断,生成预警判断运行结果,同时触发预警自我纠错机制判断预警规则是否存在问题,若是,则暂停该预警规则的预警功能;
优选的,预警自我纠错机制判断预警规则是否存在问题包括如下步骤:
判断当前预警规则是否超出纠错系数,若是,则当前预警规则存在问题;
暂停存在问题的预警规则的预警功能并对其进行修复。
步骤s5:根据预警判断运行结果判断本次试运行预警是否被触发,若是,则本次试运行预警不存在异常,若否,则本次试运行预警存在异常,对本次试运行预警进行修复。
优选的,当本次试运行预警没有被触发时,判断在预设时间内是否确认处理本次预警异常,若是,则修复本次预警;若否,则发出异常告警。
在本实施例中,对预警系统本身可能存在异常进行识别与处理是非常必要,因此本申请将对预警系统可能存在预警流程异常的问题放置于预警系统对设备或环境进行识别步骤之前,以保证对设备或环境进行预警识别时不会出现偏差;具体的,由于预警识别是基于两种预警规则进行的,即全局标准化预警规则和客户化预警规则,全局标准化预警规则为预警系统自带默认预警规则,客户化预警规则为客户自定义的预警规则,因此需先进行判断,若是客户化预警规则,则直接基于客户化预警规则进行试运行预警,不改变客户自定义的预警规则,若是全局标准化预警规则,则需先设置其规则内容在进行试运行预警;
进一步的,试运行预警生成预警记录,但是不对外发送预警信息,需要说明的是,试运行预警需持续一段时间,如图1所示的2小时试运行预警,以保证试运行预警的有效性,试运行预警会生成预警判断运行结果,基于该结果可判断本次试运行预警是否有被触发,若是被触发,则表示预警系统的预警不存在异常,若是不被触发,则表示预警系统的预警存在异常,存在异常时,在一段时间内等待确认,如图1所示的2小时内等待确认,此次确认为人工确认,确认是否进行处理,若是,则对异常进行修复,若否,则说明本次试运行预警出现异常却无法得知,将选择对应通知方式将修复策略发送出去;
进一步的,在进行试运行预警时,会触发预警自我纠错机制,所述预警自我纠错机制可理解为如果一条预警规则如果超常量(纠错系数)生成,则会先暂停该规则的生成,然后通知相关负责人进行处理,待相关负责人处理后,确认没有问题,再恢复改规则预警工作;所述纠错系数可被设置为如图1中的一条预警规则超过30%的用户同时报警或者在15分钟内产生了50条预警短信。
纠错系数设置方式有两种:
1、用户自定义设置(包括两种方式):a、可以填写具体数值;b、填写纠错内容;
2、本系统根据本监测点或相似监测点的之前多次预警生效和恢复来进行机器学习,人工智能自动判断;
以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限值。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。
1.一种预警方法,其特征在于:包括在进行预警识别前进行预警异常处理;
所述预警识别包括如下步骤:
采集环境或待预警设备的二进制数据,对二进制数据进行临时备份;
基于采集的二进制数据添加待预警的采集项,基于采集项添加全局标准化预警规则和/或客户化预警规则;
转化二进制数据为遵从json协议的数据;
并发地将已转化好的json数据推送至rabbitmq队列;
实时监听rabbitmq队列,对json数据进行数据校验,排除问题数据以获得正确数据;
将正确数据存储至redis数据库进行一级缓存以备份数据以及存储至ehcache缓存框架进行二级缓存以运行数据;
从ehcache缓存框架获取正确数据,根据采集项匹配预警规则,识别预警的组合、升级机制,基于线程池并发解释预警规则进行预警;
触发预警,生成预警日志,报告预警情况;
触发预警恢复机制,解除异常,生成预警恢复日志;
所述预警恢复机制包括:
识别所采集的二进制数据恢复至正常范围内时,根据恢复系数和恢复条件执行恢复判断操作,所述恢复判断操作包括判断二进制数据是否刚好恢复至触碰正常范围的临界值,若是,则将本次恢复判定为非正常恢复,若否,则判定为正常恢复。
2.根据权利要求1所述一种预警方法,其特征在于:
所述预警恢复机制具体包括:
若本次预警为上限预警,则所述恢复判断操作包括判断检测值是否下降至正常范围内所设定的低点值;
若本次预警为下限预警,则所述恢复判断操作包括判断检测值是否上升至正常范围内所设定的高点值;
所述低点值和所述高点值不属于正常范围的临界值。
3.根据权利要求1所述一种预警方法,其特征在于:
预警的组合机制复用已有预警规则进行复杂预警,具体包括:
新建预警规则;
将新建的预警规则关联其他已有预警规则进行联动预警。
4.根据权利要求1所述一种预警方法,其特征在于:
预警的升级机制配置多条预警规则进行升级联动预警,具体包括:
配置多条预警规则,对多条预警规则进行等级划分;
基于划分的等级,下级预警规则触发上级预警规则进行预警,以此类推,直至触发最高级预警规则进行预警。
5.根据权利要求1所述一种预警方法,其特征在于:
每一个所述采集项可添加多条预警规则;
所述全局标准化预警规则为预设好的预警规则;
所述客户化预警规则为需自定义的预警规则;
预警规则包括规则内容、持续时间和预警级别;
所述规则内容包括根据采集项的二进制数据设置判断逻辑来构成触发预警条件;
所述持续时间包括在所述规则内容被判断生效时,在经过预设的持续时间后方可触发预警;
所述预警级别包括根据严重程度划分预警等级。
6.根据权利要求1所述一种预警方法,其特征在于:
所述数据校验包括:
校验所采集的数据是否为负数,若是,则进行负数排除警告,排除问题数据;
校验所采集的数据其自带的采集时间是否超过实际系统时间,若是,则进行时间排除告警,排除问题数据。
7.根据权利要求1所述一种预警方法,其特征在于:
所述预警日志包括记录预警生效后所有全预警状态的日志;
所述预警恢复日志包括记录恢复时刻的日志。
8.根据权利要求1所述一种预警方法,其特征在于:
所述预警异常处理包括如下步骤:
步骤s1:采集环境或待预警设备的原始数据,基于原始数据判断预警识别过程中所使用的预警规则是全局标准化预警规则还是客户化预警规则;
若为客户化预警规则,则执行步骤s3;
若为全局标准化预警规则,则执行步骤s2;
步骤s2:设置全局标准化预警规则;
步骤s3:基于所选的预警规则进行试运行预警,生成预警记录,不对外报告预警信息;
步骤s4:根据预警记录运行预警判断,生成预警判断运行结果,同时触发预警自我纠错机制判断预警规则是否存在问题,若是,则暂停该预警规则的预警功能;
步骤s5:根据预警判断运行结果判断本次试运行预警是否被触发,若是,则本次试运行预警不存在异常,若否,则本次试运行预警存在异常,对本次试运行预警进行修复。
9.根据权利要求7所述一种预警方法,其特征在于:
预警自我纠错机制判断预警规则是否存在问题包括如下步骤:
判断当前预警规则是否超出纠错系数,若是,则当前预警规则存在问题;
暂停存在问题的预警规则的预警功能并对其进行修复。
10.根据权利要求7所述一种预警方法,其特征在于:
当本次试运行预警没有被触发时,判断在预设时间内是否确认处理本次预警异常,若是,则修复本次预警;若否,则发出异常告警。
技术总结