一种可视化的Kafka集群监控方法
技术领域
本发明涉及大数据开发技术领域,特别涉及一种可视化的Kafka集群监控方法。
背景技术
大数据时代,各行各业时时刻刻都在产生海量多样的数据,大数据已经成为行业发展新的推动力。
Kafka集群是一个分布式的、可分区的、可复制的消息系统,能够提供普通消息系统的功能。通俗地讲,Kafka是一个日志集群,各种各样的服务器将自身的日志发送到集群中进行统一汇总和存储,然后其它机器从集群中拉取消息进行分析处理,如ELT、数据挖掘等。
Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker。同时,Kafka集群将消息以topic(主题)为单位进行归纳。在大数据的处理过程中,消费 Kafka集群中的消息时,数据的变动是用户所关心的。当业务环境不复杂的前提下,用户可以使用Kafka集群提供的命令工具,配合Zookeeper客户端工具,很方便的完成工作。但是随着业务场景的复杂化,Group(类)和Topic(主题)的数量的增加,此时用户使用Kafka提供的命令工具,已预感到力不从心。这时候用户需要观察Kafka集群中消息的消费应用的详情,因而对Kafka集群的监控就变得尤为重要。
KafkaMonitor是一种Kafka的可视化管理与监控工具,为Kafka的稳定运维提供高效、可靠、稳定的保障。
KafkaManager是为了让开发者和服务工程师能够更加简单地维护Kafka集群,Yahoo 基于Web构建的一个开源管理工具。通过KafkaManager,用户能够更容易地发现集群中哪些主题或者分区分布不均匀,同时能够管理多个集群,能够更容易地检查集群的状态,能够创建主题,执行首选的副本选择,能够基于集群当前的状态生成分区分配,并基于生成的分配执行分区的重分配,此外,KafkaManager还是一个非常好的可以快速查看集群状态的工具。
Kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。
在早期,使用Kafka Monitor和Kafka Manager等监控组件监控Kafka集群。但是随着业务的快速发展,在大数据平台开启Kerberos(网络认证协议)组件后,以及互联网公司特有的一些需求,现有的开源的监控系统在功能、性能、扩展性和DEVS的使用效率方面,已经无法满足了。
目前对于Kafka集群监控技术中,监控工具KafkaWeb Console在使用一段时间后,会与Kafka生产者、消费者、Zookeeper建立大量连接,从而导致网络堵塞,因此不建议在生产环境中使用。雅虎Yahoo开源的KafkaManager偏向于Kafka集群的管理,若操作不当,容易导致集群出现故障,且没有记录Offset和Lag等信息。监控工具Kafka Offset Monitor在不启用Kerberos安全的环境中可用来进行监控,但是在启用Kerberos安全的环境下,以上三个监控工具都不能对Kafka集群进行有效监控。并且以上几种监控工具都未集成到Ambari的大数据平台中,即当用户想要监控某个Kafka集群的数据的时候,需要再单独启动一个监控工具的进程,这对于用户来说是很不方便的。
基于上述情况,本发明提出了一种可视化的Kafka集群监控方法,将该监控系统集成部署到Ambari大数据平台中,实现对于Kafka集群的有效信息的监控。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的可视化的Kafka集群监控方法。
本发明是通过如下技术方案实现的:
一种可视化的Kafka集群监控方法,其特征在于,包括以下步骤:
(1)采用springboot和Angular的前后端分离的模式,前端使用Angular框架构建一个可视化集群监控系统,后端调用API接口获取Kafka集群数据信息;
(2)前端构建的可视化集群监控系统将获取到的数据信息通过前端可视化界面的表格和曲线图展示出来;
(3)通过修改Ambari源码,将构建的可视化集群监控系统作为一个组件集成部署到Ambari大数据平台中,使用户更方便高效可视化的对Kafka集群进行监控。
所述步骤(1)中,将后端调用API接口获取的Kafka集群数据信息保存到数据库中,以备前端可视化集群监控系统调用。
所述步骤(1)中,后端实现通过调用kafka官方提供的API接口,获取Kafka集群中的Brokers信息,Topics信息,ZooKeepers信息和Consumers信息。
所述步骤(3)中,修改Ambari源码包括修改metainfo.xml文件,添加quicklinks.json 文件和kafka_webui.py文件。
修改Ambari源码时,首先在metainfo.xml文件中增加Kafka Web UI作为一个从动slave组件,即该从动slave组件是伴随kafka同时安装的。
所述quicklinks.json文件作为前端构建的可视化集群监控系统的一个快速链接,在 Ambari大数据平台界面kafka处选择快速链接登录即可进入可视化集群监控系统。
所述kafka_webui.py文件用于编写前端构建的可视化集群监控系统的安装,启动,停止和状态显示的命令和配置。
所述kafka_webui.py文件添加在路径KAFKA/0.8.1/package/scripts/下。
本发明的有益效果是:该可视化的Kafka集群监控方法,在前端构建的可视化集群监控系统,并将其集成部署到Ambari大数据平台中,用户可以方便的在大数据平台中打开该可视化的监控系统对Kafka集群进行监控,不需要单独启动监控工具,增强了Kafka 集群的功能性和对Kafka集群的监控能力。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
该可视化的Kafka集群监控方法,包括以下步骤:
(1)采用springboot和Angular的前后端分离的模式,前端使用Angular框架构建一个可视化集群监控系统,后端调用API接口获取Kafka集群数据信息;
(2)前端构建的可视化集群监控系统将获取到的数据信息通过前端可视化界面的表格和曲线图展示出来;
(3)通过修改Ambari源码,将构建的可视化集群监控系统作为一个组件集成部署到Ambari大数据平台中,使用户更方便高效可视化的对Kafka集群进行监控。
所述步骤(1)中,将后端调用API接口获取的Kafka集群数据信息保存到数据库中,以备前端可视化集群监控系统调用。
所述步骤(1)中,后端实现通过调用kafka官方提供的API接口,获取Kafka集群中的Brokers信息,Topics主题信息,Partitions分区信息,ZooKeepers信息和Consumers 消费信息。
所述ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
所述Consumers消费信息包括消息的生产速率和消费速率信息。
所述步骤(3)中,修改Ambari源码包括修改metainfo.xml文件,添加quicklinks.json 文件和kafka_webui.py文件。
修改Ambari源码时,首先在metainfo.xml文件中增加Kafka Web UI作为一个从动slave组件,即该从动slave组件是伴随kafka同时安装的。
所述quicklinks.json文件作为前端构建的可视化集群监控系统的一个快速链接,在 Ambari大数据平台界面kafka处选择快速链接登录即可进入可视化集群监控系统。
所述kafka_webui.py文件用于编写前端构建的可视化集群监控系统的安装,启动,停止和状态显示的命令和配置。
所述kafka_webui.py文件添加在路径KAFKA/0.8.1/package/scripts/下。
Kafka集群作为一个“消息发布-订阅”系统,为整个大数据平台多个子系统之间数据的传递提供了高速数据流转方式。为Kafka组件提供一个监控系统即可以更方便的对平台数据流转进行监控。
与现有技术相比,该可视化的Kafka集群监控方法,具有以下有益效果:
(1)在前端构建的可视化集群监控系统,并将其集成部署到Ambari大数据平台中,用户可以方便的在Ambari大数据平台中打开该可视化的监控系统对Kafka集群进行监控,增强了Kafka集群的功能性和易用性;
(2)后端获取到的Kafka集群信息通过图表的形式展示出来,方便业务人员在第一时间了解Kafka集群的相关信息以及数据的生产和消费情况;
(3)Ambari大数据平台内部集成可视化集群监控系统,提高了Ambari大数据平台的多元性;
(4)用户想要监控某个Kafka集群的数据时,不需要单独启动监控工具,提高了对Kafka集群的监控能力。