近年来,随着企业IT架构不断转型及数据量显著增加,监控报警/事件处理面临着诸多难题:因吞吐量、入库效率较低,性能方面无法应对日益增长的告警规模和告警风暴;因受处理逻辑限制,功能方面无法处理复杂逻辑业务场景,无法根据需求定制化开发;架构方面无法做到高可用、无法将计算和存储解耦等等。
为此,光大科技以事件数据处理业务为切入点,通过开源框架与自主研发相结合,采用最新的分布式计算和存储技术,研发了高并发、高性能、分布式、可扩展的新一代事件分布式事件处理引擎产品(简称UMDB)。
事件处理引擎在运维平台或监控平台中是核心处理组件,可实现对不同设备或监控工具的事件/告警进行实时解析处理,包括事件丰富、报警压缩、恢复关联、自动升降级、维护期判断、告警通知等。
目前业界大部分运维平台或监控平台使用的大多是OMNIbus商业产品(一个基于内存支持SQL的事件处理引擎),虽然前几年一直处于业内领先水平,但随着企业架构复杂化、数据量显著提升,对相关软件提高性能、自主可控的诉求不断增加。 光大科技研发的新一代分布式事件处理引擎产品,可应对海量报警下的实时处理场景,并对标原OMNIbus商业产品,实现对其快速平滑替换升级,切实解决当前客户面临的事件处理能力瓶颈,满足自主可控要求。
同时,UMDB针对各行业事件处理产品特性进行了优化:1.长期运行的高效性与稳定性保障了业务系统的稳定运行;2.良好的扩展性使开发人员不再担心额外的需求需要做过多的变动;3.操作的便捷性使得运维人员上手容易,减少运维成本。
服务目标:
1.
事件采集单纯化
事件采集器一般只部署为主备的方式,相当于单机运行,当数据量比较大,尤其是告警风暴发生时,如果带有处理逻辑,往往处理不过来,就会造成事件大量延时,所以采集器只纯粹做原始事件采集工作,采集到原始事件时,直接发送到事件处理平台由其集中处理;
2.
事件处理集中化
事件处理有很多规则需要统一管理,有很多设备对象和其它资源需要缓存,因此事件处理需要做成一个集中处理平台,才能较好地满足需求;
3.
实现分布式事件处理能力
事件处理过程中存在大量的流处理和批处理,要做大量复杂的逻辑运算,因此需要构建分布式集群来处理企业级大量的事件;
4.
系统水平扩充能力强
随着时间的推移,设备和应用会不断增长,事件也会随之增长,因此事件处理系统应具备水平扩充的能力;
5.
分布式内存数据库
由于告警数据量大、告警会不时产生风暴、每一条告警处理过程中会大量的读写告警库,需要一个分布式内存数据库作为告警库,分布式内存数据库可以将访问和逻辑处理分摊,并且在内存中进行,性能可以满足需求;
6.
告警库Sql支持
告警处理过程中对告警库的访问非常灵活,支持Sql可以满足需求,很多支持Key-Value的分布式内存NoSQL不能满足需求,如Redis, Geode等;
7.
自主构建
事件处理逻辑复杂多变,采用商业化软件不能紧贴功能需求和业务需求,在开源软件的基础上自主构建事件处理平台,既可以提升构建速度,也可以最大程度满足功能需求和业务需求。
产品构架:
※ 事件接入 主要是连接工具层与报警处理层之间的数据传输。报警接入服务通过Zookeeper注册获取,获取报警处理地址,并进行数据传输;
※ 事件处理 主要是对报警采集器传输过来的报警,按照业务需要进行处理。通用的报警处理:报警预处理、报警丰富、报警压缩、维护期处理、通知处理等等。这些处理场景可以根据自己的业务需要,自定义添加和调整;
※ 事件APP容器 主要是对报警处理平台中所有的场景APP进行热部署、解析和管理,保证APP的正常运行;
※ 数据管理 主要是对报警处理平台数据的管理。如:增量备份或定时备份的数据归档、报警处理平台主备同步、数据导入、导出功能等;
※ 数据接口 主要是对内的开发接口和对外的数据接口。包括:APP热部署接口主要是对APP管理层的控制接口、数据操作接口主要是对外提供操作和查询的接口、运行时接口主要是报警处理平台自监控接口、其他接口主要是通过APP自定义发布接口等;
※ 事件存储 以内存和磁盘结合的方式对事件进行存储,即所有事件在内存中和磁盘中保持一致,平台运行过程中所需要的事件直接从内存获取;平台重启时可以从磁盘加载数据,这样既保证了运行的高性能,又保证事件的持久化;
※ 展示层 对各类告警进行统一展示,具备丰富的声光提示、告警快速查询和处置、自定义告警过滤器和告警视图等能力。
产品特性
分布式高可用架构
采用Dubbo框架搭建集群,提供分布式调用和负载均衡功能,处理能力可水平扩展;处理节点在宕一定数量的情况下集群依然可用;
高并发高性能
告警处理入库能力10000条/s;活动告警库存储量1000万级;历史告警库存储量亿级;
强兼容性
全兼容OMNIbus的处理规则库及报警处理逻辑,直接导出导入生效,实现无缝平滑过渡;
支持多数据中心部署
支持多数据中心主备模式部署,数据中心间自动同步数据;数据定时自动备份,全备+增量备份的方式,保证数据无丢失;
高扩展性
支持自定义App开发和部署;支持类SQL App并扩充SQL函数及语法;
APP应用商店模式
对于大型复杂的处理逻辑,可以使用Scala或Java语言开发,打成Jar包热部署到处理引擎中,同时也可以随时将App卸载;流APP可链条化编排,批APP可调度运行在不同的节点上,各APP间可协做共同完成复杂的业务,如汇总处理、分布处理;
告警链路追踪
每一条告警处理的关键路径上都有追踪信息,可以查看告警处理链路、统计告警处理的性能指标。
应用案例
某商业银行统一监控平台事件处理商业产品(某国外厂商替换)
某商业银行于2021年8月完成统一事件处理引擎替换,新一代事件处理引擎UMDB双中心架构正式投产运行,实现某商业银行统一监控管理平台全面国产化改造升级。
UMDB在架构上采用分布式多线程并行处理模式,解耦计算和存储模块,提供高并发、高性能、易扩展的处理能力。丰富了数据采集对接模式,可直接对接Syslog、SnmpTrap、ITM、Zabbix等多种告警源。告警数据经过规则解析、告警丰富等一系列流/批处理后完成告警统一管理、统一展示、统一外发。此外,基于UMDB还扩展了告警处理手段,数据逻辑处理技术上可扩展Java/Scala等高级开发语言,实现诸如故障根因分析、告警汇聚、告警热点等复杂业务场景。
该项目实现监控系统针对网络设备事件、硬件设备事件、Zabbix监控告警、Prometheus监控告警的快速接入,实现告警/事件统一接入、统一解析处理、统一展现,并基于流批处理规则和大数据算法,对整个数据中心不同领域告警进行关联分析、告警压缩、告警抑制、智能告警推荐等场景,效果显著。