Kafka-开源monitor调研
Kafka-web-console
- Kafka-web-console开源项目已不再继续维护,开源开发者推荐使用Kafka-manage进行替代。
- Scala语言开发。
- Github: https://github.com/claudemamo/kafka-web-console
KafkaOffsetMonitor
- KafkaOffsetMonitor开源项目已不再继续开发。功能简单,直观,提供查询功能,jar包部署。
- Scala语言开发。
- Github: https://github.com/quantifind/KafkaOffsetMonitor
Availability-Monitor-for-Kafka
- Availability-Monitor-for-Kafka是微软Microsoft开源的Kafka监控项目。使用简单,jar包部署。
- 社区一般活跃,暂无release版本。
- Java语言开发;与maven集成;与SQL Server集成。
- 最新支持到Kafka 0.8.1.1版本
- Github: https://github.com/Microsoft/Availability-Monitor-for-Kafka
Kafka-monitor
- Kafka-monitor是Linkedin官方提供Kafka监控工具。代码提供3个branch分别对Kafka0.8,0.9,0.10提供支持。
- 社区一般活跃,暂时只发布一个release版本。2016年4月开始开发,开源时间较短。
- Java语言开发。与gradle集成。
- 最新支持到Kafka 0.10.0.1
- Github: https://github.com/linkedin/kafka-monitor
Kafka-manage
- Kafka-manage是Yahoo官方提供的Kafka监控工具。
- 开源项目社区非常活跃,已发布21个release版本。2015年1月29日开始开发,总计446 commits。
- 功能非常强大、全面。对新版Kafka有一定支持,但不一定会支持到最新版本功能。如0.10版本消息携带timestamp即时间戳字段,可以根据时间戳进行消息查询(暂不确定,待确认)。
- Scala语言开发。
- 要求Kafka 0.8.1.1 或 0.8.2. 或 0.9.0. 或0.10.0.*。
- 要求JDK8。
- 最新支持到Kafka 0.10.1.0
- Github: https://github.com/yahoo/kafka-manager
支持以下功能:
- 管理多个集群(clusters)
- 群集状态的简单检查–主题、消费者、偏移量、服务实例、副本分布、分区分布 (topics, consumers, offsets, brokers, replica distribution, partition distribution)
- 运行leader副本选举
- 生成partition的分配,(通过选项来选择使用哪个broker)
- 运行Partition的重新分配(基于4.生成partition的分配)
- 通过可选的topic配置,创建一个topic(0.8.1.1与0.8.2 +有不同的配置)
- 删除topic(仅在0.8.2 +版本中支持,且需要在broker配置delete.topic.enable=true)
- topic列表现在显示标记为删除的内容(仅在0.8.2 +版本中支持)
- 批量生成多个topic的partition分配,(可以通过选项来选择使用哪个broker)
- 运行多topic的partition的批量重分配
- 为已存在的topic新增partitions
- 更新现已存在topic的配置
- 选择是否为broker级别和topic级别的指标而启用JMX轮询。
- 选择过滤出在zookeeper中没有ids/owners/&offsets/directories的消费者。
结论
- 前三个开源Kafka监控项目基本无需考虑。
- Kafka-monitor优势在于官方出品,属嫡系产品。虽然项目起步较晚,但未来前景可观。
- Kafka-manage优势在于社区活跃,功能支持强大,release版本众多,饱经生产考验。
- 具体功能对比需实际部署使用两款monitor产品,进行各方面对比完成。
注:Kafka 0.10.2.0 于2017年2月14日发布,此版本修复超过200个bugs,合并超过500个Pull Request。使用Scala-2.12。
Author: Yueqi Shi
Date: 2017-04-21 11:12:00 AM