3 efak部署脚本(docker)

3 efak部署脚本(docker)

efak官网地址:EFAK

3.1 部署环境准备

linux环境、docker环境以及kafka-eagle依赖包

部署环境配置版本下载链接
ECSCentOS 7.65台2vCPUs|4GiB
docker19.03.9脚本
kafka-eagle3.0.1https://github.com/smartloli/kafka-eagle-bin/archive/v3.0.1.tar.gz

3.2服务器部署

id系统镜像规格IP
kafka1x86 CentOS 7.62vCPUs|4GiB192.168.0.208
kafka2x86 CentOS 7.62vCPUs|4GiB192.168.0.210
kafka3x86 CentOS 7.62vCPUs|4GiB192.168.0.91
kafka4x86 CentOS 7.62vCPUs|4GiB192.168.0.197
efakx86 CentOS 7.62vCPUs|4GiB192.168.0.190
mysqlx86 CentOS 7.62vCPUs|4GiB192.168.0.226

3.3 脚本使用

保存下面脚本内容到文件:install-efak.sh

vim install-efak.sh 
chmod +x install-efak.sh 
ource install-efak.sh 
#一键安装完成后可输入jps查看

3.4 脚本内容

#!/bin/bash
##################### 准备工作 #####################
#1.服务器直接下载包可能会很慢,建议下载到本地后上传至服务器
#2.可自定义安装包存放目录
#3.注意修改IP地址&&
#4.配置文件根据自己情况改
#5.根据需求增添ip和主机名(修改完后重启)
#6.脚本&&&&压缩包放在一个目录下/opt/kafka-eagle
#7.dockerfile里的路径谨慎修改
​
#安装包目录mydir,即执行脚本的当前目录
mydir=$(cd "$(dirname "$0")";pwd)
echo $mydir
​
#更改IP
ip1=172.16.20.83
ip2=172.16.20.113
ip3=172.16.20.139
mysqlip=172.16.20.131
​
#efak版本变量
EAGLE_VERSION=3.0.1
​
#目录变量
mkdir /opt/kafka-eagle #安装包和脚本的存放目录
mkdir /usr/local/bin/kafka-eagle #存放efak的配置文件目录
file1=/opt/kafka-eagle
file2=/usr/local/bin/kafka-eagle
​
###########################################################
cd $file1
#上传到华为云后压缩包地址(官网地址在上边)
wget https://hcie-lxw.obs.cn-east-3.myhuaweicloud.com/kafka-eagle-bin-3.0.1.tar.gz
​
#efak的配置文件
cat <<EOF>> $file2/system-config.properties
######################################
# multi zookeeper & kafka cluster list
# Settings prefixed with 'kafka.eagle.' will be deprecated, use 'efak.' instead
######################################
efak.zk.cluster.alias=cluster1
cluster1.zk.list=$ip1:2181,$ip2:2181,$ip3:2181/myKafka
#cluster1.zk.list=$ip1:2181
​
# zookeeper enable acl
######################################
cluster1.zk.acl.enable=false
cluster1.zk.acl.schema=digest
cluster1.zk.acl.username=admin
cluster1.zk.acl.password=admin
######################################
# broker size online list
######################################
cluster1.efak.broker.size=20
​
######################################
# zk client thread limit
######################################
kafka.zk.limit.size=16
​
######################################
# EFAK webui port
######################################
efak.webui.port=8048
​
######################################
# EFAK enable distributed
######################################
efak.distributed.enable=false
efak.cluster.mode.status=master
efak.worknode.master.host=localhost
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
cluster2.efak.offset.storage=zk
​
######################################
# kafka jmx uri
######################################
cluster1.efak.jmx.uri=service:jmx:rmi:///jndi/rmi://%s/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=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="admin" password="admin";
cluster1.efak.sasl.client.id=
cluster1.efak.blacklist.topics=
cluster1.efak.sasl.cgroup.enable=false
cluster1.efak.sasl.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://$mysqlip:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
efak.username=root
efak.password=01271916Tao@
EOF
​
#创建镜像
cat <<EOF>> $file1/dockerfile
#kafka-eagle的Dockerfile镜像脚本
 
#引入依赖的java环境
FROM openjdk:8-alpine3.9
 
#环境变量配置
ENV KE_HOME=/opt/kafka-eagle
 
ENV EAGLE_VERSION=3.0.1
 
CMD ["/bin/bash"]
 
#工作目录
WORKDIR /opt/kafka-eagle
​
#拷贝压缩包到临时目录
COPY kafka-eagle-bin-$EAGLE_VERSION.tar.gz  /tmp
 
#将上传的kafka-eagle压缩包解压放入镜像中并授权
RUN mkdir /opt/kafka-eagle -p && cd /opt && \
    tar zxvf /tmp/kafka-eagle-bin-$EAGLE_VERSION.tar.gz -C kafka-eagle --strip-components 1 && rm -f /tmp/kafka-eagle-bin-$EAGLE_VERSION.tar.gz && \
    cd kafka-eagle;tar zxvf efak-web-$EAGLE_VERSION-bin.tar.gz --strip-components 1 && rm -f efak-web-$EAGLE_VERSION-bin.tar.gz  && \
    chmod +x /opt/kafka-eagle/bin/ke.sh && \
    mkdir -p /hadoop/kafka-eagle/db
 
#将kafka-eagle的启动文件拷贝到镜像中
COPY entrypoint.sh /opt/kafka-eagle/bin
 
#给启动文件授权
RUN chmod +x /opt/kafka-eagle/bin/entrypoint.sh
 
#暴露端口
EXPOSE 8048 8080
 
#镜像的启动命令
CMD ["sh","/opt/kafka-eagle/bin/entrypoint.sh"]
EOF
​
#启动脚本
cat <<EOF>> $file1/entrypoint.sh
#!/usr/bin
​
#kafka-eagle项目启动的命令
sh $file1/bin/ke.sh start
​
tail -f /dev/null
EOF
​
#构建镜像
docker build -f dockerfile -t efak:3.0.1 .
​
#创建网络
docker network create app-tier 
​
#启动efak
docker run --name efak -p 8048:8048 --network app-tier -v $file2/system-config.properties:$file1/conf/system-config.properties -d efak:3.0.1

4.5 完成安装

用docker logs +【容器名】查看完成部署

安装界面

kafka监控(这里反应时间略长)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Kafka EFak是一个用于管理和监控Kafka集群的工具。根据引用,EFak是一个在阿里云服务器上部署的UI,用于监控Kafka集群的内存、CPU使用情况以及版本信息。通过EFak,你可以实时查看Kafka集群的运行状态和性能指标。 根据引用,可能出现展示异常的原因是Kafka broker的JMX端口被禁用,导致无法获取Kafka的版本信息以及内存和CPU使用情况。这可能是因为Kafka broker没有启用JMX端口或者端口被阻塞。如果JMX端口被禁用,EFak无法正确获取Kafka的信息,因此会显示异常。 为了统一配置的地方,根据引用,一些博客建议在kafka-server-start.sh文件中进行配置,但也可以将配置放在kafka-run-class.sh文件中。这样可以集中管理配置,方便维护。 总之,Kafka EFak是一个用于监控和管理Kafka集群的工具,可以实时查看Kafka集群的运行状态和性能指标。如果出现展示异常的情况,可能是因为Kafka broker的JMX端口被禁用,需要检查JMX配置并确保端口可用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Kafka监控EFAK(Kafka-eagle)部署与踩坑详细记录](https://blog.csdn.net/maoyuanming0806/article/details/127248506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值