安裝Kafka-manager
最近平臺部署了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集群具有的功能。有下面這四個功能
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