Kafka Manager是 Yahoo 推出的 Kafka 開源管理工具,用于管理Apache Kafka集群的工具,用戶可以在Web界面執行一些簡單的Kafka集群管理操作
Kafka Manager支持以下內容:
- 管理多個集群
- 輕松檢查群集狀態(主題,使用者,偏移量,代理,副本分發,分區分發)
- 運行首選副本選擇
- 生成帶有選項的分區分配,以選擇要使用的代理
- 運行分區的重新分配(基于生成的分配)
- 創建帶有可選主題配置的主題(0.8.1.1與0.8.2+具有不同的配置)
- 刪除主題(僅在0.8.2+上受支持,并記住在代理配置中設置delete.topic.enable = true)
- 主題列表指示標記為刪除的主題(僅在0.8.2+上受支持)
- 批量生成多個主題的分區分配,并可以選擇要使用的代理
- 批量運行分區的多個主題的重新分配
- 將分區添加到現有主題
- 更新現有主題的配置
Kafka Manager下載地址 https://github.com/yahoo/kafka-manager/releases
下載下來的是源碼包,需要進行sbt編譯,為了方便我這里直接下載編譯好的kafka-manager-1.3.3.8.zip
下面搭建kafka測試環境,簡單演示kafka manager部署與使用
1、kafka環境準備
可以使用如下腳本創建單節點的kafka測試服務器
腳本如下(腳本寫得較簡單,可以忽略腳本健壯性)
#!/bin/bash
setenforce=0
systemctl disable firewalld
systemctl stop firewalld
wget -O /etc/yum.repos.d/centos-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
echo "-----------安裝JDK----------------"
cd /opt
unzip jdk_zookeeper_kafka.zip
sleep 5
rpm -ivh jdk-8u251-linux-x64.rpm
echo "export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64" >> /etc/profile
echo "export PATH=$PATH:$JAVA_HOME/bin" >> /etc/profile
echo "export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar" >> /etc/profile
echo "-----------安裝zookeeper----------------"
cd /opt
tar -zxf apache-zookeeper-3.6.0-bin.tar.gz
mv apache-zookeeper-3.6.0-bin zookeeper
cd zookeeper
mkdir data
cd conf
cp zoo_sample.cfg zoo.cfg
sed -i "s#dataDir=/tmp/zookeeper#dataDir=/opt/zookeeper/data#g" zoo.cfg
echo "server.1=127.0.0.1:2888:3888"
echo 1 > /opt/zookeeper/data/myid
echo "export PATH=$PATH:/opt/zookeeper/bin" >> /etc/profile
echo "-----------安裝kafka----------------"
cd /opt
tar -zxf kafka_2.13-2.5.0.tgz
mv kafka_2.13-2.5.0 kafka
cd kafka
mkdir data
cd config
cp server.properties server.properties_default
sed -i "s#log.dirs=/tmp/kafka-logs#log.dirs=/opt/kafka/data#g" server.properties
echo "listeners=PLAINTEXT://192.168.31.80:9092" >> server.properties
sed -i "s#/opt/zookeeper/bin#/opt/zookeeper/bin:/opt/kafka/bin#g" /etc/profile
source /etc/profile
echo $PATH
echo "已經完成安裝 100%"
echo "-----------請按如下方法啟動zookeeper+kafka----------------"
echo "1、先退出當前終端會話,重新連接"
echo "2、執行zkServer.sh start 啟動zookeeper服務"
echo "3、執行kafka-server-start.sh -daemon /opt/kafka/config/server.properties啟動kafka"
echo "4、執行tail -f /opt/kafka/logs/server.log查看kafka啟動日志"
上傳jdk_zookeeper_kafka.zip和 kafka_install.sh
sh kafka_install.sh
2、修改kafka-server-start.sh,添加JMX啟動參數
cd /opt
cd kafka/bin
vi kafka-server-start.sh
#在export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"這一行下方添加
#export JMX_PORT="9999"
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
export JMX_PORT="9999"
fi
如下圖所示
然后啟動zookeeper和kafka
zkServer.sh start
kafka-server-start.sh -daemon /opt/kafka/config/server.properties
3、上傳kafka-manager安裝包并修改參數
unzip kafka-manager-1.3.3.23.zip
mv kafka-manager-1.3.3.23 kafka-manager
cd kafka-manager/conf
cp Application.conf application.conf_default_bak
修改如下參數 vi application.conf
1)、將kafka-manager.zkhosts="kafka-manager-zookeeper:2181"修改為當前的zookeeper地址與端口
2)、開啟用戶名密碼驗證
basicAuthentication.enabled=false改為 basicAuthentication.enabled=true
4、啟動kafka-manager
cd /opt/kafka-manager/bin
./kafka-manager -Dconfig.file=/opt/kafka-manager/conf/application.conf -Dhttp.port=9000
5、添加集群,并查看集群的相關信息
kafka-topics.sh --create --zookeeper localhost:2181 --partitions 2 --replication-factor 1 --topic yuanfan_kafka_test
kafka-console-producer.sh --bootstrap-server 192.168.31.80:9092 --topic yuanfan_kafka_test
kafka-console-consumer.sh --bootstrap-server 192.168.31.80:9092 --topic yuanfan_kafka_test
1)可以創建主題,測試主題的自生產與自消費
2)用之前配置文件中賬戶密碼登錄kafka-manager
默認admin/password
3)登錄后的界面
4)添加集群,修改連接集群的配置
5)查看topic的信息
6)Topic的綜合信息及指標信息