一、背景
在上一节中,咱们搭建了一个 kafka
集群, 然而 kafka
集群在运行的过程中会产生各种数据,比方 broker 信息、集群信息、主题信息、消费者信息等等,而 kafka 本身没有提供一个图形化的监控界面,此处咱们应用 kafka-eagle
来搭建一个 kafka 的治理监控界面。
二、mac 上装置 kafka-eagle
1、装置 JDK
略
2、装置 eagle
1、下载 eagle
下载链接:http://download.kafka-eagle.org/
2、解压并配置环境变量
1、解压
tar -zxvf kafka-eagle-bin-2.0.3.tar.gz && cd kafka-eagle-bin-2.0.3 && tar -zxvf kafka-eagle-web-2.0.3-bin.tar.gz
2、重命名
mv kafka-eagle-web-2.0.3 kafka-eagle
3、配置环境变量
vim /etc/profile
export KE_HOME=/Users/huan/soft/kafka/kafka-eagle
export PATH=$PATH:$KE_HOME/bin
source /etc/profile
cd ${KE_HOME}/bin
chomd +x ke.sh
KE_HOME
为 eagle
环境变量的名字。
3、启用 kafka 的 JMX
此配置是可选的,放开能够看到更多的监控信息。
1、cd ${KAFKA_HOME}/bin
2、vim kafka-server-start.sh
if ["x$KAFKA_HEAP_OPTS" = "x"]; then
# export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
export KAFKA_HEAP_OPTS="-server -Xms2G -Xmx2G -XX:PermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"
export JMX_PORT="9099"
fi
JMX_PORT
的端口能够给个没有占用的端口既可。
4、配置 eagle
1、cd ${KE_HOME}/conf
2、vim system-config.properties
######################################
# multi zookeeper & kafka cluster list
# 设置 kafka 的多集群,此处只须要给 zk 的地址既可
######################################
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=localhost:2181,localhost:3181,localhost:4181
######################################
# 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
######################################
kafka.zk.limit.size=25
######################################
# kafka eagle webui port
# kafka eagle 的前端拜访端口
######################################
kafka.eagle.webui.port=9090
######################################
# 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 保留的地位,0.10 及当前的 kafka 集群是保留在 kafka 中,之前的是保留在 zookeeper 中
######################################
cluster1.kafka.eagle.offset.storage=kafka
######################################
# 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 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
# eagle 数据保留的数据库,此处应用 mysql
######################################
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=root
5、启动 eagle
ke.sh start
三、ke.sh 的用法
命令 | 解释 |
---|---|
ke.sh start | 启动 eagle |
ke.sh stop | 进行 eagle |
ke.sh restart | 重新启动 eagle |
ke.sh status | 查看 eagle 的状态 |
四、参考文档
1、eagle 下载链接
2、mac 或 linux 上装置 kafka-eagle
3、window 上装置 kafka-eagle
4、kafka-eagle 的配置属性
5、KSQL 的应用