前言
本文主要介绍如何使用 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-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
|
创建配置文件
提示
在下述的两个配置文件中,都可以直接使用 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 UI | http://192.168.1.130:8080 |
Grafana | http://192.168.1.130:3000 |
Prometheus | http://192.168.1.130:9090 |
Grafana 默认登录账号
Grafana 默认的用户名称是 admin
,用户密码是 admin
。值得一提的是,首次登录 Grafana 会提示更改用户名和密码。