运维开发网

部署Kafka集群管理工具kafka-manager

运维开发网 https://www.qedev.com 2021-02-07 12:44 出处:51CTO 作者:qianghong000
一.kafka-manager简介kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作。具体支持以下内容:管理多个集群轻松检查群集状态(主题,消费者,偏移,代理,副本分发,分区分发)运行首选副本选举使用选项生成分区分配以选择要使用的代理运行分区重新分配(基于生成的分配)使用可选主题配置创建主题(0.8.1.1具有与0.8.

一.kafka-manager简介

kafka-manager是目前最受欢迎的kafka集群管理工具,它最早由雅虎开源,功能非常齐全,展示的数据非常丰富。同时用户能够在界面上执行一些简单的集群管理操作。
    不过雅虎已经将其更名为CMAK(Cluster Manager for Apache Kafka)。具体支持以下内容:
  • 管理多个集群
  • 轻松检查集群状态(主题,消费者,偏移,代理,副本分发,分区分发)
  • 运行首选副本选举
  • 使用选项生成分区分配以选择要使用的代理
  • 运行分区重新分配(基于生成的分配)
  • 使用可选主题配置创建主题(0.8.1.1具有与0.8.2+不同的配置)
  • 删除主题(仅支持0.8.2+并记住在代理配置中设置delete.topic.enable = true)
  • 主题列表现在指示标记为删除的主题(仅支持0.8.2+)
  • 批量生成多个主题的分区分配,并可选择要使用的代理
  • 批量运行重新分配多个主题的分区
  • 将分区添加到现有主题
  • 更新现有主题的配置
  • 选择性为 broker level and topic level metrics 开放JMX polling
  • 选择性过滤掉在zookeeper中没有ids|owners|offsets|directories的消费者

CMAK管理工具支持的范围

  • 支持 Kafka 0.8以上版本
  • Java 11+
  • zookeeper必须是3.5+版本。

    可能有些会说要求这么多,还涉及zookeeper版本,那么你可以选择Kafka-manager的旧版本,比如1.3.3.23版本。

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

二.kafka-manager安装

1.安装sbt

1)yum安装sbt(因为kafka-manager需要sbt编译)

$ curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo
$ sudo mv bintray-sbt-rpm.repo /etc/yum.repos.d/
$ sudo yum install sbt

2)修改仓库地址:(sbt 默认下载库文件很慢, 还时不时被打断)

# mkdir -p ~/.sbt
# vim ~/.sbt/repositories
##############################
[repositories]
  local
  huaweicloud-maven: https://repo.huaweicloud.com/repository/maven/
  jcenter: https://jcenter.bintray.com
  typesafe: https://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
  maven-central: https://repo1.maven.org/maven2/
  sonatype-oss-snapshots

配置sbt加速详见:https://blog.51cto.com/qiangsh/2620294

3)自定义下载位置,在sbt\conf\sbtconfig.txt中末尾添加

vim /usr/share/sbt/conf/sbtconfig.txt
###################################
-Dsbt.boot.directory=/root/.sbt/boot
-Dsbt.global.base=/root/.sbt
-Dsbt.ivy.home=~/root/.sbt/.ivy2

-Dfile.encoding=UTF8
-Dsbt.repository.secure=false
-Dsbt.override.build.repos=true

部署Kafka集群管理工具kafka-manager

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

[root@node ~]$ sbt -version

2.安装CMAK(1.3.3.23版本)

1)下载:

cd /data/packages
wget https://github.com/yahoo/CMAK/archive/1.3.3.23.tar.gz
tar zxvf 1.3.3.23.tar.gz

2)编译安装:

cd CMAK-1.3.3.23
sbt clean dist
# 需要等待一段时间...

unzip target/universal/kafka-manager-1.3.3.23.zip -d /usr/local/

ln -s /usr/local/kafka-manager-1.3.3.23/conf /etc/kafka-manager
ln -s /usr/local/kafka-manager-1.3.3.23/bin/kafka-manager /usr/local/bin/kafka-manager
ln -s /usr/local/kafka-manager-1.3.3.23/bin/kafka-manager /usr/bin/kafka-manager

3)配置:

vim /etc/kafka-manager/application.conf
##########修改下面一行################
kafka-manager.zkhosts="kafka01-ops-prod:2181,kafka02-ops-prod:2181,kafka03-ops-prod:2181"

3.启动

#########启动默认地址是9000也可以通过 -Dhttp.port,指定端口; -Dconfig.file=conf/application.conf指定配置文件:

1)启动脚本:

vim /etc/systemd/system/kafka-manager.service
#########################
[Unit]
Description=kafka-manager

[Service]
Type=simple

User=root
Group=root
ExecStart=/usr/bin/kafka-manager
Restart=always
WorkingDirectory=/usr/local/kafka-manager-1.3.3.23
PIDFile=RUNNING_PID
LimitNOFILE=16384
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target

2)启动

systemctl daemon-reload
systemctl start kafka-manager.service
systemctl status kafka-manager.service

3)验证

# netstat -tnlp |grep 9000
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      78904/java

三、使用配置

1、新建cluster集群

部署Kafka集群管理工具kafka-manager

Enable JMX Polling

是否开启 JMX 轮训,该部分直接影响部分 kafka broker 和 topic 监控指标指标的获取(生效的前提是 kafka 启动时开启了 JMX_PORT。主要影响如下指标的查看:

部署Kafka集群管理工具kafka-manager

2、Enable Active OffsetCache

是否开启 offset 缓存,决定 kafka-manager 是否缓存住 topic 的相关偏移量。

其它参数说明

部署Kafka集群管理工具kafka-manager

部署Kafka集群管理工具kafka-manager

参数名 参数说明 默认值 备注

  • brokerViewUpdatePeriodSeconds Broker视图周期更新时间/单位(s) 30
  • clusterManagerThreadPoolSize 集群管理线程池大小 2
  • clusterManagerThreadPoolQueueSize 集群管理线程池列队大小 100
  • KafkaCommandThreadPoolSize Kafka命令线程池大小 2
  • logkafkaCommandThreadPoolQueueSize logkafka命令线程池列队大小 100
  • logkafkaUpdatePeriodSeconds Logkafka周期更新时间/单位(s) 30
  • partitionOffsetCacheTimeoutSecs Partition Offset缓存过期时间/单位(s) 5
  • brokerViewThreadPoolSize Broker视图线程池大小 8 3 number_of_brokers
  • brokerViewThreadPoolQueue Size Broker视图线程池队列大小 1000 3 total # of partitions across all topics
  • offsetCacheThreadPoolSize Offset缓存线程池大小 8
  • offsetCacheThreadPoolQueueSize Offset缓存线程池列队大小 1000
  • kafkaAdminClientThreadPoolSize Kafka管理客户端线程池大小 8
  • kafkaAdminClientTheadPoolQueue Sizec Kafka管理客户端线程池队列大小 1000
  • kafkaManagedOffsetMetadataCheckMillis Offset元数据检查时间 30000 (这部分解释属自己理解)

    kafkaManagedOffsetGroupCacheSize Offset组缓存大小 100000 (这部分解释属自己理解)

    kafkaManagedOffsetGroupExpireDays Offset组缓存保存时间 7 (这部分解释属自己理解)

    Security Protocol 安全协议 PLAINTEXT [SASL_PLAINTEXT,SASL_SSL,SSL]

具体可以参考如下:https://blog.csdn.net/u011089412/article/details/87895652

0

精彩评论

暂无评论...
验证码 换一张
取 消