Kafka 是一个高吞吐量的分布式发布订阅消息系统,目前被广泛使用在消息传递和日志收集等系统中,提供了系统模块解耦、数据冗余、削峰、顺序保证、异步通信等特性。当在团队中大量使用 Kafka 时,其管理和监控就变得比较困难了。Kafka-Manager,这个由滴滴出行开源的 Kafka 集群监控和管控平台,会使得 Kafka 的管理变得十分简单。
简介
Kafka-manager,是 didi(滴滴出行开源团队)在 Github 上开源的 Apache Kafka 集群管控平台,项目位于 https://github.com/didi/kafka-manager,目前版本为 v1.0.0。Kafka-managerr 提供了 Kafka 集群运维后台,提供了:
- 多版本集群管控,支持从 0.10.2 到 2.4 版本
- 集群 Topic、Broker 等多维度历史和实时关键指标的查看
- 集群运维,包括逻辑 Region 方式管理集群
- Broker 运维,包括优先副本选举等
- Topic 运维,包括主题的创建、查询、扩容、修改属性、数据采样,和迁移等操作
- 消费组运维、包括指定时间,或指定偏移,两种方式进行重置消费偏移
- 管理员用户与普通用户的视角和权限的区分
安装
Kafka-manager 主要使用 Java 开发,依赖 Maven 3.5.0 ,node v8.12.0 ,Java 8 ,以及 MySQL 或 PostgreSQL。要进行安装,首先对数据库进行初始化,使用项目提供的 create_mysql_table.sql 进行 MySQL 数据库的初始化,或使用 create_postgresql_table.sql 进行 PostgreSQL 的初始化。然后,使用 Maven 进行打包:
mvn install
然后,把配置文件 application.yml 复制到目标路径,并在后台启动服务:
cp web/src/main/resources/application.yml web/target/
cd web/target/nohup java -jar kafka-manager-web-1.0.0-SNAPSHOT.jar --spring.config.location=./application.yml > /dev/null 2>&1 &
启动完成后,可以访问 http://localhost:8080,输入用户名和密码登录后台即可。
示例
Kafka-manager 的架构图如下:
Kafka-manager 的最上层提供了一个 Web Console 后台,为运维人员提供了管理界面,然后通过 Restful API 实现包括验证、指标报告等,更下层使用服务的方式,实现了指标收集器、指标警报等,最底层实现了关于主题、集群等的 DAO。
Kafka-manager 提供了普通用户和管理员两种用户角色,普通用户一般是 Kafka 集群的使用者,而管理员则负责对 Kafka 集群进行管理和监控。
对于普通用户,在使用前需要向管理员申请账号,然后利用账号密码登录 Kafka-manager。当需要使用一个新的 Topic 时,用户可以发起一个新的 Topic 申请:
完成了 Topic 的新建后,可以查看 Topic 的详细信息,包括:
- 集群Topic列表
- Topic基本信息(创建和修改时间,数据保存时间、Topic负责人等)
- Topic分区信息
- Topic消费组的信息,和消费组的消费详情
- Topic实现的和历史的流量信息
- Topic数据采样等
普通用户还可以申请Topic扩容,和重置消费偏移:
Kafka-manager 支持自动告警,告警触发后,告警信息会被发往指定的 Topic,用户可以通过消费该 Topic 获取警报,并接入外部通知系统。
对于管理员,默认的账号密码为 admin/admin,登录后,需要把 Kafka 集群添加到 kafka-manager 中:
Kafka-manager 提供了全面的监控指标,包括:
- 集群的基本信息
- 集群历史及实时流量信息
- 集群Topic信息
- 集群Broker信息
- 集群ConsumerGroup信息
- 集群Region信息
- 集群当前Controller及变更历史
Kafka-manager还提供了Broker维度的监控指标,包括:
- Broker基本信息
- Broker历史与实时流量信息
- Broker内Topic信息
- Broker内分区信息
- Broker关键指标(日志刷盘时间等)
- Topic分析(Topic流量占比等)
对于Kafka集群,可以进行运维管控,提供了包括:
- Topic申请及扩容工单审批
- Topic创建、删除、扩容及属性修改
- Broker维度优先副本选举
- 分区粒度迁移
- 逻辑Region管理
等的管理操作,满足日常对于kafka集群的运维管理需求。
总结
Kafka-manager 作为一个 Kafka 的一站式监控和管控平台,提供了丰富的 kafka 集群监控指标,方便对于集群运行状态的监控,并提供了集中化的管理后台,使得对于集群中不同的Broker和大量的Topic的管理得以简化,大大提高了Kafka的管理效率,值得在实践中应用。
内容出处:,
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/soft/11432.html