一、kafka-manager简介

项目地址为:https://github.com/yahoo/kafka-manager

为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager。这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。它支持管理多个集群、选择副本、副本重新分配以及创建Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能:

  1. 管理kafka集群
  2. 方便集群状态监控 (包括topics, consumers, offsets, brokers, replica distribution, partition distribution)
  3. 方便选择分区副本
  4. 配置分区任务,包括选择使用哪些brokers
  5. 可以对分区任务重分配
  6. 提供不同的选项来创建及删除topic
  7. Topic list会指明哪些topic被删除
  8. 批量产生分区任务并且和多个topic和brokers关联
  9. 批量运行多个主题对应的多个分区
  10. 向已经存在的主题中添加分区
  11. 对已经存在的topic修改配置
  12. 可以在broker level和topic level的度量中启用JMX polling功能
  13. 可以过滤在ZK上没有ids/ owners/offsets/ directories的consumer

二、下载kafka-manager源码包

源码包下载地址:https://github.com/yahoo/kafka-manager/archive/2.0.0.2.tar.gz

github上没有提供安装包,需要我们自行编译之后在进行安装,需要现在sbt编译工具。

再此我已经编译好安装包了kafka-manager-2.0.0.2.zip,可以直接下载使用:https://pan.baidu.com/s/10hiEuECfZ6UuI4yIY1dluw

关注微信公众号回复【kafka manager】获取提取码

看到我这篇文章,就不要去编译,没意思还浪费时间,直接从百度网盘链接下载编译好的安装包就行了,编译步骤参考一下就行了。

三、安装sbt-1.3.5

[root@localhost ~]# curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo
[root@localhost ~]# mv bintray-sbt-rpm.repo /etc/yum.repos.d/
[root@localhost ~]# yum install sbt -y

因为Kafka-manager使用的Play框架,为了编译的速度更快,先配置sbt的maven仓库,由于默认仓库速度较慢,因此使用aliyun提供的maven仓库。

修改仓库地址:(sbt 默认下载库文件很慢, 还时不时被打断,不行的话就重试),我们可以在用户目录下创建 touch ~/.sbt/repositories, 填上阿里云的镜像   # vi ~/.sbt/repositories

cd ~
mkdir .sbt
touch ~/.sbt/repositories
vi ~/.sbt/repositories

内容:

[repositories]
local
#oschina: http://maven.oschina.net/content/groups/public/
aliyun-nexus: http://maven.aliyun.com/nexus/content/groups/public/
jcenter: http://jcenter.bintray.com/
typesafe-ivy-releases: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
maven-central: http://repo1.maven.org/maven2/

以上配置文件解释顺序是:本地→阿里云镜像→jcenter→typesafe-ivy-releases→Maven主镜像。如果需要添加公司的maven镜像,可以按照 key: value 的形式添加,key 的命名没有要求(暂时没注意到,但是最好也不要用什么特殊符号吧)

验证:检查sbt是否安装成功,查看命令输出,发现已经成功可以从maven.aliyun.com/nexus下载到依赖即表示成功

sbt -version

需要很长时间~耐心等待,我这里已经执行过了,再次执行显示如下:

[root@localhost ~]# sbt -version
[info] [launcher] getting org.scala-sbt sbt 1.3.5 (this may take some time)...
:: loading settings :: url = jar:file:/usr/share/sbt/bin/sbt-launch.jar!/org/apache/ivy/core/settings/ivysettings.xml
:: retrieving :: org.scala-sbt#boot-app
confs: [default]
81 artifacts copied, 0 already retrieved
[info] [launcher] getting Scala 2.12.10 (for sbt)...
:: retrieving :: org.scala-sbt#boot-scala
confs: [default]
6 artifacts copied, 0 already retrieved
sbt version in this project: 1.3.5
sbt script version: 1.3.5

四、解压编译kafka-manager源码包

在【二、下载kafka-manager源码包】步骤中我们已经已下载了源码包,

解压kafka-manager源码包:

[root@localhost soft]# tar -zxvf kafka-manager-2.0.0.2.tar.gz

解压后显示目录如下

[root@localhost soft]# ll
总用量 56
drwxrwxr-x. 9 root root 109 4月 12 2019 app
-rw-rw-r--. 1 root root 4242 4月 12 2019 build.sbt
drwxrwxr-x. 2 root root 108 4月 12 2019 conf
drwxrwxr-x. 2 root root 156 4月 12 2019 img
-rw-rw-r--. 1 root root 11307 4月 12 2019 LICENSE
drwxrwxr-x. 2 root root 49 4月 12 2019 project
drwxrwxr-x. 5 root root 54 4月 12 2019 public
-rw-rw-r--. 1 root root 8686 4月 12 2019 README.md
-rwxrwxr-x. 1 root root 21353 4月 12 2019 sbt
drwxrwxr-x. 4 root root 37 4月 12 2019 src
drwxrwxr-x. 5 root root 51 4月 12 2019 test

然后执行:

./sbt clean dist

编译时间会很长,需要耐心等待,可以到~/.sbt/boot/update.log 查看sbt更新日志。sbt更新好,就开始下载各种jar包,最后看到:[info] Your package is ready in /home/soft/kafka-manager-2.0.0.2/target/universal/kafka-manager-2.0.0.2.zip  证明编译好了。

我这个已经编译过了,由于记录笔记,我再次进行了编译就很快了,日志如下:

[root@localhost kafka-manager-2.0.0.2]# ./sbt clean dist
Downloading sbt launcher for 1.2.8:
From http://repo.scala-sbt.org/scalasbt/maven-releases/org/scala-sbt/sbt-launch/1.2.8/sbt-launch.jar
To /root/.sbt/launchers/1.2.8/sbt-launch.jar
Getting org.scala-sbt sbt 1.2.8 (this may take some time)...
:: retrieving :: org.scala-sbt#boot-app
confs: [default]
79 artifacts copied, 0 already retrieved (28496kB/1360ms)
Getting Scala 2.12.7 (for sbt)...
:: retrieving :: org.scala-sbt#boot-scala
confs: [default]
5 artifacts copied, 0 already retrieved (19715kB/347ms)
[info] Loading settings for project kafka-manager-2-0-0-2-build from plugins.sbt ...
[info] Loading project definition from /home/soft/kafka-manager-2.0.0.2/project
[info] Updating ProjectRef(uri("file:/home/soft/kafka-manager-2.0.0.2/project/"), "kafka-manager-2-0-0-2-build")...
[info] Done updating.
[warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings.
[info] Loading settings for project root from build.sbt ...
[info] Set current project to kafka-manager (in build file:/home/soft/kafka-manager-2.0.0.2/)
[success] Total time: 0 s, completed 2019-12-25 12:27:23
[info] Packaging /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/kafka-manager_2.12-2.0.0.2-sources.jar ...
[info] Done packaging.
Warning: node.js detection failed, sbt will use the Rhino based Trireme JavaScript engine instead to run JavaScript assets compilation, which in some cases may be orders of magnitude slower than using node.js.
[info] Updating ...
[info] downloading http://maven.aliyun.com/nexus/content/groups/public/org/scala-lang/modules/scala-parser-combinators_2.12/1.0.7/scala-parser-combinators_2.12-1.0.7.jar ...
[info] [SUCCESSFUL ] org.scala-lang.modules#scala-parser-combinators_2.12;1.0.7!scala-parser-combinators_2.12.jar(bundle) (2108ms)
[info] Done updating.
[warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings.
[info] Wrote /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/kafka-manager_2.12-2.0.0.2.pom
[info] Main Scala API documentation to /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/api...
[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.8. Compiling...
[info] Compilation completed in 38.745s.
model contains 604 documentable templates
[info] Main Scala API documentation successful.
[info] Compiling 131 Scala sources and 2 Java sources to /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/classes ...
[info] Done compiling.
[info] Packaging /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/kafka-manager_2.12-2.0.0.2-javadoc.jar ...
[info] Done packaging.
[info] LESS compiling on 1 source(s)
[info] Packaging /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/kafka-manager_2.12-2.0.0.2.jar ...
[info] Done packaging.
[info] Packaging /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/kafka-manager_2.12-2.0.0.2-web-assets.jar ...
[info] Done packaging.
[info] Packaging /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/kafka-manager_2.12-2.0.0.2-sans-externalized.jar ...
[info] Done packaging.
[success] All package validations passed
[info] Your package is ready in /home/soft/kafka-manager-2.0.0.2/target/universal/kafka-manager-2.0.0.2.zip
[success] Total time: 355 s, completed 2019-12-25 12:33:19

五、安装kafka-manager

由于使用kafka-manager是在JDK8基础上的,所以先安装JDK8,JDK安装不再叙述。

由于【四、解压编译kafka-manager源码包】步骤已经编译完成,我们可以把 /home/soft/kafka-manager-2.0.0.2/target/universal/kafka-manager-2.0.0.2.zip 的安装包移动到你要安装的地方解压。

在此我解压到/usr/local/目录下

unzip kafka-manager-2.0.0.2.zip -d /usr/local/

解压后查看目录如下:

[root@localhost kafka-manager-2.0.0.2]# ll
总用量 28
drwxr-xr-x. 2 root root 4096 12月 25 14:57 bin
drwxr-xr-x. 2 root root 108 12月 25 14:57 conf
drwxr-xr-x. 2 root root 8192 12月 25 14:57 lib
-rw-r--r--. 1 root root 8686 4月 12 2019 README.md
drwxr-xr-x. 3 root root 17 12月 25 14:57 share

接下来就是配置kafka-manager了

vi conf/application.conf 
#修改kafka-manager.zkhosts列表为自己的zk节点
kafka-manager.zkhosts="192.168.184.133:2181"
#添加http访问端口配置,默认9000
http.port=9090

想要看到读取,写入速度需要开启JMX,修改kafka-server-start.sh 添加一行即可:添加JMX端口8999

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
export JMX_PORT="8999"
fi

注意:每个kafka broker都需要修改,修改后进行重启kafka。

最后,启动kafka-manager

cd kafka-manager/bin

nohup ./kafka-manager -Dconfig.file=../conf/application.conf >/dev/null 2>&1 & 

六、测试kafka-manager

访问:http://192.168.184.133:9090/

1、新建Cluster

点击【Cluster】>【Add Cluster】打开如下添加集群配置界面:输入集群的名字(如KafkaCluster)和 Zookeeper 服务器地址(如192.168.184.133:2181/kafka),选择最接近的Kafka版本

其他broker的配置可以根据自己需要进行配置,默认情况下,点击【保存】时,会提示几个默认值为1的配置错误,需要配置为>=2的值。提示如下。

添加完集群之后查看

topics相关:

更多页面功能自己点点就行了。。。

更多信息查看github上kafka-manager的README.md:https://github.com/yahoo/kafka-manager/blob/master/README.md

Centos7编译安装kafka-manager-2.0.0.2的更多相关文章

  1. CentOS7 编译安装 Git 服务器 Centos 7.0 + Git 2.2.0 + gitosis (实测 笔记)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 服务器IP:192.168.1.31 域 ...

  2. Centos7编译安装lnmp(nginx1.10 php7.0.2)

    我使用的是阿里云的服务器 Centos7 64位的版本 1. 连接服务器 这个是Xshell5的版本 安装好之后我们开始连接服务器 2. 安装nginx 首先安装nginx的依赖 yum instal ...

  3. centos7.6环境zabbix3.2源码编译安装版升级到zabbix4.0长期支持版

    zabbix3.2源码编译安装版升级到zabbix4.0长期支持版 项目需求: .2版本不再支持,想升级成4.0的长期支持版 环境介绍: zabbix服务端是编译安装的,数据库和web在一台机器上 整 ...

  4. 记 Mac Pro 系统升级后,编译安装 PHP-5.6.28 / PHP-7.0 报错修复过程

    买 Mac Pro 的时候,系统为 OS X 10.11.5,编译 PHP-5.6.21 的时候,也遇到一些坑,安装过程记录如下: Mac Pro 编译安装 PHP 5.6.21 及 问题汇总 后来, ...

  5. Centos7.5安装kafka集群

    Tags: kafka Centos7.5安装kafka集群 Centos7.5安装kafka集群 主机环境 软件环境 主机规划 主机安装前准备 安装jdk1.8 安装zookeeper 安装kafk ...

  6. CentOS7编译安装Nginx-1.8.1和编译参数

    CentOS7编译安装Nginx-1.8.1和编译参数 Web服务器Nginx    LNMP是一组众所周知的Web网站服务器架构环境,即由Linux+Nginx+MySQL+PHP(MySQL有时也 ...

  7. centos7编译安装MySQL5.7.9

    title: centos7编译安装MySQL5.7.9 date: 2016-05-12 16:20:17 tags: --- Centos7编译安装mysql5.7.9 mysql5.7有更好的性 ...

  8. centos7 编译安装新版LNMP环境

    centos7 编译安装新版LNMP环境 环境版本如下: 1.系统环境:Centos 7 x86_64 2.NGINX:nginx-1.11.3.tar.gz 3.数据库:mariadb-10.0.2 ...

  9. CentOS7编译安装httpd-2.4.41 php7.3

    CentOS7编译安装httpd-2.4.41 php7.3 安装参考环境: CentOS Linux release 7.5.1804 (Core) 一.安装依赖包 httpd安装的依赖包 # yu ...

  10. Centos7 编译安装PHP7

    Centos7 编译安装PHP7 编译安装的方式可以让组件等设置更加合理,但需要你对PHP的代码及各种配置非常的熟悉,以下为大致的安装流程,大家可以参考 1.下载编译工具 yum groupinsta ...

随机推荐

  1. asp.net mvc获取http body中的json

    今天遇到一个对方直接post 一共json对象字符串过来的场景.按照以前的旧方案方法可以直接在request.inputstream里面读取,然后反序列化即可.(当然估计ASP.NET MVC应该有更 ...

  2. PHP 中 16 个魔术方法详解

    PHP 中 16 个魔术方法详解   前言 PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __constru ...

  3. 呼叫到达率100%,网易云信信令SDK免费上线!

    近期,网易云信推出一款稳定可靠.到达率高.扩展性较强的信令通道产品--信令SDK.它能够提供可靠的消息通道,可用于搭建音视频场景下的呼叫邀请机制.信令SDK目前兼容市面上所有主流的音视频SDK,呼叫到 ...

  4. 解决 IDEA 无法提示导入 java.util.Date 的问题

    之前有一段时间在使用IDEA的时候,发现通过快捷键Alt + Enter导入并没有提示有java.util.Date的包,仅仅只有java.sql.Date的包.于是每次使用都需要通过手写import ...

  5. 小匠第二周期打卡笔记-Task03

    一.过拟合欠拟合及其解决方案 知识点记录 模型选择.过拟合和欠拟合: 训练误差和泛化误差: 训练误差 :模型在训练数据集上表现出的误差, 泛化误差 : 模型在任意一个测试数据样本上表现出的误差的期望, ...

  6. 2018-2019-20175334实验四《Android程序设计》实验报告

    2018-2019-20175334实验四<Android程序设计>实验报告 一.实验内容及步骤 实验四 Android程序设计-1 Android Stuidio的安装测试: 参考< ...

  7. 前后端分离构架 与 json ajax简介

    前后端分离 传统开发方式 曾几何时,JSP和Servlet为Java带来了无限风光,一时间大红大紫,但随着互联网的不断发展,这样的开发方式逐渐显露其弊端,在移动互联网炙手可热的今天,应用程序对于后台服 ...

  8. redis本地能访问外网不能访问问题

    1.确认配置文件bind的ip是否正确,一般想要外网能访问,需要填写为0.0.0.0,表示监听任何ip 注意任何人都能访问,一定要开启密码 requirepass 你的密码 2.确认protected ...

  9. 本地cmd连接远程mysql数据库

    一.登录远程mysql 输入mysql -h要远程的IP地址 -u设置的MySQL用户名 -p登录用户密码 例如:mysql -h 192.168.1.139 -u root -p dorlocald ...

  10. php 扩展引入

    继承引入参数 <?php class A { private $name; private $age; private $time; public function __construct($n ...