一.*kafka manager简介*
1>.什么是Kafka Manager
1 2 3 4 5
| KafkaManager是一个用于管理Kafka的web工具,由yahoo开发并开源。
雅虎官网GitHub项目:https://github.com/yahoo/kafka-manager。需要安装jdk1.8版本。
我们可以参考官方的文档进行编译和简单配置即可使用。
|
2>.kafka manager支持功能
![复制代码](https://common.cnblogs.com/images/copycode.gif
1 2 3 4 5 6 7 8 9 10 11
| 其提供了如下管理和监控能力: 管理多集群 查看集群状态(topics,consumers,offsets,brokers等) 执行倾向副本选举 生成分区重分布计划(自动和手动) 执行分区重分布 多topic批量生成分区重分布计划,执行分区重分布 使用指定参数创建topic 删除topic(需要集群参数开启) 现有topic增加分区 通过JMX获取broker层面和topic层面指标
|
二.部署kafka manager
**1>.**下载kafka-manager
1 2 3 4
| [root@node108.yinzhengjie.org.cn ~]# ll total 67092 -rw-r--r-- 1 root root 68699247 Jul 13 22:08 kafka-manager-1.3.0.7.zip #这里提供编译好了的包,下载后可以直接使用,可以不用去sbt编译。 [root@node108.yinzhengjie.org.cn ~]#
|
2>.解压kafka-manager
[root@node108.yinzhengjie.org.cn ~]# yum -y install unzip zip
[root@node108.yinzhengjie.org.cn ~]# unzip kafka-manager-1.3.0.7.zip
3>.将解压后的文件放入到你存放软件目录的位置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| [root@node108.yinzhengjie.org.cn ~]# ll total 67092 drwxr-xr-x 6 root root 70 Jul 13 22:11 kafka-manager-1.3.0.7 -rw-r--r-- 1 root root 68699247 Jul 13 22:08 kafka-manager-1.3.0.7.zip [root@node108.yinzhengjie.org.cn ~]# [root@node108.yinzhengjie.org.cn ~]# mv kafka-manager-1.3.0.7 /home/softwares/kafka-manager [root@node108.yinzhengjie.org.cn ~]# [root@node108.yinzhengjie.org.cn ~]# ll /home/softwares/kafka-manager/ total 20 drwxr-xr-x 2 root root 52 Jul 13 22:11 bin drwxr-xr-x 2 root root 81 Jul 13 22:11 conf drwxr-xr-x 2 root root 8192 Jul 13 22:11 lib -rw-r--r-- 1 root root 6323 Apr 5 2016 README.md drwxr-xr-x 3 root root 17 Jul 13 22:11 share [root@node108.yinzhengjie.org.cn ~]# [root@node108.yinzhengjie.org.cn ~]# ll total 67092 -rw-r--r-- 1 root root 68699247 Jul 13 22:08 kafka-manager-1.3.0.7.zip [root@node108.yinzhengjie.org.cn ~]# [root@node108.yinzhengjie.org.cn ~]#
|
4>.修改kafka的配置文件
1 2 3 4 5 6 7
| [root@node108.yinzhengjie.org.cn ~]# [root@node108.yinzhengjie.org.cn ~]# grep kafka-manager.zkhosts /home/softwares/kafka-manager/conf/application.conf | head -1 kafka-manager.zkhosts="node106.yinzhengjie.org.cn:2181,node107.yinzhengjie.org.cn:2181,node108.yinzhengjie.org.cn:2181/kafka01" [root@node108.yinzhengjie.org.cn ~]# [root@node108.yinzhengjie.org.cn ~]# grep port /home/softwares/kafka-manager/conf/application.conf | head -1 http.port=8888 [root@node108.yinzhengjie.org.cn ~]#
|
5>.每个kafka broker都需要开启JMX(想要看到kafka集群的读取河写入速度就必须开启JMX,),需要编辑kafka启动脚本
1 2 3 4 5 6 7 8
| [root@node106.yinzhengjie.org.cn ~]# vi /home/softwares/kafka_2.11-0.10.2.1/bin/kafka-server-start.sh [root@node106.yinzhengjie.org.cn ~]# [root@node106.yinzhengjie.org.cn ~]# scp /home/softwares/kafka_2.11-0.10.2.1/bin/kafka-server-start.sh node107.yinzhengjie.org.cn:/home/softwares/kafka_2.11-0.10.2.1/bin/kafka-server-start.sh kafka-server-start.sh 100% 1627 1.3MB/s 00:00 [root@node106.yinzhengjie.org.cn ~]# [root@node106.yinzhengjie.org.cn ~]# scp /home/softwares/kafka_2.11-0.10.2.1/bin/kafka-server-start.sh node108.yinzhengjie.org.cn:/home/softwares/kafka_2.11-0.10.2.1/bin/kafka-server-start.sh kafka-server-start.sh 100% 1627 2.0MB/s 00:00 [root@node106.yinzhengjie.org.cn ~]#
|
6>.启动kafka-manager(kafka和zookeeper也需要启动起来哟~尤其是zookeeper必须是得运行的)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| [root@node108.yinzhengjie.org.cn ~]# [root@node108.yinzhengjie.org.cn ~]# nohup /home/softwares/kafka-manager/bin/kafka-manager -java-home /home/softwares/jdk1.8.0_201 -Dconfig.file=/home/softwares/kafka-manager/conf/application.conf >> /home/softwares/kafka-manager/kafka_manager.log 2>&1 & [1] 3753 [root@node108.yinzhengjie.org.cn ~]# [root@node108.yinzhengjie.org.cn ~]# jps 3826 Jps 3753 ProdServerStart [root@node108.yinzhengjie.org.cn ~]#
[root@node108.yinzhengjie.org.cn ~]# tail -100f /home/softwares/kafka-manager/kafka_manager.log
.....
[info] o.a.z.ZooKeeper - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib [info] o.a.z.ZooKeeper - Client environment:java.io.tmpdir=/tmp [info] o.a.z.ZooKeeper - Client environment:java.compiler=<NA> [info] o.a.z.ZooKeeper - Client environment:os.name=Linux [info] o.a.z.ZooKeeper - Client environment:os.arch=amd64 [info] o.a.z.ZooKeeper - Client environment:os.version=3.10.0-957.el7.x86_64 [info] o.a.z.ZooKeeper - Client environment:user.name=root [info] o.a.z.ZooKeeper - Client environment:user.home=/root [info] o.a.z.ZooKeeper - Client environment:user.dir=/home/softwares/kafka-manager [info] o.a.z.ZooKeeper - Initiating client connection, connectString=node106.yinzhengjie.org.cn:2181,node107.yinzhengjie.org.cn:2181,node108.yinzhengjie.org.cn:2181/kafka01 sessionTimeout=60000 watcher=org.apache.curator.ConnectionState@65e0186a [info] o.a.z.ClientCnxn - Opening socket connection to server node106.yinzhengjie.org.cn/172.30.1.106:2181. Will not attempt to authenticate using SASL (unknown error) [info] o.a.z.ClientCnxn - Socket connection established to node106.yinzhengjie.org.cn/172.30.1.106:2181, initiating session [info] o.a.z.ClientCnxn - Session establishment complete on server node106.yinzhengjie.org.cn/172.30.1.106:2181, sessionid = 0x6a00001622cf0000, negotiated timeout = 40000 [info] k.m.a.KafkaManagerActor - zk=node106.yinzhengjie.org.cn:2181,node107.yinzhengjie.org.cn:2181,node108.yinzhengjie.org.cn:2181/kafka01 [info] k.m.a.KafkaManagerActor - baseZkPath=/kafka-manager [info] k.m.a.KafkaManagerActor - Started actor akka://kafka-manager-system/user/kafka-manager [info] k.m.a.KafkaManagerActor - Starting delete clusters path cache... [info] k.m.a.DeleteClusterActor - Started actor akka://kafka-manager-system/user/kafka-manager/delete-cluster [info] k.m.a.DeleteClusterActor - Starting delete clusters path cache... [info] k.m.a.KafkaManagerActor - Starting kafka manager path cache... [info] k.m.a.DeleteClusterActor - Adding kafka manager path cache listener... [info] k.m.a.DeleteClusterActor - Scheduling updater for 10 seconds [info] k.m.a.KafkaManagerActor - Adding kafka manager path cache listener... [info] play.api.Play - Application started (Prod) [info] p.c.s.NettyServer - Listening for HTTP on /0.0.0.0:8888 #说明我们的kafka_manager服务端口已经监听啦,我们可以直接去访问啦 [info] k.m.a.KafkaManagerActor - Updating internal state... [info] k.m.a.KafkaManagerActor - Updating internal state... [info] k.m.a.KafkaManagerActor - Updating internal state... ^C [root@node108.yinzhengjie.org.cn ~]#
|
7>.登陆webUI查看相应的信息,如果出现以下界面说明你部署成功啦!
**三.**WEB端配置kafka-manager
1>.点击添加集群
2>.配置集群(集群名称不支持中文,只支持ASSCI编码)
3>.其他参数保持默认,点击保存即可
4>.配置成功
5>.点击”yinzhengjie-kafka”
6>.查看自定义的集群信息
7>.*查看broker信息*
8>.*查看topic信息*
**
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| 以上输出信息关键参数说如下: Operations列表参数说明: Generate Partition Assignments: 对多个topic来进行分区重分布计划的生成,知道就好,不推荐使用。
Run Partition Assignments: 对多个topic分区执行重分布计划,知道就好,不推荐使用。
Add Partitions: 对多个topic来进行添加分区操作,生成环境并不建议大家这样搞,避免误操作。
Topics列表参数说明: Topic: 表示topic名称。 __consumer_offsets是kafka内置保存consumer offset的topic.
Partitions: topic对应的分区数
Brokers: topic对应的broker数
Brokers Spread%: 指broker的分布比例,计算公式:用topic的分区分布的broker数/总的broker数量。
Brokers Skew %: Brokers的偏斜比例,计算公式:(Broker最多的分区数/Brokers最少的分区数) -1 Brokers Leader Skew%: Brokers的leader偏斜比例,计算公式:(Broker最多的leader分区数/Brokers最少leader的分区数) -1 Replicas: 副本因子,即副本数。
Under Replicated %: 副本不足的比例,计算公式:副本不足的分区数/总分区数
Producer Message/Sec: 每秒产生的消息数量。
Summed Recent Offsets: 当前总计的消费偏移量。
|
*9>.创建topic*
*10>.topic创建完成*
**
*11>.topic操作*
*12>.点击”Reassign Partitions”,查看分区重分布的进度*
*13>.点击”Preferred Replica Election”可以执行倾向副本选举,一般我们在配置文件配置好了就不需要在这里手动触发啦!*
*14>.查看消费者组信息*
1 2 3 4 5 6 7 8 9 10 11 12
| Consumer: 表示的是消费者组。
Type: ZK表示offset信息保存在zookeeper中。 KF表示offset信息保存在kafka中。
Topic it consumes from: 已经消费的分区的coverage: 消费的覆盖率。 已经消费的lag: 消费的延迟大小。有可能会看到负值,
|
*15>.查看已经消费者的详细信息*
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Partition 分区编号。 LogSize 分区大小 Consumer Offset 消费的偏移量。 Lag 延迟大小,改值可能是负数。
Consumer Instance Owner 消费者实例拥有者。
|