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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章