一种处理监控大数据的实时流计算监控系统及方法技术方案

技术编号:21199680 阅读:37 留言:0更新日期:2019-05-25 01:12
本发明专利技术公开了一种处理监控大数据的实时流计算监控系统及方法,该系统包括数据采集单元,采用监控Agent,通过主动上报或主动收集的方式获得对应机器上的监控原始数据;数据缓存单元,包括用于存储监控Agent收集到的监控原始数据和存储聚合计算后的监控数据的高性能消息队列Kafka;数据计算单元,基于高并发流计算引擎Flink,对原始监控数据进行聚合计算,聚合计算完的监控数据被发送到高性能消息队列Kafka中做暂时缓存;监控状态管理服务单元,用于监控数据采集单元和数据计算单元的运行状态;数据存储单元和数据展现单元,本发明专利技术所公开的系统及方法保证了高并发计算的准确性,加快了展现速度。

A Real-time Flow Computing Monitoring System and Method for Processing Monitoring Large Data

The invention discloses a real-time flow calculation monitoring system and method for processing large monitoring data. The system includes a data acquisition unit, which uses a monitoring agent to obtain the original monitoring data on the corresponding machine by means of active reporting or active collection, and a data buffer unit, which includes the monitoring original data collected by the monitoring agent and the monitoring data stored after aggregated calculation. High performance message queue Kafka; data computing unit, based on high concurrent flow computing engine Flink, aggregates the original monitoring data, and the aggregated monitoring data is sent to high performance message queue Kafka for temporary cache; monitoring state management service unit, which monitors the running status of data acquisition unit and data computing unit; data storage unit and number According to the display unit, the system and method disclosed by the invention ensures the accuracy of high concurrent calculation and speeds up the display speed.

【技术实现步骤摘要】
一种处理监控大数据的实时流计算监控系统及方法
本专利技术涉及大数据计算
,特别涉及一种处理监控大数据的实时流计算监控系统及方法。
技术介绍
随着云计算大数据技术的日益普及,分布式技术快速发展,业务系统规模日益复杂,机器规模日益庞大,相应产生的监控数据也逐渐成为一种大数据(以下简称“监控大数据”),传统的监控系统在应对监控大数据时显得力不从心,因此迫切需要新的监控系统具有高并发的处理能力。众所周知,数据价值随着时间的流逝而快速降低,监控大数据对时间的要求更加迫切,如果监控到故障数据后,系统很久才能做出处理,那么系统的可用性及可靠性将大打折扣,因此迫切需要新的监控系统具有实时流计算的处理能力。监控大数据是一种典型的时间序列数据(以下简称“时序数据”),这是一种以(时间戳,数值)为元组的数据类型,需要特殊数据库存储,而传统的监控系统都是使用关系型数据库存储监控数据,因此迫切需要新的监控系统使用时序数据库存储监控大数据。监控大数据的展现是监控系统非常重要的一部分,传统的监控系统展现能力比较弱,直接展示原始监控数据时性能比较差,随着前端技术的发展,对监控大数据展现能力的要求也越来越高,因此迫切需要新的监控系统具有很强的前端展现能力。监控大数据一般涉及到三个时间:监控数据产生的事件时间(EventTime),监控数据到达监控系统的时间(IngestionTime),监控数据被处理的时间(ProcessTime),传统的监控系统只能按照处理时间(ProcessTime)处理监控数据,当有网络延迟时,错误率比较高,因此迫切需要新的监控系统具有同时处理以上三种时间的能力。现有的Zabbix是一个企业级的、开源的、分布式的监控套件,被用来监控IT基础设施的可用性和性能,采用Pull的方式采集数据,数据存储在关系型数据库MySQL中。Zabbix采用Pull的方式采集数据,不是一种流计算的方式,数据实时性不高;当目标机器量大之后,Pull任务会出现积压,采集数据会延迟,因此也不是一种高并发的监控系统;Zabbix将监控数据存储在关系型数据库MySQL中,而非专业的时序数据库,当数据量大时,数据库会成为瓶颈,性能上会有损耗。目前也有技术存储层采用关系型数据库MySQL,存储层使用HTML5、CSS和JS库开发,界面风格使用Bootstrap3.0开发的大数据平台监控系统。尽管使用了大数据技术,但是存储监控数据的数据库仍是关系型数据库MySQL,而非专业的时序数据库,当数据量大时,数据库会成为瓶颈,性能上会有损耗。尽管展现层使用了HTML5、Bootstrap3.0,但只是对聚合的监控数据进行展现,并不能钻取到原始监控数据,易用性差。另外,也有技术实时任务由SparkStreaming和Storm直接读取Kafka数据流,进行数据清洗和计算。尽管使用了流计算技术,但是SparkStreaming是一种“微批次”(Micro-Batch)技术,本质上还是批处理,并非真正的流计算,并且不能基于监控数据产生时间(EventTime)处理数据,错误率比较高。
技术实现思路
为解决上述技术问题,本专利技术提供了一种处理监控大数据的实时流计算监控系统及方法,以达到提高采集监控大数据的性能,基于事件时间(EventTime)进行计算保证高并发计算的准确性,通过展现聚合数据并能钻取到原始数据加快展现速度的目的。为达到上述目的,本专利技术的技术方案如下:一种处理监控大数据的实时流计算监控系统,包括如下单元:数据采集单元,采用监控Agent,通过主动上报或主动收集的方式获得对应机器上的监控原始数据,并且定时调用监控状态管理服务单元,实现对监控Agent状态的实时自监控;数据缓存单元,包括用于存储监控Agent收集到的监控原始数据和存储聚合计算后的监控数据的高性能消息队列Kafka;数据计算单元,基于高并发流计算引擎Flink,对原始监控数据进行聚合计算,同时对监控数据划分时间窗口,在每个计算窗口内,按照监控指标进行分组,根据监控数据自身携带的数据采集时间进行聚合计算,处理乱序数据以及延迟到达数据,聚合计算完的监控数据被发送到高性能消息队列Kafka中做暂时缓存,并且定时调用监控状态管理服务单元,实现对高并发流计算引擎Flink状态的实时自监控;数据存储单元,包括用于存储聚合计算后的监控数据的时序数据库InfluxDB,和用于存储监控原始数据的HBase;数据展现单元,通过Grafana展现进行聚合计算后的监控数据,并且通过钻取功能,从HBase中联查到原始的监控数据。一种处理监控大数据的实时流计算监控方法,采用上述的一种处理监控大数据的实时流计算监控系统,包括如下步骤:(1)数据采集:数据采集单元利用监控Agent,通过主动上报或主动收集的方式获得对应机器上的监控原始数据;(2)数据缓存:监控Agent收集到监控原始数据后,在本地做短时间的内存缓存,然后批量将监控原始数据发送到高性能消息队列Kafka,作为所有分布式监控大数据的集中数据缓存;(3)数据计算:通过高并发流计算引擎Flink,从高性能消息队列Kafka中实时拉取监控数据进行聚合计算,同时计算时对监控数据划分时间窗口,在每个计算窗口内,按照监控指标进行分组,根据监控数据自身携带的数据采集时间进行聚合计算,处理乱序数据以及延迟到达数据;(4)数据缓存:高并发流计算引擎Flink聚合计算完的监控数据被发送到高性能消息队列Kafka中做暂时缓存;(5)数据存储:存储在高性能消息队列Kafka中的监控数据被分类批量写入到不同的存储数据库,聚合计算后的监控数据写入到时序数据库InfluxDB,用于图表展现;监控原始数据写入到HBase,用于通过聚合数据钻取到原始数据;(6)数据展现:通过Grafana展现进行聚合计算后的监控数据,通过提供的钻取功能,从HBase中联查到原始的监控数据。上述方案中,所述步骤(2)中数据计算包括如下四种聚合维度计算方式:a、全局维度计算同一监控指标同一时间窗口内的全部数据,得到这些监控数据的最大值、最小值、平均值、最后值、求和值以及数据个数;b、集群维度对同一监控指标同一时间窗口内的监控数据,按集群维度进行分组,得到每个集群维度监控数据的最大值、最小值、平均值、最后值、求和值以及数据个数;c、机器维度对同一监控指标同一时间窗口内的监控数据,按机器维度进行分组,得到每个机器维度监控数据的最大值、最小值、平均值、最后值、求和值以及数据个数;d、自定义维度对同一监控指标同一时间窗口内的监控数据,按每一个自定义维度进行分组,得到每个自定义维度监控数据的最大值、最小值、平均值、最后值、求和值以及数据个数。通过上述技术方案,本专利技术提供的处理监控大数据的实时流计算监控系统及方法具有以下优点:1)用于数据采集的的监控Agent可以通过主动上报和主动收集的方式采集监控数据,监控Agent可以进行自监控。2)用于数据计算的高并发流计算引擎Flink基于监控数据的采集时间进行聚合计算,聚合计算时的维度有全局维度、集群维度、机器维度以及自定义维度;3)数据展现的图表展现的是进行聚合计算后的监控数据,可以通过钻取方式联查到监控原始数据,聚合数据存储在时序数据库InfluxDB中,原始数据本文档来自技高网
...

【技术保护点】
1.一种处理监控大数据的实时流计算监控系统,其特征在于,包括如下单元:数据采集单元,采用监控Agent,通过主动上报或主动收集的方式获得对应机器上的监控原始数据;数据缓存单元,包括用于存储监控Agent收集到的监控原始数据和存储聚合计算后的监控数据的高性能消息队列Kafka;数据计算单元,基于高并发流计算引擎Flink,对原始监控数据进行聚合计算,同时对监控数据划分时间窗口,在每个计算窗口内,按照监控指标进行分组,根据监控数据自身携带的数据采集时间进行聚合计算,处理乱序数据以及延迟到达数据,聚合计算完的监控数据被发送到高性能消息队列Kafka中做暂时缓存;监控状态管理服务单元,用于监控数据采集单元和数据计算单元的运行状态;数据存储单元,包括用于存储聚合计算后的监控数据的时序数据库InfluxDB,和用于存储监控原始数据的HBase;数据展现单元,通过Grafana展现进行聚合计算后的监控数据,并且通过钻取功能,从HBase中联查到原始的监控数据。

【技术特征摘要】
1.一种处理监控大数据的实时流计算监控系统,其特征在于,包括如下单元:数据采集单元,采用监控Agent,通过主动上报或主动收集的方式获得对应机器上的监控原始数据;数据缓存单元,包括用于存储监控Agent收集到的监控原始数据和存储聚合计算后的监控数据的高性能消息队列Kafka;数据计算单元,基于高并发流计算引擎Flink,对原始监控数据进行聚合计算,同时对监控数据划分时间窗口,在每个计算窗口内,按照监控指标进行分组,根据监控数据自身携带的数据采集时间进行聚合计算,处理乱序数据以及延迟到达数据,聚合计算完的监控数据被发送到高性能消息队列Kafka中做暂时缓存;监控状态管理服务单元,用于监控数据采集单元和数据计算单元的运行状态;数据存储单元,包括用于存储聚合计算后的监控数据的时序数据库InfluxDB,和用于存储监控原始数据的HBase;数据展现单元,通过Grafana展现进行聚合计算后的监控数据,并且通过钻取功能,从HBase中联查到原始的监控数据。2.一种处理监控大数据的实时流计算监控方法,采用如权利要求1所述的一种处理监控大数据的实时流计算监控系统,其特征在于,包括如下步骤:(1)数据采集:数据采集单元利用监控Agent,通过主动上报或主动收集的方式获得对应机器上的监控原始数据,并且定时调用监控状态管理服务单元,实现对监控Agent状态的实时自监控;(2)数据缓存:监控Agent收集到监控原始数据后,在本地做短时间的内存缓存,然后批量将监控原始数据发送到高性能消息队列Kafka,作为所有分布式监控大数据的集中数据缓存;(3)数据计算:通过高并发流计算引擎Flink,从高性能消息队列Kafka中实时拉取...

【专利技术属性】
技术研发人员:刘桂海陈忠强黄伟鞠强魏亮周国庆
申请(专利权)人:青岛特锐德电气股份有限公司青岛特来电新能源有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1