Kafka Eagle是kafka的web版的管理页面:
- 源码: https://github.com/smartloli/kafka-eagle/
- 下载: http://download.kafka-eagle.org/
- 安装文档: http://www.kafka-eagle.org/articles/docs/installation/linux-macos.html
0. 打开Kafka broker JMX
Kafka Eagle获取监控数据是通过JMX(Java Managent ExtenSion)来实现的,所以需要打开Kafka broker 的 JMX,可以直接修改kafka-server-start.sh
文件:
vi $KAFKA_HOME/bin/kafka-server-start.sh
将
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi
修改为:
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
export JMX_PORT="9999"
fi
image.png
如果是docker的话需要如下几步:
- 通过环境变量设置
JMX_PORT
值:
docker run -d --name kafka1 -p 9092:9092 -p 9999:9999 -e JMX_PORT=9999 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=10.35.143.165:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.35.143.165:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
- 登录容器,修改
kafka-run-class.sh
脚本
olafwang@OLAFWANG-MB0 build % docker exec -it kafka1 bash
bash-4.4# vi $KAFKA_HOME/bin/kafka-run-class.sh
-
新增如下配置
image.png
-Dcom.sun.management.jmxremote.rmi.port=9999
-Djava.rmi.server.hostname=192.168.1.250
-Dcom.sun.management.jmxremote.local.only=false
注意hostname是容器宿主机的ip地址,不是docker分配给容器内部ip。
1. 安装配置JDK
2. Kafka Eagle 下载
http://download.kafka-eagle.org/
3. 解压Kafka Eagle
tar -zxvf kafka-eagle-bin-2.0.2.tar.gz
mv kafka-eagle-bin-2.0.2 kafka-eagle
4. 配置Kafka Eagle环境变量
sudo vi /etc/profile
# 添加到文件
export KE_HOME=/data/soft/new/kafka-eagle
export PATH=$PATH:$KE_HOME/bin
mac os:
vim ~/.bash_profile
# 添加到文件
export KE_HOME=/data/soft/new/kafka-eagle
export PATH=$PATH:$KE_HOME/bin
使用source ~/.bash_profile
使刚刚修改的文件生效。
5. 配置Kafka Eagle系统文件
根据自己的Kafka集群的实际情况配置Kafka Eagle,例如,zookeeper地址,Kafka集群的版本类型(低版本为zk,高版本为kafka),启用了安全认证的Kafka集群等。
cd ${KE_HOME}/conf
vi system-config.properties
######################################
# multi zookeeper & kafka cluster list (zookeeper地址)
######################################
# kafka.eagle.zk.cluster.alias=cluster1,cluster2
# cluster1.zk.list=tdn1:2181,tdn2:2181,tdn3:2181
# cluster2.zk.list=xdn10:2181,xdn11:2181,xdn12:2181
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=127.0.0.1:2181
######################################
# zookeeper enable acl
######################################
cluster1.zk.acl.enable=false
cluster1.zk.acl.schema=digest
cluster1.zk.acl.username=test
cluster1.zk.acl.password=test123
######################################
# broker size online list
######################################
cluster1.kafka.eagle.broker.size=20
######################################
# zk client thread limit (zk线程数)
######################################
kafka.zk.limit.size=25
######################################
# kafka eagle webui port (kafka eagle的端口)
######################################
kafka.eagle.webui.port=8048
######################################
# kafka jmx acl and ssl authenticate
######################################
cluster1.kafka.eagle.jmx.acl=false
cluster1.kafka.eagle.jmx.user=keadmin
cluster1.kafka.eagle.jmx.password=keadmin123
cluster1.kafka.eagle.jmx.ssl=false
cluster1.kafka.eagle.jmx.truststore.location=/Users/dengjie/workspace/ssl/certificates/kafka.truststore
cluster1.kafka.eagle.jmx.truststore.password=ke123456
######################################
# kafka offset storage (kafka offset保存的位置)
######################################
cluster1.kafka.eagle.offset.storage=kafka
cluster2.kafka.eagle.offset.storage=zk
######################################
# kafka metrics, 15 days by default (开启图表)
######################################
kafka.eagle.metrics.charts=true
kafka.eagle.metrics.retain=15
######################################
# kafka sql topic records max
######################################
kafka.eagle.sql.topic.records.max=5000
######################################
# delete kafka topic token
######################################
kafka.eagle.topic.token=keadmin
######################################
# kafka sasl authenticate
######################################
cluster1.kafka.eagle.sasl.enable=false
cluster1.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
cluster1.kafka.eagle.sasl.mechanism=SCRAM-SHA-256
cluster1.kafka.eagle.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="kafka" password="kafka-eagle";
cluster1.kafka.eagle.sasl.client.id=
cluster1.kafka.eagle.blacklist.topics=
cluster1.kafka.eagle.sasl.cgroup.enable=false
cluster1.kafka.eagle.sasl.cgroup.topics=
cluster2.kafka.eagle.sasl.enable=false
cluster2.kafka.eagle.sasl.protocol=SASL_PLAINTEXT
cluster2.kafka.eagle.sasl.mechanism=PLAIN
cluster2.kafka.eagle.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="kafka-eagle";
cluster2.kafka.eagle.sasl.client.id=
cluster2.kafka.eagle.blacklist.topics=
cluster2.kafka.eagle.sasl.cgroup.enable=false
cluster2.kafka.eagle.sasl.cgroup.topics=
######################################
# kafka ssl authenticate
######################################
cluster3.kafka.eagle.ssl.enable=false
cluster3.kafka.eagle.ssl.protocol=SSL
cluster3.kafka.eagle.ssl.truststore.location=
cluster3.kafka.eagle.ssl.truststore.password=
cluster3.kafka.eagle.ssl.keystore.location=
cluster3.kafka.eagle.ssl.keystore.password=
cluster3.kafka.eagle.ssl.key.password=
cluster3.kafka.eagle.blacklist.topics=
cluster3.kafka.eagle.ssl.cgroup.enable=false
cluster3.kafka.eagle.ssl.cgroup.topics=
######################################
# kafka sqlite jdbc driver address
######################################
kafka.eagle.driver=org.sqlite.JDBC
kafka.eagle.url=jdbc:sqlite:/hadoop/kafka-eagle/db/ke.db
kafka.eagle.username=root
kafka.eagle.password=www.kafka-eagle.org
######################################
# kafka mysql jdbc driver address
######################################
#kafka.eagle.driver=com.mysql.jdbc.Driver
#kafka.eagle.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
#kafka.eagle.username=root
#kafka.eagle.password=123456
其实就修改了:
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=127.0.0.1:2181
kafka.eagle.url=jdbc:sqlite:/${KE_HOME}/db/ke.db
6. 启动Kafka Eagle服务器
在$KE_HOME/bin目录中,有一个ke.sh脚本文件。执行启动命令,如下所示:
cd ${KE_HOME}/bin
chmod +x ke.sh
./ke.sh start
之后,当重新启动或停止Kafka Eagle服务器时,执行以下命令:
ke.sh restart
ke.sh stop
启动成功:
Welcome to
__ __ ___ ____ __ __ ___ ______ ___ ______ __ ______
/ //_/ / | / __/ / //_/ / | / ____/ / | / ____/ / / / ____/
/ ,< / /| | / /_ / ,< / /| | / __/ / /| | / / __ / / / __/
/ /| | / ___ | / __/ / /| | / ___ | / /___ / ___ |/ /_/ / / /___ / /___
/_/ |_| /_/ |_|/_/ /_/ |_| /_/ |_| /_____/ /_/ |_|\____/ /_____//_____/
Version 2.0.2 -- Copyright 2016-2020
*******************************************************************
* Kafka Eagle Service has started success.
* Welcome, Now you can visit 'http://101.135.13.115:8048'
* Account:admin ,Password:123456
*******************************************************************
* <Usage> ke.sh [start|status|stop|restart|stats] </Usage>
* <Usage> https://www.kafka-eagle.org/ </Usage>
*******************************************************************
注意看访问的URL和登录的用户名密码
网友评论