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

孤街醉人 提交于 2021-02-07 12:35:14

一.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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!