Docker安装Kafka(docker-compose)、EFAK监控

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Docker安装Kafka(docker-compose)、EFAK监控

安装Docker


Docker安装mysql EFAK监控面板会用到


EFAK监控面板


容器安装


1、kafka需要zookeeper管理,所以需要先安装zookeeper。 (PS:2.8版本以后kafka-Kraft 模式不再依赖zk,目前别的很多组件都依赖zk注册,所以还是以zk举例)


2、下载zookeeper镜像

$ docker pull wurstmeister/zookeeper
$ docker pull wurstmeister/kafka


启动zk镜像生成容器

docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper
$ docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2  --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper


启动kafka镜像生成容器

## docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.16.0.13:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.0.13:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka
$ docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.16.0.13:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.0.13:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka


参数说明:

-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己


-e KAFKA_ZOOKEEPER_CONNECT=172.16.0.13:2181/kafka 配置zookeeper管理kafka的路径172.16.0.13:2181/kafka


-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.16.0.13:9092 把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP,类如Java程序访问出现无法连接。


-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口


-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间


3、验证kafka是否可以使用

$ docker exec -it kafka bash

进入 /opt/kafka_2.12-2.3.0/bin/ 目录下

$ cd /opt/kafka_2.12-2.3.0/bin/

运行kafka生产者发送消息

$ ./kafka-console-producer.sh --broker-list localhost:9092 --topic sun

发送消息

> hello world

运行kafka消费者接收消息

$ ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic sun --from-beginning


docker-compose


安装docker-compose


新建 /opt/mydocker/docker-compose.yml

version: "2"
services:  #服务名,也可自定义
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    expose:
      - "9999"
    ports:
      - "9092:9092"
      - "9999:9999"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 192.168.233.129
      KAFKA_ZOOKEEPER_CONNECT:  zookeeper:2181
      JMX_PORT: 9999  #启用远程JMX 监控面板用
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
docker-compose config -q  # 检查配置,有问题才有输出,进入docker-compose.yml文件目录执行
docker-compose up -d  # 启动所有docker-compose服务并后台运行
docker ps  # 查看容器


zookeeper查看节点


进入容器

docker exec -it 容器id或容器name bash
cd bin
./zkCli.sh
ls /

1673363568956.jpg

查看kafka集群节点

ls /brokers/ids
ls /brokers/topics

1673363582443.jpg


安装EFAK


官网下载


EFAK V2.0.7 将 Kafka-Eagle 重命名为 EFAK(Eagle For Apache Kafka)

tar -zxvf kafka-eagle-bin-2.0.7.tar.gz
tar -zxvf efak-web-2.0.7-bin.tar.gz -C /opt/module/
mv efak-web-2.0.7/ efak


修改配置文件 /opt/module/efak/conf/system-config.properties

设置标签

# 第一处
efak.zk.cluster.alias=cluster1
cluster1.zk.list=192.168.233.129:2181
# 第二处
######################################
# kafka offset storage
cluster1.efak.offset.storage=kafka
# cluster2.efak.offset.storage=zk
# 第三处
######################################
# kafka sqlite jdbc driver address
######################################
# sqlite 和 mysql 都可以
######################################
# kafka mysql jdbc driver address
######################################
efak.driver=com.mysql.cj.jdbc.Driver
efak.url=jdbc:mysql://192.168.233.129:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
efak.username=root
efak.password=123456


添加环境变量

sudo vim /etc/profile.d/my_env.sh
# kafkaEFAK
export KE_HOME=/opt/module/efak
export PATH=$PATH:$KE_HOME/bin
source /etc/profile

先启动zk和kafka

# 启动kafka-eagle
bin/ke.sh start

1673363647374.jpg

记得开放端口

#查看进程,启动失败控制台不会报错,只能去看日志
 ps -ef|grep efak


遇到情况:内存不足。最少2个G内存

1673363665696.jpg


容器编排启动时,Kafka命令行操作报错


1673363683567.jpg

进入/opt/kafka_2.13-2.8.1/bin


加一句

ISKAFKASERVER="false"
if [[ "$*" =~ "kafka.Kafka" ]]; then
    ISKAFKASERVER="true"
fi


改动这一行

if [  $JMX_PORT ] && [ -z "$ISKAFKASERVER" ]; then

1673363386456.jpg

相关文章
|
10天前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
190 7
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
16天前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
49 2
|
5天前
|
Docker 容器
【赵渝强老师】使用二进制包方式安装Docker
本文介绍了在企业生产环境中无法直接访问外网时,如何使用Docker官方提供的二进制包进行Docker的离线安装。文章详细列出了从安装wget、下载Docker安装包、解压、复制命令到启动Docker服务的具体步骤,并提供了相关命令和示例图片。最后,还介绍了如何设置Docker为开机自启模式。
|
5天前
|
缓存 Ubuntu Linux
如何安装Docker
如何安装Docker
55 0
|
15天前
|
消息中间件 Ubuntu Java
Ubuntu系统上安装Apache Kafka
Ubuntu系统上安装Apache Kafka
|
6月前
|
Ubuntu 网络安全 数据安全/隐私保护
百度搜索:蓝易云【docker通过dockerfile安装sftp教程。】
现在,你已经通过 Dockerfile 成功安装了 SFTP,并且可以使用指定的用户名和公钥进行远程访问。请确保替换示例中的用户名、密码和公钥为自己的实际值。
173 1
|
消息中间件 Shell RocketMQ
百度搜索:蓝易云 ,常用环境部署—Docker安装RocketMQ教程!
通过按照上述步骤,您可以在Docker中成功安装和部署RocketMQ。请注意,上述命令仅提供了一个基本的安装和配置过程,具体配置和使用可以根据您的需求进行进一步调整。确保在执行命令之前,您已经安装并配置好Docker环境。
180 0
|
29天前
|
数据可视化 数据挖掘 Docker
Docker Desktop 安装 ClickHouse 超级简单教程
Docker Desktop 安装 ClickHouse 超级简单教程
45 1
|
3月前
|
Linux 测试技术 Docker
Docker CE for CentOS 安装教程
Docker CE for CentOS 安装教程
132 1
|
4月前
|
关系型数据库 MySQL Linux
Docker安装mysql详细教程, mysqld: Can‘t read dir of ‘/etc/mysql/conf.d/‘(报错已解决)
Docker安装mysql详细教程, mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2 - No such file or directory) 已解决