Docker 快速搭建 Kafka (单机版) 的开发环境

前言

本文主要介绍如何使用 Docker 在本地开发环境快速搭建 Kafka (单机版) 的开发环境,其中包括安装 ZooKeeper、Kafka、Kafka-UI、Prometheus,Grafana 服务。

安装 Docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 卸载旧版本的Docker
# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

# 添加YUM仓库
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 安装Docker
# yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 开机启动Docker
# systemctl enable docker

# 启动Docker
# systemctl start docker

# 查看运行状态
# systemctl status docker

创建配置文件

提示

在下述的两个配置文件中,都可以直接使用 Docker 容器的名称替代容器的 IP 地址。

  • 创建 prometheus.yml 配置文件,用于配置 Prometheus 的监控任务。
1
2
3
4
5
6
7
8
9
10
11
12
global:
scrape_interval: 15s
evaluation_interval: 15s

scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']

- job_name: 'kafka'
static_configs:
- targets: ['kafka:9092']
  • 创建 docker-compose.yml 配置文件,用于 Docker Compose 管理容器,可以根据实际情况更改 Kafka 镜像的版本号
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
version: '3.9'

services:
zookeeper:
image: bitnami/zookeeper:latest
container_name: zookeeper
restart: always
environment:
ALLOW_ANONYMOUS_LOGIN: yes
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
networks:
- backend

kafka:
image: bitnami/kafka:3.4.0
container_name: kafka
restart: always
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
ALLOW_PLAINTEXT_LISTENER: yes
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
networks:
- backend

kafka-ui:
image: provectuslabs/kafka-ui:latest
container_name: kafka-ui
restart: always
depends_on:
- kafka
ports:
- "8080:8080"
environment:
KAFKA_CLUSTERS_0_NAME: dev
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9092
networks:
- backend

prometheus:
image: prom/prometheus:latest
container_name: prometheus
restart: always
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
networks:
- backend

grafana:
image: grafana/grafana:latest
container_name: grafana
restart: always
depends_on:
- prometheus
ports:
- "3000:3000"
networks:
- backend

networks:
backend:
name: backend

启动 Docker 容器

1
2
3
4
5
# 创建并启动容器
docker compose up -d

# 查看容器的运行状态
docker compose ps -a

测试 Docker 容器

浏览器访问以下应用的控制台管理界面,若能正常访问,则说明对应的 Docker 容器正常运行(请自行更改容器的 IP 地址

应用访问地址
Kafka UIhttp://192.168.1.130:8080
Grafanahttp://192.168.1.130:3000
Prometheushttp://192.168.1.130:9090

Grafana 默认登录账号

Grafana 默认的用户名称是 admin,用户密码是 admin。值得一提的是,首次登录 Grafana 会提示更改用户名和密码。