当前位置:首页 > 科技  > 软件

聊聊主流的Kafka监控框架

来源: 责编: 时间:2024-05-16 09:10:34 116观看
导读今天给大家来聊聊关于Kafka的具体监控工具或监控框架。令人有些遗憾的是,Kafka社区似乎一直没有在监控框架方面投入太多的精力。目前,Kafka的新功能提议已超过500个,但没有一个提议是有关监控框架的。当然,Kafka的确提供

今天给大家来聊聊关于Kafka的具体监控工具或监控框架。jnT28资讯网——每日最新资讯28at.com

令人有些遗憾的是,Kafka社区似乎一直没有在监控框架方面投入太多的精力。目前,Kafka的新功能提议已超过500个,但没有一个提议是有关监控框架的。当然,Kafka的确提供了超多的JMX指标,只是,单独查看这些JMX指标往往不是很方便,我们还是要依赖于框架统一地提供性能监控。jnT28资讯网——每日最新资讯28at.com

也许,正是由于社区的这种“不作为”,很多公司和个人都自行着手开发Kafka监控框架,其中并不乏佼佼者。今天我们就来全面地梳理一下主流的监控框架。jnT28资讯网——每日最新资讯28at.com

JMXTool工具

首先,我向你推荐JMXTool工具。严格来说,它并不是一个框架,只是社区自带的一个工具罢了。JMXTool工具能够实时查看Kafka JMX指标。倘若你一时找不到合适的框架来做监控,JMXTool可以帮你“临时救急”一下。jnT28资讯网——每日最新资讯28at.com

Kafka官网没有JMXTool的任何介绍,你需要运行下面的命令,来获取它的使用方法的完整介绍。jnT28资讯网——每日最新资讯28at.com

bin/kafka-run-class.sh kafka.tools.JmxTool

JMXTool工具提供了很多参数,但你不必完全了解所有的参数。我把主要的参数说明列在了下面的表格里,你至少要了解一下这些参数的含义。jnT28资讯网——每日最新资讯28at.com

图片图片jnT28资讯网——每日最新资讯28at.com

现在,我举一个实际的例子来说明一下如何运行这个命令。jnT28资讯网——每日最新资讯28at.com

假设你要查询Broker端每秒入站的流量,即所谓的JMX指标BytesInPerSec,这个JMX指标能帮助你查看Broker端的入站流量负载,如果你发现这个值已经接近了你的网络带宽,这就说明该Broker的入站负载过大。你需要降低该Broker的负载,或者将一部分负载转移到其他Broker上。jnT28资讯网——每日最新资讯28at.com

下面这条命令,表示每5秒查询一次过去1分钟的BytesInPerSec均值。jnT28资讯网——每日最新资讯28at.com

bin/kafka-run-class.sh kafka.tools.JmxTool --object-name kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec --jmx-url service:jmx:rmi:///jndi/rmi://:9997/jmxrmi --date-format "YYYY-MM-dd HH:mm:ss" --attributes OneMinuteRate --reporting-interval 1000

在这条命令中,有几点需要你注意一下。jnT28资讯网——每日最新资讯28at.com

  • 设置 –jmx-url参数的值时,需要指定JMX端口。在这个例子中,端口是9997,在实际操作中,你需要指定你的环境中的端口。
  • 由于我是直接在Broker端运行的命令,因此就把主机名忽略掉了。如果你是在其他机器上运行这条命令,你要记得带上要连接的主机名。
  • 关于 –object-name参数值的完整写法,我们可以直接在Kafka官网上查询。我们在前面说过,Kafka提供了超多的JMX指标,你需要去官网学习一下它们的用法。我以ActiveController JMX指标为例,介绍一下学习的方法。你可以在官网上搜索关键词ActiveController,找到它对应的 –object-name,即kafka.controller:type=KafkaController,name=ActiveControllerCount,这样,你就可以执行下面的脚本,来查看当前激活的Controller数量。

$ bin/kafka-run-class.sh kafka.tools.JmxTool –object-name kafka.controller:type=KafkaController,name=ActiveControllerCount –jmx-url service:jmx:rmi:///jndi/rmi://:9997/jmxrmi –date-format “YYYY-MM-dd HH:mm:ss” –reporting-interval 1000 Trying to connect to JMX url: service:jmx:rmi:///jndi/rmi://:9997/jmxrmi. “time”,“kafka.controller:type=KafkaController,name=ActiveControllerCount:Value” 2019-08-05 15:08:30,1 2019-08-05 15:08:31,1

总体来说,JMXTool是社区自带的一个小工具,对于一般简单的监控场景,它还能应付,但是它毕竟功能有限,复杂的监控整体解决方案,还是要依靠监控框架。jnT28资讯网——每日最新资讯28at.com

Kafka Manager

说起Kafka监控框架,最有名气的当属Kafka Manager了。Kafka Manager是雅虎公司于2015年开源的一个Kafka监控框架。这个框架用Scala语言开发而成,主要用于管理和监控Kafka集群。jnT28资讯网——每日最新资讯28at.com

应该说Kafka Manager是目前众多Kafka监控工具中最好的一个,无论是界面展示内容的丰富程度,还是监控功能的齐全性,它都是首屈一指的。不过,目前该框架已经有4个月没有更新了,而且它的活跃的代码维护者只有三四个人,因此,很多Bug或问题都不能及时得到修复,更重要的是,它无法追上Apache Kafka版本的更迭速度。jnT28资讯网——每日最新资讯28at.com

当前,Kafka Manager最新版是2.0.0.2。在其Github官网上下载tar.gz包之后,我们执行解压缩,可以得到kafka-manager-2.0.0.2目录。jnT28资讯网——每日最新资讯28at.com

之后,我们需要运行sbt工具来编译Kafka Manager。sbt是专门用于构建Scala项目的编译构建工具,类似于我们熟知的Maven和Gradle。Kafka Manager自带了sbt命令,我们直接运行它构建项目就可以了:jnT28资讯网——每日最新资讯28at.com

./sbt clean dist

经过漫长的等待之后,你应该可以看到项目已经被成功构建了。你可以在Kafka Manager的target/universal目录下找到生成的zip文件,把它解压,然后修改里面的conf/application.conf文件中的kafka-manager.zkhosts项,让它指向你环境中的ZooKeeper地址,比如:jnT28资讯网——每日最新资讯28at.com

kafka-manager.zkhosts="localhost:2181"

之后,运行以下命令启动Kafka Manager:jnT28资讯网——每日最新资讯28at.com

bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8080

该命令指定了要读取的配置文件以及要启动的监听端口。现在,我们打开浏览器,输入对应的IP:8080,就可以访问Kafka Manager了。下面这张图展示了我在Kafka Manager中添加集群的主界面。jnT28资讯网——每日最新资讯28at.com

图片图片jnT28资讯网——每日最新资讯28at.com

注意,要勾选上Enable JMX Polling,这样你才能监控Kafka的各种JMX指标。下图就是Kafka Manager框架的主界面。jnT28资讯网——每日最新资讯28at.com

图片图片jnT28资讯网——每日最新资讯28at.com

从这张图中,我们可以发现,Kafka Manager清晰地列出了当前监控的Kafka集群的主题数量、Broker数量等信息。你可以点击顶部菜单栏的各个条目去探索其他功能。jnT28资讯网——每日最新资讯28at.com

除了丰富的监控功能之外,Kafka Manager还提供了很多运维管理操作,比如执行主题的创建、Preferred Leader选举等。在生产环境中,这可能是一把双刃剑,毕竟这意味着每个访问Kafka Manager的人都能执行这些运维操作。这显然是不能被允许的。因此,很多Kafka Manager用户都有这样一个诉求:把Kafka Manager变成一个纯监控框架,关闭非必要的管理功能。jnT28资讯网——每日最新资讯28at.com

庆幸的是,Kafka Manager提供了这样的功能。你可以修改config下的application.conf文件,删除application.features中的值。比如,如果我想禁掉Preferred Leader选举功能,那么我就可以删除对应KMPreferredReplicaElectionFeature项。删除完之后,我们重启Kafka Manager,再次进入到主界面,我们就可以发现之前的Preferred Leader Election菜单项已经没有了。jnT28资讯网——每日最新资讯28at.com

图片图片jnT28资讯网——每日最新资讯28at.com

总之,作为一款非常强大的Kafka开源监控框架,Kafka Manager提供了丰富的实时监控指标以及适当的管理功能,非常适合一般的Kafka集群监控,值得你一试。jnT28资讯网——每日最新资讯28at.com

Burrow

我要介绍的第二个Kafka开源监控框架是Burrow。Burrow是LinkedIn开源的一个专门监控消费者进度的框架。事实上,当初其开源时,我对它还是挺期待的。毕竟是LinkedIn公司开源的一个框架,而LinkedIn公司又是Kafka创建并发展壮大的地方。Burrow应该是有机会成长为很好的Kafka监控框架的。jnT28资讯网——每日最新资讯28at.com

然而令人遗憾的是,它后劲不足,发展非常缓慢,目前已经有几个月没有更新了。而且这个框架是用Go写的,安装时要求必须有Go运行环境,所以,Burrow在普及率上不如其他框架。另外,Burrow没有UI界面,只是开放了一些HTTP Endpoint,这对于“想偷懒”的运维来说,更是一个减分项。jnT28资讯网——每日最新资讯28at.com

如果你要安装Burrow,必须要先安装Golang语言环境,然后依次运行下列命令去安装Burrow:jnT28资讯网——每日最新资讯28at.com

$ go get github.com/linkedin/Burrow$ cd $GOPATH/src/github.com/linkedin/Burrow$ dep ensure$ go install

等一切准备就绪,执行Burrow启动命令就可以了。jnT28资讯网——每日最新资讯28at.com

$GOPATH/bin/Burrow --config-dir /path/containing/config

总体来说,Burrow目前提供的功能还十分有限,普及率和知名度都是比较低的。不过,它的好处是,该项目的主要贡献者是LinkedIn团队维护Kafka集群的主要负责人,所以质量是很有保证的。如果你恰好非常熟悉Go语言生态,那么不妨试用一下Burrow。jnT28资讯网——每日最新资讯28at.com

JMXTrans + InfluxDB + Grafana

除了刚刚说到的专属开源Kafka监控框架之外,其实现在更流行的做法是,在一套通用的监控框架中监控Kafka,比如使用JMXTrans + InfluxDB + Grafana的组合。由于Grafana支持对JMX指标的监控,因此很容易将Kafka各种JMX指标集成进来。jnT28资讯网——每日最新资讯28at.com

我们来看一张生产环境中的监控截图。图中集中了很多监控指标,比如CPU使用率、GC收集数据、内存使用情况等。除此之外,这个仪表盘面板还囊括了很多关键的Kafka JMX指标,比如BytesIn、BytesOut和每秒消息数等。将这么多数据统一集成进一个面板上直观地呈现出来,是这套框架非常鲜明的特点。jnT28资讯网——每日最新资讯28at.com

图片图片jnT28资讯网——每日最新资讯28at.com

与Kafka Manager相比,这套监控框架的优势在于,你可以在一套监控框架中同时监控企业的多个关键技术组件。特别是对于那些已经搭建了该监控组合的企业来说,直接复用这套框架可以极大地节省运维成本,不失为一个好的选择jnT28资讯网——每日最新资讯28at.com

Confluent Control Center

最后,我们来说说Confluent公司发布的Control Center。这是目前已知的最强大的Kafka监控框架了。jnT28资讯网——每日最新资讯28at.com

Control Center不但能够实时地监控Kafka集群,而且还能够帮助你操作和搭建基于Kafka的实时流处理应用。更棒的是,Control Center提供了统一式的主题管理功能。你可以在这里享受到Kafka主题和Schema的一站式管理服务。jnT28资讯网——每日最新资讯28at.com

下面这张图展示了Control Center的主题管理主界面。从这张图中,我们可以直观地观测到整个Kafka集群的主题数量、ISR副本数量、各个主题对应的TPS等数据。当然,Control Center提供的功能远不止这些,你能想到的所有Kafka运维管理和监控功能,Control Center几乎都能提供。jnT28资讯网——每日最新资讯28at.com

图片图片jnT28资讯网——每日最新资讯28at.com

不过,如果你要使用Control Center,就必须使用Confluent Kafka Platform企业版。换句话说,Control Center不是免费的,你需要付费才能使用。如果你需要一套很强大的监控框架,你可以登录Confluent公司官网,去订购这套真正意义上的企业级Kafka监控框架。jnT28资讯网——每日最新资讯28at.com

小结

其实,除了今天我介绍的Kafka Manager、Burrow、Grafana和Control Center之外,市面上还散落着很多开源的Kafka监控框架,比如Kafka Monitor、Kafka Offset Monitor等。不过,这些框架基本上已经停止更新了,有的框架甚至好几年都没有人维护了,因此我就不详细展开了。如果你是一名开源爱好者,可以试着到开源社区中贡献代码,帮助它们重新焕发活力。jnT28资讯网——每日最新资讯28at.com

值得一提的是,国内最近有个Kafka Eagle框架非常不错。它是国人维护的,而且目前还在积极地演进着。根据Kafka Eagle官网的描述,它支持最新的Kafka 2.x版本,除了提供常规的监控功能之外,还开放了告警功能(Alert),非常值得一试。jnT28资讯网——每日最新资讯28at.com

总之,每个框架都有自己的特点和价值。Kafka Manager框架适用于基本的Kafka监控,Grafana+InfluxDB+JMXTrans的组合适用于已经具有较成熟框架的企业。对于其他的几个监控框架,你可以把它们作为这两个方案的补充,加入到你的监控解决方案中。jnT28资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-88395-0.html聊聊主流的Kafka监控框架

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 什么,你的EasyExcel导出一万条数据就OOM了?

下一篇: TypeScript 中的类型与接口

标签:
  • 热门焦点
  • 6月iOS设备好评榜:第一蝉联榜首近一年

    6月iOS设备好评榜:第一蝉联榜首近一年

    作为安兔兔各种榜单里变化最小的那个,2023年6月的iOS好评榜和上个月相比没有任何排名上的变化,仅仅是部分设备好评率的下降,长年累月的用户评价和逐渐退出市场的老款机器让这
  • 28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈

    28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈

    前言在使用SpringBoot开发中或者在求职面试中都会使用到很多注解或者问到注解相关的知识。本文主要对一些常用的注解进行了总结,同时也会举出具体例子,供大家学习和参考。注解
  • 2023 年的 Node.js 生态系统

    2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • 分布式系统中的CAP理论,面试必问,你理解了嘛?

    分布式系统中的CAP理论,面试必问,你理解了嘛?

    对于刚刚接触分布式系统的小伙伴们来说,一提起分布式系统,就感觉高大上,深不可测。而且看了很多书和视频还是一脸懵逼。这篇文章主要使用大白话的方式,带你理解一下分布式系统
  • 使用LLM插件从命令行访问Llama 2

    使用LLM插件从命令行访问Llama 2

    最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:Llama 2可免费用于研究和商业用途。(几小时前,swyy发现它已从LLaMA 2更名为Lla
  • 2023年,我眼中的字节跳动

    2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • 拼多多APP上线本地生活入口,群雄逐鹿万亿市场

    拼多多APP上线本地生活入口,群雄逐鹿万亿市场

    Tech星球(微信ID:tech618)文 | 陈桥辉 Tech星球独家获悉,拼多多在其APP内上线了“本地生活”入口,位置较深,位于首页的“充值中心”内,目前主要售卖美食相关的
  • 三星显示已开始为AR设备研发硅基LED微显示屏

    三星显示已开始为AR设备研发硅基LED微显示屏

    7月18日消息,据外媒报道,随着苹果首款头显产品Vision Pro在6月份正式推出,AR/VR/MR等头显产品也就将成为各大公司下一个重要的竞争领域,对显示屏这一关
  • 质感不错!OPPO K11渲染图曝光:旗舰IMX890传感器首次下放

    质感不错!OPPO K11渲染图曝光:旗舰IMX890传感器首次下放

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
Top
Baidu
map