一种Redis多实例的监控系统及方法与流程

文档序号:27052914发布日期:2021-10-24 08:01阅读:134来源:国知局
一种Redis多实例的监控系统及方法与流程
一种redis多实例的监控系统及方法
技术领域
1.本发明涉及集群运行状态监控技术领域,尤指一种redis多实例的监控系统及方法。


背景技术:

2.目前监控系统多采用基于nagios或zabbix框架的技术架构,该些技术框架往往存在配置复杂,弹性差,效率低等问题;例如,nagios:存在无自发现功能,需频繁修改配置文件;配置局限于终端,扩展性差;性能指标处理性能低;无历史数据,难追查故障等问题。zabbix:存在明显性能瓶颈;成本高,需通过增加proxy解决数据库写入瓶颈问题,效率低;使用需要二次开发,增加人员成本,降低项目实施速度,内置housekeeping在执行过程中会对数据库持续产生增加压力。
3.综上所述,亟需一种可以克服上述缺陷的redis多实例监控技术方案,解决现有系统存在的扩展性差,性能低,难追溯历史数据,存在性能瓶颈,使用成本高,无可视化监控界面等技术问题。


技术实现要素:

4.为解决现有技术存在的问题,本发明提出了一种redis多实例的监控系统及方法。本发明可以有效降低监控体系复杂度,通过配置采集模式,周期性抓取组件状态,有效提高系统水平扩展性;结合本地数据库存储方案,可以对历史数据溯源分析;使用可视化监控工具,实时监控redis集群的实例的状态。
5.在本发明实施例的第一方面,提出了一种redis多实例的监控系统,该系统包括:状态采集模块、采集模式处理模块、监控核心模块、数据存储模块、告警管理模块、服务发现模块及可视化模块;其中,
6.所述状态采集模块,集成在redis实例中,用于采集redis实例的性能指标;其中,redis容器包含多个redis实例;
7.所述采集模式处理模块,用于配置采集模式,根据不同监控场景调节状态采集模块的采集模式;
8.所述监控核心模块,用于调取性能指标,并根据配置的监控规则进行状态分析及告警分析,生成状态分析结果及告警信息;
9.所述数据存储模块,用于持久化数据,将性能指标、状态分析结果及告警信息保存在数据库;
10.所述告警管理模块,用于获取告警信息,根据所述告警信息生成状态调整指令,驱动服务发现模块对redis容器中发生异常的节点进行处理;
11.所述服务发现模块,用于监控redis实例所在的容器环境,对redis容器的节点进行运维管理;
12.所述可视化模块,用于接收状态分析结果,根据所述状态分析结果生成监控数据
报表,并通过可视化界面进行显示。
13.进一步的,所述性能指标包括:cpu、内存、磁盘及i/o接口的运行参数。
14.进一步的,所述状态采集模块的架构采用prometheus监控服务器,设置node exporter组件进行redis实例的性能指标的采集,将采集到的性能指标转换为http请求发送至监控核心模块。
15.进一步的,所述采集模式处理模块内置推/拉双模式,根据不同监控场景,驱动状态采集模块进行采集模式切换。
16.进一步的,所述监控核心模块包括:定时推取单元、存储处理单元及监控处理单元;其中,
17.定时推取单元,用于根据设置的定时器模式,定时获取redis实例的性能指标;
18.存储处理单元,用于调取数据存储模块的数据库存储性能指标,并将性能指标持久化到本地,向监控处理单元提供性能指标;
19.监控处理单元,用于配置不同场景下的监控阀值,按照监控阈值对性能指标进行状态分析及告警分析,生成状态分析结果及告警信息。
20.进一步的,所述数据存储模块具体用于:
21.定期清理和整理数据,将性能指标、状态分析结果及告警信息按照时序保存在数据库;
22.设置数据调取接口,根据其它模块的查询指令或调取指令,进行数据查询或数据调取。
23.进一步的,所述告警管理模块具体用于:
24.在获取到告警信息后,根据所述告警信息将状态序列转换成状态调整指令。
25.进一步的,所述服务发现模块具体用于:
26.基于kubernetes框架结合自动发现组件,进行容器状态的监控与运维管理。
27.进一步的,所述所述可视化模块通过grafana数据可视化工具搭建,通过可视化界面展示查询结果。
28.在本发明实施例的第二方面,提出了一种redis多实例的监控方法,所述redis多实例的监控基于状态采集模块、采集模式处理模块、监控核心模块、数据存储模块、告警管理模块、服务发现模块及可视化模块实现;其中,
29.所述状态采集模块集成在redis实例中,采集redis实例的性能指标;其中,redis容器包含多个redis实例;
30.所述采集模式处理模块配置采集模式,根据不同监控场景调节状态采集模块的采集模式;
31.所述监控核心模块调取性能指标,并根据配置的监控规则进行状态分析及告警分析,生成状态分析结果及告警信息;
32.所述数据存储模块持久化数据,将性能指标、状态分析结果及告警信息保存在数据库;
33.所述告警管理模块获取告警信息,根据所述告警信息生成状态调整指令,驱动服务发现模块对redis容器中发生异常的节点进行处理;
34.所述服务发现模块监控redis实例所在的容器环境,对redis容器的节点进行运维
管理;
35.所述可视化模块接收状态分析结果,根据所述状态分析结果生成监控数据报表,并通过可视化界面进行显示。
36.在本发明实施例的第三方面,提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现redis多实例的监控方法。
37.在本发明实施例的第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现redis多实例的监控方法。
38.本发明提出的redis多实例的监控系统及方法可以将系统解耦为多个主要组件,有效降低监控体系复杂度,通过设置采集模式,周期性抓取组件状态,有效提高系统水平扩展性;利用可视化界面,简洁直观的显示显示监控状态;构建实现了基于prometheus技术框架下的redis实例全流程自动化监控方案,使得项目整体开发、测试、运维各阶段效率大幅度提升,有效降低各产品耦合性,提高敏捷效率,降低维护成本及学习成本。
附图说明
39.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
40.图1是本发明一实施例的redis多实例的监控系统架构示意图。
41.图2是本发明一实施例的监控核心模块架构示意图。
42.图3是本发明一具体实施例的redis多实例的监控系统架构关系示意图。
43.图4是本发明一实施例的redis多实例的监控方法流程示意图。
44.图5是本发明一实施例的计算机设备结构示意图。
具体实施方式
45.下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
46.本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
47.根据本发明的实施方式,提出了一种redis多实例的监控系统及方法,涉及集群运行状态监控技术领域。本发明可以克服现有redis多实例监控系统下,存在的扩展性差,性能低,难追溯历史数据,存在性能瓶颈,使用成本高,无可视化监控界面等技术问题。本发明通过搭建基于prometheus技术框架,整合使用grafana可视化工具的整体架构,对整体系统解耦为七大主要组件,有效降低监控体系复杂度;通过pull/push双模式支持,基于http协议周期性抓取组件状态,有效提高系统水平扩展性;结合本地时序数据库存储方案,解决过
去监控无法对历史数据溯源分析的限制;整合使用grafana监控工具,为redis集群实例状态监控,提供简洁直观界面显示功能,从而解决了过去系统存在的难扩展,难操作,存在性能瓶颈等问题,构建实现了基于prometheus技术框架下的redis实例全流程自动化监控系统,使得项目整体开发、测试、运维各阶段效率大幅度提升,有效降低各产品耦合性,提高敏捷效率,降低维护成本及学习成本。
48.在本实施例中,需要说明的术语有:
49.redis:redis是可基于内存,支持持久化的日志型、key

value数据库,并提供多种语言的api。
50.redis多实例:在同一个redis集群环境运行多个redis实例,把redis部署在不同的端口中。
51.node exporter:部署在实例上,主要用于暴露metrics给prometheus,其中metrics包括:cpu的负载,内存的使用情况,网络等。
52.kubernetes:简称k8s,是为容器服务而生的一个可移植容器的编排管理工具,当前k8s已经主导了云业务流程,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。
53.prometheus:开源的监控告警系统,prometheus存储的是时序数据,即按相同时序(相同名称和标签),以时间维度存储连续的数据的集合。时序(time series)是由指标(metrics)以及一组key

value标签定义的,具有相同的名字以及标签属于相同时序。
54.grafana:前端展示工具,将数据以非常美观直接的图形展示出来。
55.下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
56.图1是本发明一实施例的redis多实例的监控系统架构示意图。如图1所示,该系统包括:状态采集模块110、采集模式处理模块120、监控核心模块130、数据存储模块140、告警管理模块150、服务发现模块160及可视化模块170;其中,
57.所述状态采集模块110,集成在redis实例中,用于采集redis实例的性能指标;其中,redis容器包含多个redis实例;
58.所述采集模式处理模块120,用于配置采集模式,根据不同监控场景调节状态采集模块110的采集模式;
59.所述监控核心模块130,用于调取性能指标,并根据配置的监控规则进行状态分析及告警分析,生成状态分析结果及告警信息;
60.所述数据存储模块140,用于持久化数据,将性能指标、状态分析结果及告警信息保存在数据库;
61.所述告警管理模块150,用于获取告警信息,根据所述告警信息生成状态调整指令,驱动服务发现模块160对redis容器中发生异常的节点进行处理;
62.所述服务发现模块160,用于监控redis实例所在的容器环境,对redis容器的节点进行运维管理;
63.所述可视化模块170,用于接收状态分析结果,根据所述状态分析结果生成监控数据报表,并通过可视化界面进行显示。
64.为了对上述redis多实例的监控系统进行更为清楚的解释,下面结合系统中的每一模块来进行详细说明。
65.状态采集模块110:
66.采用prometheus监控服务器,设置node exporter组件进行redis实例的性能指标的采集,将采集到的性能指标转换为http请求发送至监控核心模块。
67.其中,性能指标包括:cpu、内存、磁盘及i/o接口的运行参数。
68.采集模式处理模块120:
69.内置推/拉双模式,根据不同监控场景,驱动状态采集模块进行采集模式切换。
70.监控核心模块130:
71.参考图2,为本发明一实施例的监控核心模块架构示意图。如图2所示,监控核心模块130包括:定时推取单元131、存储处理单元132及监控处理单元133;其中,
72.定时推取单元131,用于根据设置的定时器模式,定时获取redis实例的性能指标;
73.存储处理单元132,用于调取数据存储模块的数据库存储性能指标,并将性能指标持久化到本地,向监控处理单元提供性能指标;
74.监控处理单元133,用于配置不同场景下的监控阀值,按照监控阈值对性能指标进行状态分析及告警分析,生成状态分析结果及告警信息。
75.数据存储模块140:
76.定期清理和整理数据,将性能指标、状态分析结果及告警信息按照时序保存在数据库;
77.设置数据调取接口(rest api),根据其它模块的查询指令或调取指令,进行数据查询或数据调取。
78.告警管理模块150:
79.在获取到告警信息后,根据所述告警信息将状态序列转换成状态调整指令。
80.服务发现模块160:
81.基于kubernetes框架结合自动发现组件,进行容器状态的监控与运维管理。
82.可视化模块170:
83.通过grafana数据可视化工具搭建,通过可视化界面展示查询结果。
84.应当注意,尽管在上文详细描述中提及了redis多实例的监控系统的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
85.为了对上述redis多实例的监控系统进行更为清楚的解释,下面结合一个具体的实施例来进行说明。
86.参考图3,为本发明一具体实施例的redis多实例的监控系统架构关系示意图。
87.如图3所示,具体架构包括:
88.状态采集模块:
89.主要集成在redis实例中,负责采集redis实例性能指标,包括cpu、内存、磁盘、i/o等信息,将指标参数转换为http请求,并与采集模式处理模块通讯,可以切换推/拉双模式。
90.采集模式处理模块:
91.内置推/拉双模式,根据不同监控场景,直接驱动状态采集模块进行采集模式的切换。
92.支持定时拉取模式:
93.从状态采集模块直接拉取状态数据;同样支持通路模式,状态采集器主动向监控核心模块推送各个redis实例的状态,通过采集模式处理模块向监控中心发送状态数据矩阵。
94.服务发现模块:
95.该模块基于kubernetes框架结合file_sd文件进行实现,负责监控redis容器环境与运维管理,纵向管理容器可用性与扩展性,该模块与核心监控模块通讯,向其目前可用在运行redis实例所在容器数据。
96.监控核心模块:
97.监控系统中最重要的功能组件,具有以下三个单元:
98.定时推取单元,负责与采集模式处理模块与服务发现模块进行通信,获取可用容器中redis实例实时状态数据,并调取存储处理单元完成数据持久化。
99.存储处理单元,负责将状态数据持久化到本地,调取数据存储模块api进行数据读写,并配合监控处理单元完成数据调用分析。
100.监控处理单元,通过存储处理单元调取实时状态数据,运行已定义好的alert.rules(告警规则),记录新的时间序列并向告警管理模块推送告警。
101.数据存储模块:
102.负责持久化数据,通过预先配置规则清理和整理数据,把得到的结果放进时序数据库里;
103.对外提供api接口,供其他组件调用查询数据。
104.告警管理模块:
105.该模块接收监控处理模块发送的告警指令,并依据接收到的状态序列,转换成状态调整指令,发送到服务发现模块,对容器节点异常及时处理。
106.可视化模块:
107.接收监控数据生成报表,支持多种类型报表可视化展示;支持监控人员进行多维度数据查询,及时发现系统异常与性能瓶颈。
108.可以使用grafana工具实现,为监控系统提供了友好简洁界面,提升监控人员操作效率,有效提升运维效率。
109.本发明的redis多实例的监控基于prometheus技术框架,整合使用grafana可视化工具,搭建针对redis多实例状态实施监控系统。基本原理是通过http周期性抓取被监控组件的状态,任意组件只要提供对应的http接口并且符合数据格式规则,就可以接入本监控系统。
110.相较于现有技术,至少存在以下优点:
111.本发明中监控系统核心组件落地成一个独立的二进制文件,可直接在本地工作,同样兼容云原生容器环境;
112.采用pull(拉)的方式获取数据,不仅降低客户端的复杂度,客户端只需要采集数据,无需了解服务端情况,也让服务端可以更加方便地水平扩展,具备强扩展性,解决原有监控系统性能瓶颈、弹性低等问题;
113.结合使用本地存储方案,通过内置整理与清理规则,将历史数据持久化到时序数据库中,解决过去监控无法对历史数据溯源分析的限制;
114.整合使用grafana监控工具,为redis集群实例状态监控,提供简洁直观界面显示功能,配合运维人员配置数据处理模式,实时展示各实例状态并完成分析处理,提供警告提醒、报表生成等功能,解决过去监控系统数据分散,无可视化界面,强依赖于人工排查日志等问题。
115.在介绍了本发明示例性实施方式的系统之后,接下来,参考图4对本发明示例性实施方式的redis多实例的监控方法进行介绍。
116.redis多实例的监控方法的实施可以参见上述方法的实施,重复之处不再赘述。
117.基于同一发明构思,本发明还提出了一种redis多实例的监控方法,所述redis多实例的监控基于状态采集模块、采集模式处理模块、监控核心模块、数据存储模块、告警管理模块、服务发现模块及可视化模块实现;其中,如图4所示,该方法包括:
118.步骤s1,所述状态采集模块集成在redis实例中,采集redis实例的性能指标;其中,redis容器包含多个redis实例;
119.步骤s2,所述采集模式处理模块配置采集模式,根据不同监控场景调节状态采集模块的采集模式;
120.步骤s3,所述监控核心模块调取性能指标,并根据配置的监控规则进行状态分析及告警分析,生成状态分析结果及告警信息;
121.步骤s4,所述数据存储模块持久化数据,将性能指标、状态分析结果及告警信息保存在数据库;
122.步骤s5,所述告警管理模块获取告警信息,根据所述告警信息生成状态调整指令,驱动服务发现模块对redis容器中发生异常的节点进行处理;
123.步骤s6,所述服务发现模块监控redis实例所在的容器环境,对redis容器的节点进行运维管理;
124.步骤s7,所述可视化模块接收状态分析结果,根据所述状态分析结果生成监控数据报表,并通过可视化界面进行显示。
125.需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
126.基于前述发明构思,如图5所示,本发明还提出了一种计算机设备500,包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,所述处理器520执行所述计算机程序530时实现前述redis多实例的监控方法。
127.基于前述发明构思,本发明提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述redis多实例的监控方法。
128.本发明提出的redis多实例的监控系统及方法可以将系统解耦为多个主要组件,有效降低监控体系复杂度,通过设置采集模式,周期性抓取组件状态,有效提高系统水平扩展性;利用可视化界面,简洁直观的显示显示监控状态;构建实现了基于prometheus技术框架下的redis实例全流程自动化监控方案,使得项目整体开发、测试、运维各阶段效率大幅度提升,有效降低各产品耦合性,提高敏捷效率,降低维护成本及学习成本。
129.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
130.本发明是参照根据本发明实施例的方法和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
131.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
132.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
133.最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1