1. 程式人生 > >安裝Kafka-manager

安裝Kafka-manager

partition executor info exc 技術分享 src version 啟用 ons

前言

最近平臺部署了Kafka集群,為了方便管理於是安裝了yahoo開源的一款基於web的管理工具。

安裝kafka-manager

前提要求

  • JDK1.8+
  • 編譯的主機要能夠連接外網

1. 下載編譯kafka-manager源碼包

$ git clone [email protected]:yahoo/kafka-manager.git
$ cd kafka-manager
$ sbt clean dist

編譯完成:
技術分享圖片

2. 修改配置文件

配置文件路徑:kafka-manager/conf/application.conf
配置文件內容:

# Copyright 2015 Yahoo Inc. Licensed under the Apache License, Version 2.0
# See accompanying LICENSE file.

# This is the main configuration file for the application.
# ~~~~~

# Secret key
# ~~~~~
# The secret key is used to secure cryptographics functions.
# If you deploy your application to several instances be sure to use the same key!
play.crypto.secret="^<csmm5Fx4d=r2HEX8pelM3iBkFVv?k[mc;IZE<_Qoq8EkX_/7@Zt6dP05Pzea3U"
play.crypto.secret=${?APPLICATION_SECRET}

# The application languages
# ~~~~~
play.i18n.langs=["en"]

play.http.requestHandler = "play.http.DefaultHttpRequestHandler"
play.http.context = "/"
play.application.loader=loader.KafkaManagerLoader

kafka-manager.zkhosts="10.60.196.222:2181,10.60.196.223:2181,10.60.196.224:2181"
kafka-manager.zkhosts=${?ZK_HOSTS}
pinned-dispatcher.type="PinnedDispatcher"
pinned-dispatcher.executor="thread-pool-executor"
application.features=["KMClusterManagerFeature","KMTopicManagerFeature","KMPreferredReplicaElectionFeature","KMReassignPartitionsFeature"]

akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "INFO"
}

basicAuthentication.enabled=true
basicAuthentication.enabled=${?KAFKA_MANAGER_AUTH_ENABLED}
basicAuthentication.username="admin"
basicAuthentication.username=${?KAFKA_MANAGER_USERNAME}
basicAuthentication.password="password"
basicAuthentication.password=${?KAFKA_MANAGER_PASSWORD}
basicAuthentication.realm="Kafka-Manager"
basicAuthentication.excluded=["/api/health"] # ping the health of your instance without authentification

kafka-manager.consumer.properties.file=${?CONSUMER_PROPERTIES_FILE}

配置部分指令介紹

  • kafka-manager.zkhosts="zkhost_ip:zkhost_port,..."
    用於指明kafka連接的zookeeper。如果zookeeper有多個用逗號分隔。如果你不想直接寫入配置文件,你可以設置環境變量ZK_HOSTS,在配置文件中是用{?ZK_HOSTS}引用即可。
    要想kafka-manager可以運行起來修改此配置即可。

  • application.features=["features1","features2",...]
    設置kafka-manager對kafka集群具有的功能。有下面這四個功能

    KMClusterManagerFeature:容許kafka manager添加,更新,刪除kafka集群
    KMTopicManagerFeature:容許kafka manager在kafka集群中添加,更新,刪除topic
    KMPreferredReplicaElectionFeature:容許kafka manager在kafka集群中執行優先復制選舉
    KMReassignPartitionsFeature:容許kafka manager 生成分區設置,或重置分區設置。

  • basicAuthentication.enabled
    是否啟動basic認證,啟用使用true,不啟用使用false。當啟用是此選項是,用戶請求訪問資源時,服務器將會返回401,瀏覽器就會彈出一個認證框讓用戶認證,這一過程被稱為質詢。

  • basicAuthentication.username
    啟用basic認證時,認證的用戶名

  • basicAuthentication.password
    啟用basic認證時,認證的密碼

  • basicAuthentication.realm
    可以看成是一個解釋,認證用於什麽。此字符串在彈出認證框上顯示出來

  • basicAuthentication.excluded=["/api/health"]
    對kafka manager進行健康狀態檢測,不需要認證

3. 運行kafka manager

~]# cp /root/kafka-manager/kafka-manager-1.3.3.16/target/universal/kafka-manager-1.3.3.16.zip /opt
~]# unzip kafka-manager-1.3.3.16.zip
~]# ln -sv kafka-manager-1.3.3.16/ kafka-manager
~]# cd kafka-manager
~]# bin/kafka-manager -Dconfig.file=/conf/application.conf -Dhttp.port=888
-Dconfig.file:指明kafaka manager的配置文件
-Dhttp.port: 配置kafka manager監聽的端口
-java-home: 指明jdk的路徑,例如-java-home /usr/local/oracle-java-8

直接bin/kafka-manager此程序,會運行在前臺。可以使用nohup bin/kafka-manager -Dconfig.file=/conf/application.conf -Dhttp.port=888 &運行在後臺

4. 訪問kafak manager

在瀏覽器中訪問此URL: http://196.168.196.235:888 即可。
測試basic認證
技術分享圖片

健康狀態檢測
技術分享圖片

5. 管理集群

添加集群
技術分享圖片

kafka的版本號要選安裝時的版本,填好後點擊添加即可。

技術分享圖片

查看集群

技術分享圖片

在此頁面你可以,操作在配置文件中開放的所有功能。

安裝Kafka-manager