目录
一、环境
- 华为云服务器CentOS6.10(CentOS7也可以)
- Kafka2.12-2.2.2
- EFAK(Kafka Eagle) 3.0.1 官网最新版本
- Zookeeper 3.6.3
- JDK 8
- MySQL 5.7
UI界面
二、安装MySQL
Kafka Eagle支持SQLite和MySQL,本次使用MySQL5.7,安装步骤不详解,参考docker安装MySQL8.0.28
tips:建议使用5.7,许多文章都提到了8.0使用会有问题,没有使用8.0来做数据库未遇到相关问题
创建数据库ke,Kafka Eagle用于存储元数据
MySQL > create database ke;
三、安装Kafka Eagle
下载Kafka Eagle
kafka-eagle官方下载地址
本次下载版本:V3.0.1,直接官网下载即可,并上传到服务器中,并解压。
cd /opt/software
tar -zxvf kafka-eagle-bin-3.0.1.tar.gz
cd kafka-eagle-bin-3.0.1
tar -zxvf efak-web-3.0.1-bin.tar.gz -C /opt/module/kafka-eagle
mv kafka-eagle-web-3.0.1 efak
添加环境变量
vim /etc/profile
export KE_HOME=/opt/module/kafka-eagle/efak
export PATH=$PATH:$KE_HOME/bin
source /etc/profile
修改配置文件
#进入efak配置文件
cd ${KE_HOME}/conf
vim system-config.properties
配置Zookeeper地址
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=hostname:2181 #多个用逗号隔开
注意:部分kafka设置会把信息存储到hostname:2181/kafka下,根据kafka中配置得zookeeper.connect连接地址确定
配置MySQL
将 kafka sqlite jdbc driver address 相关配置注释,打开 kafka mysql jdbc driver address注释
kafka.eagle.driver=com.mysql.cj.jdbc.Driver
kafka.eagle.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
#MySQL密码
kafka.eagle.username=root
kafka.eagle.password=123456
配置zookeeper认证
如果开启了zookeeper认证的话,需要配置此项,未开启跳过即可。
username、password在zookeeper的配置中查看
cluster1.zk.acl.enable=true #把false修改为true
cluster1.zk.acl.schema=digest
cluster1.zk.acl.username=test
cluster1.zk.acl.password=test123
配置Kafka认证
- cluster1.efak.sasl.enable设置为true
- protocol、mechanism、jaas.config 根据kafka中配置的对应
cluster1.efak.sasl.enable=true #false修改为true
cluster1.efak.sasl.protocol=SASL_PLAINTEXT
cluster1.efak.sasl.mechanism=PLAIN
cluster1.efak.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="kafka-password";
cluster1.efak.sasl.client.id=
cluster1.efak.blacklist.topics=
cluster1.efak.sasl.cgroup.enable=false
cluster1.efak.sasl.cgroup.topics=
配置JMX
Kafka Eagle需要使用JMX来对Kafka完成一些数据收集,需要确保Kafka开启了JMX、并打开了对应的端口
这里重点几个配置:开启JMX、设置JMX远程连接端口、设置JMX的服务绑定IP、设置JMX远程RMI通信端口,分别为以下4个配置
rmi端口如果不配的话则是随机端口,对于正常来说一般会开启防火墙,所以需要指定端口
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999 #端口不固定,可以设置为其他
-Djava.rmi.server.hostname=172.26.117.190
-Dcom.sun.management.jmxremote.rmi.port=9998 #端口不固定,可以设置为其他
进入kafka的kafka-run-class.sh中
#进入kafka/bin kafka位置/bin
cd /yourKafkaPath/bin
vim kafka-run-class.sh
- 找到JMX Settings的位置 - 追加 -Djava.rmi.server.hostname=hostname(你的ip地址)
- 找到JMX port to use 的位置 - 注释原来的配置,并添加如下配置-
JMX_PORT=9999JMX_RMI_PORT=9998ISKAFKASERVER="false"if [[ "$*" =~ "kafka.Kafka" ]]; then ISKAFKASERVER="true"fiif [ $JMX_PORT ] && [ "true" == "$ISKAFKASERVER" ]; then KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT -Dcom.sun.management.jmxremote.rmi.port=$JMX_RMI_PORT " echo set KAFKA_JMX_PORT:$KAFKA_JMX_OPTSfi
网络配置
端口
- 8048:Kafka Eagle UI所需要的访问端口
- 9999:JMX
- 9998:JMX RMI
- 3306:MySQL
- 8085:Kafka Eagle Server 端口 可以在配置中修改该端口(测试不打开暂时没发现问题,保险起见可以打开该端口)
- 2181:Zookeeper端口
- 9092:Kafka端口
以上这些端口都需要打开,怎么打开端口可以参考CentOS7.6端口、防火墙设置
CentOS 6 使用iptables
vim /etc/sysconfig/iptables
#添加下面配置 8080修改为所需要的端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
# wq保存并退出
#重启服务
/etc/init.d/iptables restart
四、启动Kafka Eagle
- 进入bin目录,并启动
cd ${KE_HOME}/bin
./ke.sh start #包含stop status等等
- 启动完成会有success提示,部署结束!
参考
Kafka监控EFAK Kafka Eagle安装教程
版权归原作者 good_1uck 所有, 如有侵权,请联系我们删除。