张子阳的博客

首页 读书 技术 店铺 关于
张子阳的博客 首页 读书 技术 店铺 关于

Kafka分布式消息系统(Kafka Manager) - Part.5

2018-10-16 作者: 张子阳 分类: 分布式系统

在前一节中,我们通过控制台访问了Kafka集群,对topic进行了创建、删除、查看、读写等操作。使用控制台的方式简单快捷,但不够直观。Kafka官方并没有提供一个管理的UI界面,但存在很多第三方UI,比较流行的是Yahoo的Kafka-manager 和 Landoop的Kafka-topics-ui。这篇文章简单介绍一下Kafka-manager。

因为kafka-manager已经运行了很久后我才回头补这篇文档,所以一些安装的细节可能忘记了,等以后需要重新安装时,我再完善一下。

安装Kafka manager

Kafka manager的github地址是:https://github.com/yahoo/kafka-manager。因为这里已经有很多文档了,所以我仅就值得注意的一些问题说一下。

Kafka manager是由Scala开发的,需要java环境。下载好源码后,需要使用sbt工具生成一下。sbt不需要额外安装,在下载好的源码包里就已经包含了。

下载kafka manager源码包:kafka-manager-master.zip,解压缩,然后进入 kafka-manager-master文件夹,执行下面的命令进行生成:

# ./sbt clean dist

[info] Loading project definition from /root/downloads/kafka-manager-master/project
[info] Updating {file:/root/downloads/kafka-manager-master/project/}kafka-manager-master-build...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
... 省略50行
[success] Total time: 58 s, completed 2018-10-16 14:53:26

生成成功后,在源码的 target/universal 文件夹下可以找到 kafka-manager-1.3.3.21.zip 文件。

# ls target/universal

kafka-manager-1.3.3.21.zip  scripts

将它解压缩到软件的安装目录,比如说/opt:

# unzip target/universal/kafka-manager-1.3.3.21.zip -d /opt

运行Kafka manager

在运行kafka manager之前,先要配置一下conf/application.conf,主要修改和添加下面两项。

# vim conf/application.conf

kafka-manager.zkhosts="zookeeper1:2181,zookeeper2:2181,zookeeper3:2181/kafka"
http.port=19000

kafka-manager.zkhosts是zookeeper服务器的地址及目录;http.port是http访问端口。

除此以外,kafka使用了JMX(Java Management Extensions,Java管理扩展)来进行运行状态监控,kafka-manager通过kafka的JMX来获取其部分的运行状态。开启JMX,需要编辑 $KAFKA_HOME/bin/kafka-server-start.sh,在顶部加入下面的内容。注意,这个是kafka安装目录下的启动脚本,这里和kafka-manager没有关系。

# vim $KAFKA_HOME/bin/kafka-server-start.sh

export JMX_PORT="9999" # mention port # you want to use for JMX. Ex. 9093 or 9999,
export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT -Djava.rmi.server.hostname=kafka1 -Djava.net.preferIPv4Stack=true"

修改完成后,需要执行 kafka-server-start.sh,重新启动kafka。

上面的-Djava.rmi.server.hostname=kafka1,要改成你自己的kafka集群地址。

接下来回到kafka-manager的安装目录,执行下面的脚本启动它:

# nohup bin/kafka-manager &

查看Kafka manager

启动完成后,可以使用前面配置的http.port端口来访问它,例如:http://localhost:19000。

kafka manager支持多集群管理,因此进入后第一步就是添加集群(Add Cluster),成功后就可以进入查看详情。这部分的操作稍微熟悉一下就能掌握,就不一一演示了,下面是系统的部分截图:

集群列表
集群详情
Broker列表
Topic列表
Topic详情

至此,就完成了kafka-manager的配置,通过kafka-manager,可以更清晰地查看集群的运行状态。以及对Topic进行查看和操作。对Topic的操作这里就不再演示了,当你搭建成功后,可以自己尝试一下。

感谢阅读,希望这篇文章能给你带来帮助!