0%

kafka集群监控之kafka-manager部署(ProdServerStart)

一.*kafka manager简介*

1>.什么是Kafka Manager

1
2
3
4
5
KafkaManager是一个用于管理Kafka的web工具,由yahoo开发并开源。

雅虎官网GitHub项目:https://github.com/yahoo/kafka-manager。需要安装jdk1.8版本。

我们可以参考官方的文档进行编译和简单配置即可使用。

img

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层面指标

img

二.部署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

img [root@node108.yinzhengjie.org.cn ~]# yum -y install unzip zip

img [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查看相应的信息,如果出现以下界面说明你部署成功啦!

img

**三.**WEB端配置kafka-manager

1>.点击添加集群

img

2>.配置集群(集群名称不支持中文,只支持ASSCI编码)

img

3>.其他参数保持默认,点击保存即可

img

4>.配置成功

img

5>.点击”yinzhengjie-kafka”

img

6>.查看自定义的集群信息

img

7>.*查看broker信息*

img

8>.*查看topic信息*

*img*

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*

img

*10>.topic创建完成*

*img*

*11>.topic操作*

img

*12>.点击”Reassign Partitions”,查看分区重分布的进度*

img

*13>.点击”Preferred Replica Election”可以执行倾向副本选举,一般我们在配置文件配置好了就不需要在这里手动触发啦!*

img

*14>.查看消费者组信息*

img

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>.查看已经消费者的详细信息*

img

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Partition    
分区编号。

LogSize
分区大小

Consumer Offset
消费的偏移量。

Lag
延迟大小,改值可能是负数。

Consumer Instance Owner
消费者实例拥有者。

Welcome to my other publishing channels