Kafka Eagle
1. Install Mysql
Kafka-Eagle 的安装依赖于 MySQL,MySQL 主要用来存储可视化展示的数据。
2.Kafka 环境准备
调整Kafka内存占用等参数,暴露JMX
JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,使用户能够在任何Java应用程序中使用这些代理和服务实现管理。
对【外暴露数据】,方便某些插件来监控和管理
。修改kafka-server-start.sh脚本
具体路径:vim /opt/software/kafka_2.12-2.8.0/bin/kafka-server-start.sh
将一下内容if [ "x$KAFKA_HEAP_OPTS" = "x" ]; thenexport KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" fi
替换为
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; thenexport 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="9999"# export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" fi
注:集群内每一个节点都修改。若集群已启动,需要重启。
3.Kafka-Eagle 安装
官网地址:https://www.kafka-eagle.org/
3.1.解压包
将安装包放入master01的/opt/download中,解压缩【在download目录下执行下面两个命令即可】
tar -zxvf kafka-eagle-bin-3.0.1.tar.gz
tar -zxvf kafka-eagle-bin-3.0.1/efak-web-3.0.1-bin.tar.gz -C /opt/software/
3.2.配置环境变量
vim /etc/profile.d/myenv.sh
# kafka EFAK_HOME
export KE_HOME=/opt/software/efak-web-3.0.1
export PATH=$PATH:$KE_HOME/bin
3.3.授权并激活
source /etc/profile
3.4.配置说明
注意:此处针对于master01单机进行安装,用于监控集群(master01,master02,worker01)
命令:vim /opt/software/efak-web-3.0.1/conf/system-config.properties
3.4.1.修改zookeeper相关
efak.zk.cluster.alias=cluster1
cluster1.zk.list=master01:2181,master02:2181,worker01:2181
3.4.2.修改zookeeper客户端线程限制[可选]
kafka.zk.limit.size=32
3.4.3.修改kafka offset 保存位置
# kafka` or `zk
cluster1.efak.offset.storage=kafka
3.4.4.配置 mysql 连接
efak.driver=com.mysql.cj.jdbc.Driver
efak.url=jdbc:mysql://master01:3308/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
efak.username=用户
efak.password=远程密码
3.4.5.配置kafka的JMX的地址
cluster1.efak.jmx.uri=service:jmx:rmi:///jndi/rmi://master01:9999/jmxrmi
3.5.完整配置文件如下
######################################
# multi zookeeper & kafka cluster list
# Settings prefixed with 'kafka.eagle.' will be deprecated, use 'efak.' instead
######################################
efak.zk.cluster.alias=cluster1
cluster1.zk.list=master01:2181,master02:2181,worker01: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.efak.broker.size=20######################################
# zk client thread limit
######################################
kafka.zk.limit.size=32######################################
# EFAK webui port
######################################
efak.webui.port=8048######################################
# EFAK enable distributed
######################################
efak.distributed.enable=false
efak.cluster.mode.status=master
efak.worknode.master.host=master01
efak.worknode.port=8085######################################
# kafka jmx acl and ssl authenticate
######################################
cluster1.efak.jmx.acl=false
cluster1.efak.jmx.user=keadmin
cluster1.efak.jmx.password=keadmin123
cluster1.efak.jmx.ssl=false
cluster1.efak.jmx.truststore.location=/data/ssl/certificates/kafka.truststore
cluster1.efak.jmx.truststore.password=ke123456######################################
# kafka offset storage
######################################
cluster1.efak.offset.storage=kafka######################################
# kafka jmx uri
######################################
cluster1.efak.jmx.uri=service:jmx:rmi:///jndi/rmi://master01:9999/jmxrmi######################################
# kafka metrics, 15 days by default
######################################
efak.metrics.charts=true
efak.metrics.retain=15######################################
# kafka sql topic records max
######################################
efak.sql.topic.records.max=5000
efak.sql.topic.preview.records.max=10######################################
# delete kafka topic token
######################################
efak.topic.token=keadmin######################################
# kafka sasl authenticate
######################################
cluster1.efak.sasl.enable=false
cluster1.efak.sasl.protocol=SASL_PLAINTEXT
cluster1.efak.sasl.mechanism=SCRAM-SHA-256
cluster1.efak.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="kafka" password="kafka-eagle";
cluster1.efak.sasl.client.id=
cluster1.efak.blacklist.topics=
cluster1.efak.sasl.cgroup.enable=false
cluster1.efak.sasl.cgroup.topics=
cluster2.efak.sasl.enable=false
cluster2.efak.sasl.protocol=SASL_PLAINTEXT
cluster2.efak.sasl.mechanism=PLAIN
cluster2.efak.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="kafka-eagle";
cluster2.efak.sasl.client.id=
cluster2.efak.blacklist.topics=
cluster2.efak.sasl.cgroup.enable=false
cluster2.efak.sasl.cgroup.topics=######################################
# kafka ssl authenticate
######################################
cluster3.efak.ssl.enable=false
cluster3.efak.ssl.protocol=SSL
cluster3.efak.ssl.truststore.location=
cluster3.efak.ssl.truststore.password=
cluster3.efak.ssl.keystore.location=
cluster3.efak.ssl.keystore.password=
cluster3.efak.ssl.key.password=
cluster3.efak.ssl.endpoint.identification.algorithm=https
cluster3.efak.blacklist.topics=
cluster3.efak.ssl.cgroup.enable=false
cluster3.efak.ssl.cgroup.topics=######################################
# kafka sqlite jdbc driver address
######################################
#efak.driver=org.sqlite.JDBC
#efak.url=jdbc:sqlite:/hadoop/kafka-eagle/db/ke.db
#efak.username=root
#efak.password=www.kafka-eagle.org######################################
# kafka mysql jdbc driver address
######################################
efak.driver=com.mysql.cj.jdbc.Driver
efak.url=jdbc:mysql://master01:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
efak.username=用户
efak.password=远程密码
4.启动
启动的前提条件是先启动Zookeeper、Kafka
ke.sh start
4.1: 访问
http://master01:8048/
登入见面
初始账号密码:
username: admin
password: 123456
输入完密码后,即可进入控制页面了!
4.2: 停止
bin/ke.sh stop