Kafka-Manager–一站式Kafka管控平台

Kafka 是一个高吞吐量的分布式发布订阅消息系统,目前被广泛使用在消息传递和日志收集等系统中,提供了系统模块解耦、数据冗余、削峰、顺序保证、异步通信等特性。当在团队中大量使用 Kafka 时,其管理和监控就变得比较困难了。Kafka-Manager,这个由滴滴出行开源的 Kafka 集群监控和管控平台,会使得 Kafka 的管理变得十分简单。

Kafka-Manager - 一站式 Kafka 管控平台

Apache 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 - 一站式 Kafka 管控平台

Kafka-Manager后台

安装

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 管控平台

Kafka-Manager Github项目

示例

Kafka-manager 的架构图如下:

Kafka-Manager - 一站式 Kafka 管控平台

Kafka-manager架构图

Kafka-manager 的最上层提供了一个 Web Console 后台,为运维人员提供了管理界面,然后通过 Restful API 实现包括验证、指标报告等,更下层使用服务的方式,实现了指标收集器、指标警报等,最底层实现了关于主题、集群等的 DAO。

Kafka-manager 提供了普通用户和管理员两种用户角色,普通用户一般是 Kafka 集群的使用者,而管理员则负责对 Kafka 集群进行管理和监控。

对于普通用户,在使用前需要向管理员申请账号,然后利用账号密码登录 Kafka-manager。当需要使用一个新的 Topic 时,用户可以发起一个新的 Topic 申请:

Kafka-Manager - 一站式 Kafka 管控平台

Topic申请

完成了 Topic 的新建后,可以查看 Topic 的详细信息,包括:

  • 集群Topic列表
  • Topic基本信息(创建和修改时间,数据保存时间、Topic负责人等)
  • Topic分区信息
  • Topic消费组的信息,和消费组的消费详情
  • Topic实现的和历史的流量信息
  • Topic数据采样等
Kafka-Manager - 一站式 Kafka 管控平台

Topic详情信息

普通用户还可以申请Topic扩容,和重置消费偏移:

Kafka-Manager - 一站式 Kafka 管控平台

重置消费偏移

Kafka-manager 支持自动告警,告警触发后,告警信息会被发往指定的 Topic,用户可以通过消费该 Topic 获取警报,并接入外部通知系统。

Kafka-Manager - 一站式 Kafka 管控平台

告警规则配置

对于管理员,默认的账号密码为 admin/admin,登录后,需要把 Kafka 集群添加到 kafka-manager 中:

Kafka-Manager - 一站式 Kafka 管控平台

添加kafka集群

Kafka-manager 提供了全面的监控指标,包括:

  • 集群的基本信息
  • 集群历史及实时流量信息
  • 集群Topic信息
  • 集群Broker信息
  • 集群ConsumerGroup信息
  • 集群Region信息
  • 集群当前Controller及变更历史
Kafka-Manager - 一站式 Kafka 管控平台

集群维度指标

Kafka-manager还提供了Broker维度的监控指标,包括:

  • Broker基本信息
  • Broker历史与实时流量信息
  • Broker内Topic信息
  • Broker内分区信息
  • Broker关键指标(日志刷盘时间等)
  • Topic分析(Topic流量占比等)
Kafka-Manager - 一站式 Kafka 管控平台

Broker维度监控

对于Kafka集群,可以进行运维管控,提供了包括:

  • Topic申请及扩容工单审批
  • Topic创建、删除、扩容及属性修改
  • Broker维度优先副本选举
  • 分区粒度迁移
  • 逻辑Region管理

等的管理操作,满足日常对于kafka集群的运维管理需求。

Kafka-Manager - 一站式 Kafka 管控平台

资源审批界面

总结

Kafka-manager 作为一个 Kafka 的一站式监控和管控平台,提供了丰富的 kafka 集群监控指标,方便对于集群运行状态的监控,并提供了集中化的管理后台,使得对于集群中不同的Broker和大量的Topic的管理得以简化,大大提高了Kafka的管理效率,值得在实践中应用。

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/soft/11432.html

发表评论

登录后才能评论