Kafka Eagle

Kafka Eagle

1. Install Mysql

Kafka-Eagle 的安装依赖于 MySQL,MySQL 主要用来存储可视化展示的数据。

2.Kafka 环境准备

调整Kafka内存占用等参数,暴露JMX

JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,使用户能够在任何Java应用程序中使用这些代理和服务实现管理。对外暴露数据,方便某些插件来监控和管理。

修改kafka-server-start.sh脚本
vim bin/kafka-server-start.sh
将一下内容

1
2
3
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi

替换为

1
2
3
4
5
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
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="9999"
# export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi

注:集群内每一个节点都修改。若集群已启动,需要重启。

3.Kafka-Eagle 安装

官网地址:https://www.kafka-eagle.org/

3.1.解压包

1
2
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

1
2
3
# kafka EFAK_HOME
export KE_HOME=/opt/software/efak-web-3.0.1
export PATH=$PATH:$KE_HOME/bin

3.3.授权并激活

1
source /etc/profile

3.4.配置说明

vim /opt/efak/conf/system-config.properties

3.4.1.修改zookeeper相关
1
2
efak.zk.cluster.alias=cluster1
cluster1.zk.list=master01:2181,master02:2181,worker01:2181
3.4.2.修改zookeeper客户端线程限制[可选]
1
kafka.zk.limit.size=32
3.4.3.修改kafka offset 保存位置
1
2
# kafka` or `zk
cluster1.efak.offset.storage=kafka
3.4.4.配置 mysql 连接
1
2
3
4
efak.driver=com.mysql.cj.jdbc.Driver
efak.url=jdbc:mysql://master01:3308/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
efak.username=root
efak.password=Yb#12211
3.4.5.配置kafka的JMX的地址
1
cluster1.efak.jmx.uri=service:jmx:rmi:///jndi/rmi://master01:9999/jmxrmi

3.5.完整配置文件如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
######################################
# 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:3308/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
efak.username=root
efak.password=Yb#12211

4.启动

启动的前提条件是先启动Zookeeper、Kafka

1
ke.sh start

5.访问

http://master01:8048/
username: admin
password: 123456

5.停止

1
bin/ke.sh stop

Kafka Eagle
https://leaf-domain.gitee.io/2024/10/21/bigdata/kafka/3.2-kafka-eagle-开源平台/
作者
叶域
发布于
2024年10月21日
许可协议