热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用KafkaManager管理Kafka集群

公司使用到了Kafka,想借助一套可视化的工具更好地管理Kafka。笔者将目光瞄准了KafkaManager。安装Kafka一、下载Kafka前往http:kafka

公司使用到了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 &

  • 启动Kafka。启动完Zookeeper后,即可启动Kafka。执行如下命令即可。

    bin/kafka-server-start.sh config/server.properties &

三、测试Kafka

  • 创建一个Topic

    bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

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

    Created topic "test".

  • 查看创建的Topic

    bin/kafka-topics.sh --list --zookeeper localhost:2181

  • 创建一个消息生产者

    bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

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

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

    bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

    如消费者可收到在生产者中输入的内容,则说明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。在macOS中,执行如下命令即可安装sbt。对于其他操作系统,可参考官方文档进行安装:http://www.scala-sbt.org/0.13/docs/Setup.html

    brew install sbt

  • 解压源码

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

    sbt clean dist

    由于伟大的墙,尽管我为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 &

    如提示

    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)

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

    akka {loggers = ["akka.event.slf4j.Slf4jLogger"]loglevel = "INFO"
    }

    改为:

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

    这样就不会报超时了。

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

配置Kafka Manager

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

  • 点击http://localhost:9000 导航栏上的"Add Cluster"按钮,
  • 配置Kafka集群名称、Kafka集群的ZK列表等参数,如下图:
kafka-manager-configuration.png
  • 这样即可监控你的Kafka集群啦。
参考文档
  • 搭建单机版Kafka:http://blog.csdn.net/jingshuigg/article/details/24439637
  • Kafka Manager的GitHub:https://github.com/yahoo/kafka-manager
  • Kafka Manager启动报超时异常的Issue:https://github.com/yahoo/kafka-manager/issues/256

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




推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
author-avatar
圈儿丫头1986
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有