博客
关于我
基于时序数据的微内核预警引擎架构设计
阅读量:457 次
发布时间:2019-03-06

本文共 1651 字,大约阅读时间需要 5 分钟。

基于时序数据的微内核预警引擎架构设计

作者:特来电技术团队

发布时间:2023年X月X日

监控生态体系的三个关键环节

监控生态体系的核心在于"监、析、控"三个环节。作为预警平台的一部分,预警平台需要对监控数据进行规则分析,并为控制系统生成预警日志,起到承上启下的作用。监控平台收集的数据主要是随时间变化的时间序列数据(以下简称"时序数据"),如何设计一个灵活可控的预警引擎,是预警平台的首要任务。

时序数据的快速发展与存储挑战

随着移动互联网、工业互联网、物联网、边缘计算等技术的兴起,时序数据近两年呈爆发式增长。根据DB-Engines公布的权威数据,在各种类型数据库发展趋势中,时序数据库的发展势头异常强劲。特别是在时序数据库TOP 10排名中,半开源的InfluxDB作为新一代时序数据库标杆,综合得分遥遥领先,因此在需要存储时序数据的应用场景中,InfluxDB无疑是首选。

基于InfluxDB的预警引擎设计选择

特来电云平台监控系统亦基于InfluxDB存储监控数据。虽然InfluxDB生态有Kapacitor作为预警系统,但综合考虑到灵活可控、功能可扩展、与业务灵活结合等需求特点,我们最终选择了自主设计微内核的预警引擎。该引擎主要由以下三部分组成:

一、抓数据

任何一个数据处理系统都源于数据,因此预警系统首先要提供支持可扩展的数据源管理。预警引擎需要从时序数据库、关系数据库、No-SQL数据库、WebAPI等多种数据源抓取数据。一般可通过数据中心、数据源类型、数据源连接地址、数据库名称、端口、用户名、密码等属性描述一个数据源实体。预警引擎启动时,需要动态加载配置好的数据源。

二、判规则

预警引擎本质上是一个规则引擎,需要具有高度的描述性与抽象性。为了简化开发和使用,笔者认为基于SQL的规则引擎更为容易掌握。一个典型的基于SQL的规则引擎可以分为以下三个部分:

SELECT DATA FROM TABLE

WHERE FILTER

THEN ACTION

每一条时序数据曲线都可以看作是对一个Tag的描述。依据Tag的数量以及数据的有无,可以将校验规则进行如下分类:

  • 无数据时的校验规则判断
  • 部分数据时的校验规则判断
  • 全部数据时的校验规则判断

为了提高校验规则的灵活性和准确性,预警引擎需要提供多校验规则依赖判断方式。这些依赖规则依旧是SQL,并且作为主校验规则的参数注入到规则判断中,从而可以灵活解决误判问题,提高准确率。

三、做动作

预警触发后,需要执行的动作主要分为两类:通知和命令。

通知

通知方式有邮件、短信、微信、钉钉等。由于系统规模的增长,预警可能会引发大量的预警消息,因此需要对预警规则进行重要级别划分、设置收敛区间、发送时间段等优化,同时结合根因分析,保证运维人员收到有效的预警消息。

命令

命令是指对控制系统下发运维指令,例如重启进程、回收应用程序池、抓取Dump、转储日志等。动作这块需要考虑的因素包括通知的用户。预警规则对应的接收人既可以设置静态的默认接收人,也可以动态计算,比如根据预警实际发生时所在的机器、进程等信息计算出具体的接收人。

总结

基于时序数据的微内核预警引擎需要提供可扩展及动态加载功能,基于SQL实现规则解析,驱动监控数据从抓取、判断到动作流畅运转。

特来电云计算与大数据微信公众号

1.微信公众号名称:特来电云计算与大数据

2.二维码:

转载地址:http://kjvyz.baihongyu.com/

你可能感兴趣的文章
Objective-C实现hill climbing爬山法用来寻找函数的最大值算法(附完整源码)
查看>>
Objective-C实现Hill密码加解密算法(附完整源码)
查看>>
Objective-C实现histogram stretch直方图拉伸算法(附完整源码)
查看>>
Objective-C实现Hopcroft算法(附完整源码)
查看>>
Objective-C实现horizontal projectile motion平抛运动算法(附完整源码)
查看>>
Objective-C实现hornerMethod霍纳法算法(附完整源码)
查看>>
Objective-C实现Horn–Schunck光流算法(附完整源码)
查看>>
Objective-C实现Http Post请求(附完整源码)
查看>>
Objective-C实现http下载文件 (附完整源码)
查看>>
Objective-C实现Http协议下载文件(附完整源码)
查看>>
Objective-C实现huffman哈夫曼编码算法(附完整源码)
查看>>
Objective-C实现ID3贪心算法(附完整源码)
查看>>
Objective-C实现IIR 滤波器算法(附完整源码)
查看>>
Objective-C实现IIR数字滤波器(附完整源码)
查看>>
Objective-C实现insertion sort插入排序算法(附完整源码)
查看>>
Objective-C实现integer partition整数分区算法(附完整源码)
查看>>
Objective-C实现integerPartition整数划分算法(附完整源码)
查看>>
Objective-C实现interpolation search插值搜索算法(附完整源码)
查看>>
Objective-C实现Interpolation search插值查找算法(附完整源码)
查看>>
Objective-C实现intersection交集算法(附完整源码)
查看>>