博客
关于我
基于时序数据的微内核预警引擎架构设计
阅读量: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/

你可能感兴趣的文章
Openlayers下载与加载geoserver的wms服务显示地图
查看>>
Openlayers中使用Cluster+Overlay实现点击单个要素和聚合要素时显示不同弹窗
查看>>
Openlayers中使用Cluster实现点位元素重合时动态聚合与取消聚合
查看>>
Openlayers中使用Cluster实现缩放地图时图层聚合与取消聚合
查看>>
Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度)
查看>>
Openlayers中使用Overlay实现点击要素弹窗并且弹窗随之移动
查看>>
Vmware系列&虚拟机系列【仅供参考】:使用vCenter Auto Deploy制作ESXI系统封装(适合高版本vSphere)
查看>>
Openlayers中加载GeoJson文件显示地图
查看>>
Openlayers中加载Geoserver切割的EPSG:900913离线瓦片图层组
查看>>
Openlayers中加载Geoserver切割的EPSG:900913离线瓦片地图并显示
查看>>
Openlayers中多图层遮挡时调整图层上下顺序
查看>>
Openlayers中实现地图上打点并显示图标和文字
查看>>
Openlayers中实现地图上添加一条红色直线
查看>>
Openlayers中将某个feature置于最上层
查看>>
Openlayers中点击地图获取坐标并输出
查看>>
Openlayers中设置定时绘制和清理直线图层
查看>>
Openlayers入门教程 --- 万字长篇
查看>>
Openlayers图文版实战,vue项目从0到1做基础配置
查看>>
VM16+ubuntu20.04+win10如何固定虚拟机的ip (固定IP)
查看>>
OpenLayers学习三:地图旋转及地图跳转到某一点的方式(以类为接口)
查看>>