一种基于时间序列数据库InfluxDB的监控数据存储方法技术

技术编号:13677425 阅读:167 留言:0更新日期:2016-09-08 04:03
本发明专利技术涉及计算集群中监控数据的存储和使用,特别涉及一种基于时间序列数据库InfluxDB的监控数据存储方法。本发明专利技术首先在集群中的各机器上安装监控数据采集代理程序,通过监控数据采集代理程序,将采集到的监控数据通过InfluxDB API存储到InfluxDB数据库中,监控数据按照时间序列存储在InfluxDB数据库中,使用Continuous Query数据处理方法对所述监控数据进行压缩整合,并分区存储;本发明专利技术通过在InfluxDB数据库中建立数据仓库,并使用InfluxDB数据库在所述数据仓库中创建三个存储区域,使用Continuous Query数据处理方法按照需求分别将监控数据存储在各自的存储区域。因此本发明专利技术提供了一种存储效率高、成本低廉的存储方法,而且本发明专利技术可以处理具备明显的时间序列特征、数据量巨大的计算集群监控数据。

【技术实现步骤摘要】

本专利技术涉及计算集群中监控数据的存储和使用,特别涉及一种基于时间序列数据库InfluxDB的监控数据存储方法
技术介绍
随着云计算的技术的飞速发展,计算资源的分布越来越集中,计算集群的规模也越来越大。为了保证大规模集群的可靠、稳定、高效运行,就要求我们对计算集群进行实时高效、准确可靠的监控。由于这些由机器采集的数据数量极其巨大,同时具有很明显的时间序列的特征,传统的关系型数据库处理起来已经力不从心,且成本高昂。如何高效廉价的存储、处理这些监控数据成为了当务之急。
技术实现思路
本专利技术为了克服上述现有技术的不足,提供了一种基于时间序列数据库InfluxDB的监控数据存储方法。为实现上述目的,本专利技术采用了以下技术措施:一种基于时间序列数据库InfluxDB的监控数据存储方法,包括以下步骤:S1、在集群中的各机器上安装监控数据采集代理程序,用于采集机器的上各项监控数据;S2、通过所述监控数据采集代理程序,将采集到的监控数据通过InfluxDB API存储到InfluxDB数据库中;S3、所述监控数据按照时间序列存储在InfluxDB数据库中;S4、使用Continuous Query数据处理方法对所述监控数据进行压缩整合,并分区存储;S5、在应用中使用所述监控数据。步骤S4中的分区存储具体步骤包括:S41、在所述InfluxDB数据库中建立数据仓库;S42、使用所述InfluxDB数据库在所述数据仓库中创建三个存储区域,分别为永久存储区、一年存储区、一个月存储区;S43、使用Continuous Query数据处理方法按照需求分别将监控数据存储在各自的存储区域。优选的,采集到的监控数据通过InfluxDB API的HTTP RESTful接口存储到InfluxDB数据库中。优选的,所述一个月存储区用于存储所述监控数据采集代理程序中所采集的原始数据。优选的,所述一年存储区用于存储在时间维度上对所述原始数据进行一次压缩的数据。优选的,所述永久存储区用于存储在时间维度上对经过一次压缩过的所述数据再做进一步压缩的数据。进一步的,所述监控数据包括CPU利用率、内存利用率、内存使用大小、网络接口实时流量、硬盘使用空间、交换分区使用空间。本专利技术的有益效果在于:1)、本专利技术通过在InfluxDB数据库中建立数据仓库,并使用InfluxDB数据库在所述数据仓库中创建三个存储区域,分别为永久存储区、一年存储区、一个月存储区,并使用Continuous Query数据处理方法按照需求分别将监控数据存储在各自的存储区域,由于Continuous Query数据处理方法与分区域存储配合,因此在进行连续查询时具有很高的实时性,本专利技术提供了一种存储效率高、成本低廉的存储方法,而且本专利技术可以处理具备明显的时间序列特征、数据量巨大的计算集群监控数据。2)、采集到的监控数据通过InfluxDB API的HTTP RESTful接口存储到InfluxDB数据库中,使数据的存储具备简单、易于实现、可移植性好的特点。附图说明图1为本专利技术的监控数据采集的流程图;图2为本专利技术的系统部署架构图;图3为本专利技术的监控数据存储结构图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。一种基于时间序列数据库InfluxDB的监控数据存储方法,包括以下步骤:S1、在集群中的各机器上安装监控数据采集代理程序,用于采集机器的上各项监控数据;S2、通过所述监控数据采集代理程序,将采集到的监控数据通过InfluxDB API存储到InfluxDB数据库中;S3、所述监控数据按照时间序列存储在InfluxDB数据库中;S4、使用Continuous Query数据处理方法对所述监控数据进行压缩整合,并分区存储;S5、在应用中使用所述监控数据。表1:如图1所示,通过安装在集群中各机器上的监控数据采集代理程序,将主机上的各种有价值数据,如CPU利用率、内存利用率、内存使用大小、网络接口实时流量、硬盘使用空间、交换分区使用空间等,按照可配置的时间间隔,时间间隔取1s进行采集,在添加上主机的唯一标示和时间戳之后,将采集到的监控数据通过InfluxDB API存储进InfluxDB数据库的realtime表中,完成了数据的采集工作。如图2所示,监控数据采集代理程序部署在计算集群中每一台机器上,所述监控数据采集代理程序定时采集监控数据,并将所述监控数据存储至InfluxDB数据库中,InfluxDB数据库负责存储数据,并对数据进行相应的处理。所述InfluxDB数据库是一个分布式系统,其分布式系统的特性由其自身进行维护。如图3所示,在所述InfluxDB数据库中建立数据仓库,所述数据仓库存在3种不同策略的数据存储区,分别为:存入的数据只保留1个月,超期后自动删除,即TTL=1M;存入的数据只保留1年,超期后自动删除,即TTL=1y;存入的数据永久保留,即TTL=inf。以上三种存储区分别用来存储不同时间维度的数据,分别为:TTL=1M的存储区用来存储监控数据采集代理程序中采集到的原始监控数据,即时间间隔为1秒,这些监控数据量巨大、而且会频繁使用,同时对监控数据精度要求也很高;TTL=1y的存储区用来存储在时间维度上对所述原始数据进行一次压缩的数据,即时间间隔为10秒,这些数据的数据量适中,偶尔会使用到,对数据的精度要求会适当下降;TTL=inf的存储区用于存储在时间维度上对经过一次压缩过的所述数据再做进一步压缩的数据,即时间间隔为5分钟,这些数据的数据量最少,极少会用到,对数据的精度要求最小。上述存储策略在InfluxDB数据库中的实现方法如表2所示,表2中的monitoring即为数据仓库。表2:DatabaseNameSeries to matchRetention PolicyShard Durationmonitoringarchive_infinf_.*inf1ymonitoringarchive_1y1y_.*1y1Mmonitoringarchive_1M.*1M7d使用InfluxDB数据库创建三个存储区域,分别为archive_inf、archive_1y、archive_1M;archive_inf存储区中存储以inf开头的表,此存储区中的数据得以永久保存,并将每一年存储在一个数据块中;archive_1y存储区中存储以1y开头的表,此存储区中的数据的存储时间为一年,并将每个月的数据存储在一个数据块中;archive_1M存储区中存储其他所有要存储到该数据仓库中的表,此存储区中的数据的存储时间为一个月,并将每周的数据存储在一个数据块中。如图1所示,通过监控数据采集流程和数据存储结构,当数据采集代理程序采集到数据后,直接将其通过InfluxDB API存储至archive_1M存储区域的realtime表中,因此,realtime表中的数据将只存储1个月,过期后自动删除。同时,在系统中创建两个Continuous Query,分别对rea本文档来自技高网...

【技术保护点】
一种基于时间序列数据库InfluxDB的监控数据存储方法,其特征在于,包括以下步骤:S1、在集群中的各机器上安装监控数据采集代理程序,用于采集机器的上各项监控数据;S2、通过所述监控数据采集代理程序,将采集到的监控数据通过InfluxDB API存储到InfluxDB数据库中;S3、所述监控数据按照时间序列存储在InfluxDB数据库中;S4、使用Continuous Query数据处理方法对所述监控数据进行压缩整合,并分区存储;S5、在应用中使用所述监控数据。

【技术特征摘要】
1.一种基于时间序列数据库InfluxDB的监控数据存储方法,其特征在于,包括以下步骤:S1、在集群中的各机器上安装监控数据采集代理程序,用于采集机器的上各项监控数据;S2、通过所述监控数据采集代理程序,将采集到的监控数据通过InfluxDB API存储到InfluxDB数据库中;S3、所述监控数据按照时间序列存储在InfluxDB数据库中;S4、使用Continuous Query数据处理方法对所述监控数据进行压缩整合,并分区存储;S5、在应用中使用所述监控数据。2.如权利要求1所述的一种基于时间序列数据库InfluxDB的监控数据存储方法,其特征在于,步骤S4中的分区存储具体步骤包括:S41、在所述InfluxDB数据库中建立数据仓库;S42、使用所述InfluxDB数据库在所述数据仓库中创建三个存储区域,分别为永久存储区、一年存储区、一个月存储区;S43、使用Continuous Query数据处理方法按照需求分别将监控数据存储在各自的存储区域。3.如权利要求1所述的一...

【专利技术属性】
技术研发人员:刘春珲周春寅张跃
申请(专利权)人:安徽四创电子股份有限公司
类型:发明
国别省市:安徽;34

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

1