一种Kafka监控方法及系统、计算机设备及介质与流程

文档序号:31997416发布日期:2022-11-02 08:54阅读:109来源:国知局
一种Kafka监控方法及系统、计算机设备及介质与流程
一种kafka监控方法及系统、计算机设备及介质
技术领域
1.本技术涉及监控技术领域,更具体地,本技术涉及一种kafka监控方法及系统、计算机设备及介质。


背景技术:

2.现有技术cn107239380a公开了一种基于zabbix的消息队列监控方法,包括:在zabbix平台上创建消息队列主机信息,作为某个消息队列服务的唯一标识。同时,加载消息队列的监控模板。针对消息队列服务,按照所述消息队列主机信息,创建消息队列配置,用于采集监控数据。根据消息队列配置,针对每个消息队列主机,调用消息队列的接口,获取当前的状态信息,保存到监控数据文件里。根据消息队列配置,针对每个消息队列主机,调用zabbix服务端接口,发送监控数据文件到消息队列主机对应的zabbix服务端。针对消息队列主机,在zabbix服务端里设置相应的短信和邮件接收人信息,在消息队列服务发生故障时通知管理人员。该专利申请所公开的方案可以实现大规模消息队列集群的监控,使用方便,维护成本低,但是需要基于zabbix告警平台,消息队列主机、队列信息的采集,告警规则的配置和告警通知等都依赖于zabbix平台,不适用于其它没有使用zabbix的场景。
3.现有技术cn109766236a公开了kafka消息队列数监控方法,包括:当接收到kafka消息队列数监控指令时,定义指定全局变量;获取kafka的集群名称;引用所述指定全局变量,根据所述集群名称执行消费者信息脚本,得到kafka初始运行数据;对所述kafka初始运行数据进行中文格式化,得到kafka运行数据;输出所述kafka运行数据;从所述kafka运行数据中调取当前消息队列数;当所述当前消息队列数大于或者等于第一预设值时,发出警报。
4.现有技术cn112965875a公开了一种消息队列的监控方法及装置。其中,该方法包括:获取服务器上当前运行的所有消息队列;分别确定每个消息队列中堆积的消息的数量,其中,消息为两台计算机之间传输的数据单位;依据每个消息队列中堆积的消息的数量监控消息队列的运行状态。
5.然而,在现有技术cn109766236a及cn112965875a所公开的方案中,告警规则过于简单,仅仅对消息队列中积压的消息数超过阈值这一种场景进行告警,而在现实中的场景要复杂的多,并不能满足实际需求。


技术实现要素:

6.本发明的目的在于提供一种kafka监控方法及系统、计算机设备及介质,实现基于指标项的告警规则的灵活配置,实现全队列、乃至各队列的多层次、多维度的监控;不依赖特定的告警平台,提供一种通用的kafka监控解决方案,也能够对其他消息队列进行监控。
7.为了达到上述目的中至少一个,本技术采用下述技术方案:
8.本技术第一方面提供一种kafka监控方法,包括:
9.采集待监控kafka集群的集群数据,基于配置生成监控指标;
10.获取待监控kafka集群的监控指标数据;
11.将所述监控指标数据与预先配置的告警规则进行匹配,得到匹配信息;
12.基于所述匹配信息发送告警通知。
13.在一个具体实施例中,所述方法还包括:
14.对所述待监控kafka集群进行查询、发送、配置修改、添加分区、调整分区、删除topic和topic权限分配的管理操作;
15.基于所述监控指标数据生成所述待监控kafka集群的消息的流入量和流出量、消费者的落后量和消费速率;
16.显示所述所述待监控kafka集群的消息的流入量和流出量、消费者的落后量和消费速率。
17.在一个具体实施例中,所述采集待监控kafka集群的集群数据,基于配置生成监控指标还包括:
18.各待监控kafka集群向注册中心注册待监控kafka集群的集群数据;
19.指标导出器根据所述待监控kafka集群的集群数据动态生成所述监控指标;
20.指标采集器拉取所述指标导出器动态生成的所述监控指标。
21.在一个具体实施例中,基于所述匹配信息发送告警通知还包括:
22.当所述匹配信息为成功时,通过消息通知平台为用户发送告警通知。
23.本技术第二方面提供一种kafka监控系统,包括:
24.指标采集模块,用于采集待监控kafka集群的集群数据,基于配置生成监控指标;
25.告警规则配置模块,用于配置告警规则;
26.监控中心模块,用于获取待监控kafka集群的监控指标数据,并将所述监控指标数据与预先配置的告警规则进行匹配,得到匹配信息;
27.告警模块,用于基于所述匹配信息发送告警通知。
28.在一个具体实施例中,所述系统还包括:
29.管理模块,用于对所述待监控kafka集群进行查询、发送、配置修改、添加分区、调整分区、删除topic和topic权限分配的管理操作;
30.显示模块,用于显示所述待监控kafka集群的消息的流入量和流出量、消费者的落后量和消费速率;
31.所述监控中心模块,还用于基于所述监控指标数据生成所述待监控kafka集群的消息的流入量和流出量、消费者的落后量和消费速率;
32.在一个具体实施例中,所述指标采集模块还包括:
33.注册中心,用于注册待监控kafka集群的集群数据;
34.指标导出器,用于根据所述待监控kafka集群的集群数据动态生成所述监控指标;
35.指标采集器,用于拉取所述指标导出器动态生成的所述监控指标。
36.在一个具体实施例中,所述监控中心模块还包括采集模块、数据库模块、匹配模块和监控信息生成模块;
37.所述采集模块用于获取待监控kafka集群的监控指标数据;
38.所述数据库模块用于存储所述监控指标数据;
39.所述匹配模块用于将所述监控指标数据与预先配置的告警规则进行匹配,得到匹
配信息;
40.所述监控信息生成模块用于基于所述监控指标数据生成所述待监控kafka集群的消息的流入量和流出量、消费者的落后量和消费速率。
41.申请第三方面还提供了一种计算机设备,包括处理器及存储有程序的存储器,所述处理器执行所述程序时实现如本技术第一方面提供的方法。
42.本技术第四方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本技术第一方面提供的方法。
43.本技术的有益效果如下:
44.针对目前现有技术中存在的问题,本技术提供一种kafka监控方法及系统,通过指标采集模块生成监控指标,进而根据监控指标数据配置告警规则,实现对复杂场景的告警通知。在本发明的优选实施例中,用户可以通过管理模块对kafka集群进行管理,进而使指标采集模块生成用户需求的指标,配置用户需求的告警规则,实现了基于指标项的告警规则的灵活配置,并且通过管理模块对kafka集群进行整体管理,通过监控中心模块对kafka集群单个主题方面进行监控,实现了全队列、乃至各队列的多层次、多维度的监控;另外,本技术不依赖特定的告警平台,是一种通用的kafka监控解决方案,在本发明的另一个优选实施例中,本技术通过指标导出器、指标采集器、告警规则配置与匹配、告警通知等各组件分工明确、协同工作,也能够对其他消息队列进行监控。
附图说明
45.下面结合附图对本发明的具体实施方式作进一步详细的说明。
46.图1示出本技术的一个实施例中的一种kafka监控方法流程图。
47.图2示出本技术的一个实施例中的一种kafka监控系统模块图。
48.图3示出本技术的一个实施例中的一种kafka监控系统详细模块图。
49.图4示出本技术的一个实施例中的一种kafka监控系统管理模块界面图。
50.图5示出本技术的一个实施例中的一种kafka监控系统监控信息展示图。
51.图6示出适于用来实现本技术实施例的计算机设备的结构示意图。
具体实施方式
52.在下述的描述中,出于说明的目的,为了提供对一个或者多个实施方式的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施方式。
53.在本技术的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。
54.还需要说明的是,在本技术的描述中,诸如第一和第二等之类的关系术语仅仅用
来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
55.为解决现有技术中存在的问题,本技术的一个实施例提供一种kafka监控方法。
56.所述kafka消息队列数监控方法应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
57.所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personal digital assistant,pda)、游戏机、交互式网络电视(internet protocol television,iptv)、智能式穿戴式设备等。
58.所述电子设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloud computing)的由大量主机或网络服务器构成的云。
59.所述电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtual private network,vpn)等。
60.如图1所示,根据本发明一个实施例的kafka监控方法,包括:
61.s100、采集待监控kafka集群的集群数据,基于配置生成监控指标;
62.在一个具体实施例中,本技术能够对至少一个kafka集群进行监控;
63.在一个具体实施例中,所述监控指标包括网络流量、接口请求量、生产消息量、消费消息量、消息堆积量、消息滞后量等指标;
64.在一个具体实施例中,步骤s100还包括:
65.各待监控kafka集群向注册中心注册待监控kafka集群的集群数据;
66.指标导出器根据所述待监控kafka集群的集群数据动态生成所述监控指标;
67.指标采集器拉取所述指标导出器动态生成的所述监控指标;
68.在一个具体实施例中,各待监控kafka集群向注册中心注册,注册中心获取各待监控kafka集群的集群数据,所述注册中心获取各待监控kafka集群的所有集群数据,例如各实例ip、端口等;
69.由指标导出器根据所述待监控kafka集群的集群数据按照用户需求的配置动态生成用户关注的、需求的监控指标;
70.再由指标采集器对指标导出器动态生成的所述监控指标进行拉取;
71.在一个具体实施例中,先由注册中心获取各待监控kafka集群的所有集群数据,所述指标导出器能够更清楚的了解各待监控kafka集群的集群数据有哪些,更方便指标导出器根据用户需求的配置动态生成用户关注的、需求的监控指标;
72.在一个具体实施例中,所述指标导出器还用于对外提供获取监控指标数据接口;
73.s102、获取待监控kafka集群的监控指标数据;
74.在一个具体实施例中,通过指标导出器提供的对应的获取监控指标数据接口获取所述监控指标数据;
75.在一个具体实施例中,通过周期拉取的方式获取各待监控kafka集群的监控指标数据;
76.在一个具体实施例中,对所述监控指标数据进行存储,优选地,以时序数据的形式存储所述监控指标数据;
77.s104、将所述监控指标数据与预先配置的告警规则进行匹配,得到匹配信息;
78.在一个具体实施例中,所述告警规则包括:
79.消息队列中积压的消息数超过预设阈值、各分区的网络流量超过预设阈值、消息滞后量超过预设阈值、消息队列消费速率同比率下降超过预设阈值、消费消息量下降超过预设阈值、窗口时间内(例如1min或5min)净增量(入队-出队)、净增率((入队-出队)/消息量)超过预设阈值等;在其他具体实施例中,用户可以根据需要对告警规则进行预定义;
80.在一个具体实施例中,所述告警规则可以基于指标导出器生成的监控指标进行配置,并且用户可以根据需求通过待检测kafka集群数据对指标导出器生成的监控指标进行配置;
81.s106、基于所述匹配信息发送告警通知。
82.当所述监控指标数据与告警规则匹配成功时,告警模块为用户发送告警信息;
83.在一个具体实施例中,所述匹配信息为匹配成功时,即kafka出现了异常,产生告警信息,例如kafka服务异常告警、积压量告警等告警信息,所述告警信息通过与告警规则进行匹配得出,然后通过消息通知平台按预设的通知通道为用户发送告警信息,在一个具体实施例中,所述消息通知平台的通知通道为企业微信、短信或邮件等方式;
84.在一个具体实施例中,所述方法还包括:
85.s101、对所述待监控kafka集群进行查询、发送、配置修改、添加分区、调整分区、删除topic和topic权限分配等的管理操作;
86.s103、基于所述监控指标数据生成所述待监控kafka集群的监控信息,在一个具体实施例中,所述监控信息包括:消息的流入量和流出量、消费者的落后量和消费速率等信息,例如,在一个具体实施例中,落后量为正时,表示有部分消息积压;
87.s105、显示所述所述待监控kafka集群的消息的流入量和流出量、消费者的落后量和消费速率等监控信息。
88.本技术的一个实施例提供一种kafka监控系统,如图2所示,包括:
89.指标采集模块,用于采集待监控kafka集群的集群数据,基于配置生成监控指标;
90.在一个具体实施例中,所述指标采集模块还包括注册中心、指标采集器和指标导出器,如图3所示;
91.所述注册中心用于注册待监控kafka集群的集群数据;
92.所述指标导出器用于根据所述待监控kafka集群的集群数据动态生成所述监控指标;
93.所述指标采集器用于拉取所述指标导出器动态生成的所述监控指标;
94.在一个具体实施例中,所述指标导出器还用于对外提供获取监控指标数据接口;
95.告警规则配置模块,用于配置告警规则;
96.在一个具体实施例中,所述告警规则配置模块基于所述监控指标数据dui告警规则进行配置;
97.监控中心模块,用于获取待监控kafka集群的监控指标数据,并将所述监控指标数据与预先配置的告警规则进行匹配,得到匹配信息;
98.在一个具体实施例中,所述监控中心模块还包括采集模块、数据库模块、匹配模块和监控信息生成模块,如图3所示;
99.所述采集模块用于获取待监控kafka集群的监控指标数据;
100.所述数据库模块用于存储所述监控指标数据;
101.所述匹配模块用于将所述监控指标数据与预先配置的告警规则进行匹配,得到匹配信息;
102.所述监控信息生成模块用于基于所述监控指标数据生成所述待监控kafka集群的消息的流入量和流出量、消费者的落后量和消费速率等信息。
103.告警模块,用于基于所述匹配信息发送告警通知。
104.在一个具体实施例中,所述系统还包括:
105.管理模块,用于对所述待监控kafka集群进行查询、发送、配置修改、添加分区、调整分区、删除topic和topic权限分配等的管理操作,如图4中(a)和(b)所示为本技术的一个具体实施例的管理界面示意图;
106.显示模块,用于显示所述待监控kafka集群的消息的流入量和流出量、消费者的落后量和消费速率等监控信息,如图5中(a)、(b)和(c)所示为本技术一个具体实施例的显示模块显示的监控信息示意图,通过所述显示模块能够实现对监控信息的可视化,使监控信息更直观;
107.所述监控中心模块,还用于通过所述监控信息生成模块基于所述监控指标数据生成所述待监控kafka集群的消息的流入量和流出量、消费者的落后量和消费速率等信息。
108.本技术提供的一种kafka监控方法及系统,通过指标采集模块生成监控指标,进而根据监控指标数据配置告警规则,实现对复杂场景的告警通知。在本发明的优选实施例中,用户可以通过管理模块对kafka集群进行管理,进而使指标采集模块生成用户需求的指标,配置用户需求的告警规则,实现了基于指标项的告警规则的灵活配置,并且通过管理模块对kafka集群进行整体管理,通过监控中心模块对kafka集群单个主题方面进行监控,实现了全队列、乃至各队列的多层次、多维度的监控;另外,本技术不依赖特定的告警平台,是一种通用的kafka监控解决方案,在本发明的另一个优选实施例中,本技术通过指标导出器、指标采集器、告警规则配置与匹配、告警通知等各组件分工明确、协同工作,也能够对其他消息队列进行监控。
109.图6示出了本技术的另一个实施例提供的一种计算机设备的结构示意图。图6显示的计算机设备50仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
110.如图6所示,计算机设备50以通用计算设备的形式表现。计算机设备50的组件可以包括但不限于:一个或者多个处理器或者处理单元500,系统存储器516,连接不同系统组件(包括系统存储器516和处理单元500)的总线501。
111.总线501表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,
外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
112.计算机设备50典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备50访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
113.系统存储器516可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)504和/或高速缓存存储器506。计算机设备50可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统508可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线501相连。存储器516可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行实施例一的功能。
114.具有一组(至少一个)程序模块512的程序/实用工具510,可以存储在例如存储器516中,这样的程序模块512包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块512通常执行本技术所描述的实施例中的功能和/或方法。
115.计算机设备50也可以与一个或多个外部设备70(例如键盘、指向设备、显示器60等)通信,还可与一个或者多个使得用户能与该计算机设备50交互的设备通信,和/或与使得该计算机设备50能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口502进行。并且,计算机设备50还可以通过网络适配器514与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图6所示,网络适配器514通过总线501与计算机设备50的其它模块通信。应当明白,尽管图6中未示出,可以结合计算机设备50使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
116.处理器单元500通过运行存储在系统存储器516中的程序,从而执行各种功能应用以及数据处理,例如实现本技术一个实施例所提供的一种kafka监控方法。
117.本技术的另一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例一所提供的方法。
118.在实际应用中,所述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器
件使用或者与其结合使用。
119.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
120.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
121.可以以一种或多种程序设计语言或其组合来编写用于执行本技术操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
122.显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1