使用Kafka Manager管理Kafka集群

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 公司使用到了Kafka,想借助一套可视化的工具更好地管理Kafka。笔者将目光瞄准了Kafka Manager。安装Kafka一、下载Kafka前往http://kafka.apache.org/downloads ,根据自己的需要,下载合适版本的Kafka,笔者使用的版本是kafka_2.12-0.10.2.1。

公司使用到了Kafka,想借助一套可视化的工具更好地管理Kafka。笔者将目光瞄准了Kafka Manager。

安装Kafka

一、下载Kafka

前往http://kafka.apache.org/downloads ,根据自己的需要,下载合适版本的Kafka,笔者使用的版本是kafka_2.12-0.10.2.1。

二、启动Kafka

  • 启动Zookeeper。Kafka依赖Zookeeper,因此,启动Kafka前得先启动Zookeeper。在Kafka的根路径执行如下命令即可启动Zookeeper

    bin/zookeeper-server-start.sh config/zookeeper.properties & 
    
    AI 代码解读
  • 启动Kafka。启动完Zookeeper后,即可启动Kafka。执行如下命令即可。

    bin/kafka-server-start.sh config/server.properties &
    
    AI 代码解读

三、测试Kafka

  • 创建一个Topic

    bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test 
    
    AI 代码解读

    如创建成功,将会显示类似如下的内容:

    Created topic "test".
    
    AI 代码解读
  • 查看创建的Topic

    bin/kafka-topics.sh --list --zookeeper localhost:2181
    
    AI 代码解读
  • 创建一个消息生产者

    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
    
    AI 代码解读

    此时,终端会滞留,我们可以随便输入一些内容,该内容将会生产到Kafka中。

  • 创建一个消息消费者。新建一个终端,输入如下命令:

    bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning 
    
    AI 代码解读

    如消费者可收到在生产者中输入的内容,则说明Kafka搭建成功。

安装Kafka Manager

一、Kafka Manager简介

Kafka Manager是一款非常强大的Kafka管理工具。功能如下:

  • Manage multiple clusters
  • Easy inspection of cluster state (topics, consumers, offsets, brokers, replica distribution, partition distribution)
  • Run preferred replica election
  • Generate partition assignments with option to select brokers to use
  • Run reassignment of partition (based on generated assignments)
  • Create a topic with optional topic configs (0.8.1.1 has different configs than 0.8.2+)
  • Delete topic (only supported on 0.8.2+ and remember set delete.topic.enable=true in broker config)
  • Topic list now indicates topics marked for deletion (only supported on 0.8.2+)
  • Batch generate partition assignments for multiple topics with option to select brokers to use
  • Batch run reassignment of partition for multiple topics
  • Add partitions to existing topic
  • Update config for existing topic
  • Optionally enable JMX polling for broker level and topic level metrics.
  • Optionally filter out consumers that do not have ids/ owners/ & offsets/ directories in zookeeper.

二、下载Kafka Manager

前往https://github.com/yahoo/kafka-manager/releases ,根据自己的需要,下载合适版本的Kafka Manager源码,笔者使用的版本是1.3.3.13。

三、构建

由于Kafka Manager只提供了源码,并没有提供二进制包,因此我们需要对下载下来的源码进行构建,构建依赖工具sbt。

  • 解压源码

  • 在源码根目录下执行如下命令构建项目:

    sbt clean dist
    
    AI 代码解读

    由于伟大的墙,尽管我为sbt配置了Aliyun 等若干镜像仓库,依然很慢。经过长达100年的等待,本机依然无法构建成功。笔者实在受不了了,干脆在Linode 上购置了一台云服务器。在服务器上安装Java、sbt,并执行sbt clean dist 进行构建,只花了5分钟不到,构建就完成了,不得不鄙视国内的【局域网】。

  • 构建成功后,在target/universal 目录下找到类似kafka-manager-1.3.3.13.zip 的文件,这个就是构件好的Kafka Manager啦。

四、配置

  • 解压kafka-manager-1.3.3.13.zip

  • 修改conf/application.conf ,将配置属性kafka-manager.zkhosts 改为您的zk集群地址。

  • 在Kafka Manager根目录下执行如下命令,即可启动Kafka Manager。

    nohup bin/kafka-manager \
    -Dconfig.file=conf/application.conf \
     -Dhttp.port=9000 &
    
    AI 代码解读

    如提示

    akka.ConfigurationException: Could not start logger due to [akka.ConfigurationException: Logger specified in config can't be loaded [akka.event.slf4j.Slf4jLogger] due to [akka.event.Logging$LoggerInitializationException: Logger log1-Slf4jLogger did not respond with LoggerInitialized, sent instead [TIMEOUT]]]
      at akka.event.LoggingBus$class.startDefaultLoggers(Logging.scala:144)
    
    AI 代码解读

    则在conf/application.conf 中找到类似如下是内容:

    akka {
      loggers = ["akka.event.slf4j.Slf4jLogger"]
      loglevel = "INFO"
    }
    
    AI 代码解读

    改为:

    akka {
      loggers = ["akka.event.slf4j.Slf4jLogger"]
      loglevel = "INFO"
      logger-startup-timeout = 30s
    }
    
    AI 代码解读

    这样就不会报超时了。

  • 使用http://localhost:9000 即可访问Kafka Manager啦。

配置Kafka Manager

初次访问时,需配置想要监控的Kafka集群。

  • 点击http://localhost:9000 导航栏上的"Add Cluster"按钮,
  • 配置Kafka集群名称、Kafka集群的ZK列表等参数,如下图:
kafka-manager-configuration.png
  • 这样即可监控你的Kafka集群啦。

参考文档

本文链接: http://www.itmuch.com/work/kafka-manager/
**版权声明: **本博客由周立创作,采用 CC BY 3.0 CN 许可协议。可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。

目录
打赏
0
0
0
0
29
分享
相关文章
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
2024最全Kafka集群方案汇总
Apache Kafka 是一个高吞吐量、可扩展、可靠的分布式消息系统,广泛应用于数据驱动的应用场景。Kafka 支持集群架构,具备高可用性和容错性。其核心组件包括 Broker(服务器实例)、Topic(消息分类)、Partition(有序消息序列)、Producer(消息发布者)和 Consumer(消息消费者)。每个分区有 Leader 和 Follower,确保数据冗余和高可用。Kafka 2.8+ 引入了不依赖 Zookeeper 的 KRaft 协议,进一步简化了集群管理。常见的集群部署方案包括单节点和多节点集群,后者适用于生产环境以确保高可用性。
140 0
Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面
随着大数据技术的发展,Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面,方便管理和监控 Kafka 集群。本文详细介绍了 Kafka Manager 的部署步骤和基本使用方法,包括配置文件的修改、启动命令、API 示例代码等,帮助你快速上手并有效管理 Kafka 集群。
81 0
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
158 4
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
大数据-79 Kafka 集群模式 集群监控方案 JavaAPI获取集群指标 可视化监控集群方案: jconsole、Kafka Eagle
258 2
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
165 6
联通实时计算平台问题之监控Kafka集群的断传和积压情况要如何操作
联通实时计算平台问题之监控Kafka集群的断传和积压情况要如何操作
【Kafka节点存活大揭秘】如何让Kafka集群时刻保持“心跳”?探索Broker、Producer和Consumer的生死关头!
【8月更文挑战第24天】在分布式系统如Apache Kafka中,确保节点的健康运行至关重要。Kafka通过Broker、Producer及Consumer间的交互实现这一目标。文章介绍Kafka如何监测节点活性,包括心跳机制、会话超时与故障转移策略。示例Java代码展示了Producer如何通过定期发送心跳维持与Broker的连接。合理配置这些机制能有效保障Kafka集群的稳定与高效运行。
160 2
【Kafka揭秘】Leader选举大揭秘!如何打造一个不丢失消息的强大Kafka集群?
【8月更文挑战第24天】Apache Kafka是一款高性能分布式消息系统,利用分区机制支持数据并行处理。每个分区含一个Leader处理所有读写请求,并可有多个副本确保数据安全与容错。关键的Leader选举机制保障了系统的高可用性和数据一致性。选举发生于分区创建、Leader故障或被手动移除时。Kafka提供多种选举策略:内嵌机制自动选择最新数据副本为新Leader;Unclean选举快速恢复服务但可能丢失数据;Delayed Unclean选举则避免短暂故障下的Unclean选举;Preferred选举允许基于性能或地理位置偏好指定特定副本为首选Leader。
154 5

相关实验场景

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等