在Kafka生态系统中,监控工具是确保数据流动高效且稳定的重要组成部分。本文将对几款流行的Kafka监控工具进行对比,帮助用户选择最合适的工具。
Kafka监控工具大盘点:找到最适合你的那一款
监控工具名称 | 查看主题和 消费者组信息 | 根据关键词 查看信息 | 创建删除主题 | 性能 | 部署复杂度 |
Kafdrop | 支持 | 支持 | 支持 | 高 | 简单 |
KafkaOffsetMonitor | 支持 | 不支持 | 不支持 | 中 | 简单 |
EFAK | 支持 | 不支持 | 不支持 | 低 | 相对复杂 |
kafdrop(推荐)
功能介绍
• 支持根据Topic查看消费者组详细信息
• 支持查看消费者组消费的所有Topic
• 支持查看Topic详细配置
• 支持根据关键词呢搜索消息
• 支持根据offset查看消息
• 支持创建、删除Topic
项目地址
https://github.com/obsidiandynamics/kafdrop
安装运行命令
docker run -d --rm -p 9000:9000 \
-e KAFKA_BROKERCONNECT=<host:port,host:port> \
-e SERVER_SERVLET_CONTEXTPATH="/" \
obsidiandynamics/kafdrop
首页
首页展示集群的基本信息,例如:Topic总数、Partition总数等。
可以查看Topic基础信息,并且在首页底部,用户可以创建新的Topic。
查看Topic详情
用户可以查看Topic的配置信息和每个Partition的详细信息,例如最早的offset、最新的offset、分区leader所处的节点等。具体信息如下图所示:
查看分区数据
点击具体的分区后,可以查看该分区内的数据。
用户还可以自定义数据查询。
通过输入关键词,用户可以搜索Topic中的数据。
查看消费者组信息
用户可以查看指定Topic下的所有消费者组
点击某个消费者组后,用户可以查看该组所消费的所有Topic及其消费状态。
KafkaOffsetMonitor
KafkaOffsetMonitor是一款传统的监控工具,用户只需启动一个jar包即可运行。用户可以通过在网上搜索获取jar包,或者关注公众号后台回复“kafka监控”获取下载链接。
功能介绍
• 支持查看消费者组信息
• 支持查看Topic组信息
• 支持查看一定时间内消费者消费状态
启动方式
java -cp KafkaOffsetMonitor-assembly-0.3.0-SNAPSHOT.jar \
com.quantifind.kafka.offsetapp.OffsetGetterWeb \
--offsetStorage kafka \
--zk zk-server1,zk-server2 \
--port 8080 \
--refresh 10.seconds \
--retain 2.days
说明:
offsetStorage:有效的选项是"zookeeper","kafka","storm"。0.9版本以后,offset存储的位置在kafka。
zk: zookeeper的地址
prot 端口号
refresh 刷新频率,更新到DB。
retain 保留DB的时间
dbName 在哪里存储记录(默认'offsetapp')
监控页面展示
说明:
• Topic:Topic的名称
• Partition:该Topic包含的分区数量
• Offset:Kafka消费者已消费的消息数量
• logSize:已写入该分区的消息数量
• Lag:未读取的消息数量(Lag=logSize-Offset)
• Owner:该分区所在的Broker(包括消费者组名称、主机名和broker.id)
• Created:分区创建时间
• Last Seen:Offset和logSize最后更新时间
左上角显示当前Topic的生产速率,右上角显示当前消费者的消费速率。
EFAK
功能介绍
• 查看Topic信息
• 查看消费者组信息
• 查看集群Metric信息
• 根据SQL查询数据(支持简单SQL)
• 告警支持
• 节点信息查看
项目信息
项目地址:https://github.com/smartloli/EFAK
安装步骤参考:https://docs.kafka-eagle.org/2.installation/2.installonlinuxmac
仪表盘
创建Topic
消费者组
SQL查询数据
监控指标
总结
1. Kafdrop(推荐):
• 优点:界面友好,功能全面,支持Topic和消费者组的详细信息查看,能够搜索特定关键词并创建、删除Topic,适合需要实时监控和管理Kafka集群的用户。
• 适用场景:适合对Kafka有较高管理需求的开发和运维人员。
2. KafkaOffsetMonitor:
• 优点:轻量级,配置简单,专注于消费者组的消费状态监控,提供一定时间内的消费历史,适合快速部署和使用。
• 适用场景:适合对历史消费数据有需求的小型项目或个人用户。
3. EFAK:
• 优点:功能丰富,支持简单SQL查询,告警功能,以及集群状态监控,适合需要更复杂监控和数据分析的场景。
• 适用场景:适合企业级应用具备二次开发能力(运行时间长了会比较慢)和需要深入分析Kafka集群性能的用户。
欢迎关注我的公众号“编程与架构”,原创技术文章第一时间推送。