本文对比了如下几个kafka监控工具:
Kafka Manager
Kafka center
Kafka Eagle
kafka-monitor
kafdrop
一 : Kafka Eagle
最新版本 : 1.4.6
github地址 : https://github.com/smartloli/kafka-eagle
http://120.92.114.224:33333/ke/
版本 : V1.4.6
功能点:
1. Kafka基本信息的展示,包含控制面板 brokers、topics、zookeepers、consumerGroups
2. Active状态的brokers
3. Topic 支持topic创建, topic信息查询、KSQL 类sql语法查询数据、mock模拟数据send
4. 多个集群的配置查询,以及zk和kafka info基本信息查询
5. 提供Zk_Cli 可视化shell操作
6. 提供常用的kafka和zookeeper metric信息配置
7. 提供异常告警功能,支持微信、邮件、钉钉
8. 支持权限,角色的管理
9. 提供了大屏展示 BScreen
优点:
1. 代码简单,配置灵活
2. 社区活跃度高, 代码commit 频率高
3. 提供了基本的kafka查询操作
4. 提供了大屏展示功能
缺点:
1. 大部分功能偏重于kafka集群查询类操作,对于kafka高级功能,比如动态修改配置、自动均衡
2. 不具备kafka connect功能
3. 不具备kafka
二: kafka-center
近期github上面刚提交的一个项目
介绍
KafkaCenter是Kafka集群管理和维护、生产者/消费者监控和生态组件使用的一站式统一平台。
github地址: https://github.com/xaecbd/KafkaCenter
内部集成了kafka-manager的一些功能
功能点:
1 . 监控多个集群状态、breaker、control等信息
2. 提供了kafka connector 功能 (实际内嵌了 kafka-connect-ui )
3. 具有kafka topic操作的审核机制
4. 提供监控告警模块可以查看topic的生产以及消费情况,同时可以对于消费延迟情况设置告警
5. 可以创建Connect Job 以及 KSQL Job , 并提供维护功能
6. 提供user、team、cluster等信息权限设置
优点 :
具有权限机制
提供了告警/预警功能
提供了kafka connect功能
缺点
依赖mysql数据进行配置信息
依赖elasticsearch(7.x+) 用于监控告警指标等信息
新开源项目,不排除内部开源版本
没有kafka 高级功能比如 data Balance,数据TTL设置等
不支持mock方式进行数据生产和消费
i
三、Xinfra Monitor (kafka-monitor)
介绍
是一个在真实集群中实现和执行长时间运行的Kafka系统测试的框架,它通过捕获潜在的bug或回归来补充Kafka现有的系统测试,这些bug或回归只可能在很长一段时间后发生,或者发生的概率很低。此外,它还允许您使用端到端管道来监视Kafka集群,以获得许多派生的重要统计数据,如端到端延迟、服务可用性、用户补偿提交可用性以及消息丢失率。您可以轻松地部署Xinfra Monitor来测试和监视Kafka集群,而不需要对应用程序进行任何更改。
Xinfra Monitor可以使用指定的配置自动创建Monitor主题,并增加Monitor主题的分区数,以确保分区# >= broker#。它还可以重新分配分区并触发首选领导人选举,以确保每个代理充当至少一个监视器主题分区的领导人。这允许Xinfra Monitor在每个代理上检测性能问题,而不需要用户手动管理Monitor主题的分区分配。
Xinfra Monitor与不同的中间层服务(如li-apache-kafka-clients)结合使用,用于监视单个集群、管道设计集群和其他类型的集群,如Linkedin工程中用于实时集群健康检查的集群
linkedin 开源
最新版本:2.1.5 发布时间:2020年04月8号
发布频率较高,但commiter人数较少,目前只有一个人进行维护
功能点:
更偏向于测试kafka相关
支持kafka topic leader rebalance
监控topic rebalancing
支持自定义实现一些service编写
集群健康检查
指标导出
支持kafka版本2.0.0
缺点:
不支持告警
不支持kafka connect功能
不支持ksql功能
不支持mock操作
不支持权限控制
整体评估:
具备一些高级功能,但是代码质量不太好, 缺乏一些基础功能.
四、kafdrop:
介绍
Kafdrop是一个用于查看Kafka主题和浏览用户组的web UI。该工具显示代理、主题、分区、使用者等信息,并允许您查看消息。
github: https://github.com/obsidiandynamics/kafdrop
功能:
查看Kafka代理——主题和分区分配,以及控制器状态
查看主题——分区计数、复制状态和自定义配置
浏览消息- JSON,纯文本和Avro编码
查看用户组——每个分区的停泊偏移量、组合和每个分区的延迟
创建新主题
视图acl
不足:
无法查看每个topic的partition、副本、消息总数、可读数,同步中副本数
不支持多个集群管理
不支持集群状态、topic总数、节点数、partitions总数、生产者平均可用性、消费者平均可用性、异常统计、告警显示
整体评估:
功能偏大众、基础. 不具备高级特性功能.
五、kakfa-manager
偏向Kafka集群管理,若操作不当,容易导致集群出现故障。对Kafka实时生产和消费消息是通过JMX实现的。
功能点:
提供了集群操作管理的相关功能,比如topic创建、balance.
支持多个集群添加和管理
提供了分区重分配
提供对topic leader负载均衡能力
优点 :
安装操作简单
修改topic配置
缺点:
数据展示有时不准确
维护频率较低