使用Docker部署debezium来监控MySQL数据库

时间:2024-03-09 17:18:24

启动debezium前需要启动MySQL、Zookeeper、Kafak服务
这边演示的,已经把三个服务启动了

ip分别为:

主机名 IP地址
zookeeper1 192.168.8.101
zookeeper2 192.168.8.102
zookeeper3 192.168.8.103
mysql 192.168.8.104
kafka1 192.168.8.105
kafka2 192.168.8.106
kafka3 192.168.8.107

启动debezium

这里下载debezium/connector对应版本的镜像包来监控MySQL数据库

下载镜像包

docker pull debezium/connector:1.7.1.Final

运行镜像

本来:参考

docker run -it --rm --name connect -p 8083:8083 \
-e GROUP_ID=1 \
-e CONFIG_STORAGE_TOPIC=my_connect_configs \
-e OFFSET_STORAGE_TOPIC=my_connect_offsets \
-e STATUS_STORAGE_TOPIC=my_connect_statuses \
--link kafka:kafka --link mysql:mysql \
quay.io/debezium/connect:2.3

命令解析:

  • --name connect:指定启动的容器名称
  • -p 8083:8083:将容器中的8083端映射到Docker主机上的相同端口。这使得容器外的应用程序可以使用Kafka connect
    REST API来设置和管理新的容器实例
  • -e GROUP_ID=1 -e CONFIG_STORAGE_TOPIC=my_connect_configs -e OFFSET_STORAGE_TOPIC=my_connect_offsets -e STATUS_STORAGE_TOPIC=my_connect_statuses: 设置镜像所需的环境变量
  • -link kafka:kafka --link mysgl:mysql :将容器链接到正在运行的KafkaMysQL容器。

docker run debezium连接外部的kafka:

docker run -it --rm \
-e GROUP_ID=<your-group-id> \
-e CONFIG_STORAGE_TOPIC=<your-config-storage-topic> \
-e OFFSET_STORAGE_TOPIC=<your-offset-storage-topic> \
-e BOOTSTRAP_SERVERS=<your-kafka-bootstrap-servers> \
-e KAFKA_CONNECT_CLUSTER=<your-kafka-connect-cluster> \
debezium/connect:<tag>

请替换以下占位符:
<your-group-id>: Debezium连接器的群组ID<your-config-storage-topic>: 存储连接器配置的主题。
<your-offset-storage-topic>: 存储连接器偏移量的主题。
<your-kafka-bootstrap-servers>: Kafka集群的引导服务器地址,例如kafka1:9092,kafka2:9092<your-kafka-connect-cluster>: Kafka Connect集群的URL<tag>: Debezium Docker镜像的版本标签。

docker run命令连接外部的MySQL:

docker run --rm \
-e MYSQL_HOST=外部MySQL服务的IP地址 \
-e MYSQL_PORT=3306 \
-e MYSQL_USER=用户名 \
-e MYSQL_PASSWORD=密码 \
-e MYSQL_DB=数据库名称 \
镜像名称

在这个命令中,MYSQL_HOSTMYSQL_PORTMYSQL_USERMYSQL_PASSWORDMYSQL_DB环境变量分别设置为连接到外部MySQL服务所需的信息。镜像名称是你想要运行的Docker镜像的名称。

实际:

docker run -it --rm --name connect -p 8083:8083 \
-e GROUP_ID=1 \
-e CONFIG_STORAGE_TOPIC=my_connect_configs \
-e OFFSET_STORAGE_TOPIC=my_connect_offsets \
-e STATUS_STORAGE_TOPIC=my_connect_statuses \
-e MYSQL_HOST=192.168.8.104 \
-e MYSQL_PORT=3306 \
-e MYSQL_USER=root \
-e MYSQL_PASSWORD=root \
-e MYSQL_DB=atguigu2022 \
-e BOOTSTRAP_SERVERS=192.168.8.105:9092,192.168.8.106:9092,192.168.8.107:9092 \
debezium/connect:1.7.1.Final

验证:参考