docker-compose 安装canal
创建 Canal 配置文件
/conf/canal.properties
mkdir -p conf/
touch /conf/canal.properties
# canal.properties# tcp bind ip
canal.ip = 0.0.0.0
canal.port = 11111
canal.metrics.pull.port = 11112# zookeeper 集群配置
canal.zkServers =
canal.zookeeper.sessionTimeout = 1000# tcp, kafka, rocketmq
canal.serverMode = tcp# canal 配置
canal.destinations = example
canal.conf.dir = ../conf
创建 test 实例配置
在 conf 目录下创建一个名为 test 的子目录,并在其中创建 instance.properties 文件,配置 Canal 以监听 test 数据库:
mkdir -p conf/test
touch conf/test/instance.properties
编辑 conf/test/instance.properties 文件:
# instance.properties# 监控 MySQL 的 IP 和端口
canal.instance.master.address = mysql-latest:3306
# MySQL 的用户名和密码
canal.instance.dbUsername = root
canal.instance.dbPassword = your_password
canal.instance.connectionCharset = UTF-8# 要监听的数据库
canal.instance.filter.regex = test\\..*
canal.instance.gtidon=false
配置 dtm_busi 数据库的实例
创建 conf/dtm_busi/instance.properties 文件,并添加以下内容:
mkdir -p conf/dtm_busi
touch conf/dtm_busi/instance.properties
编辑 conf/dtm_busi/instance.properties 文件:
# conf/dtm_busi/instance.properties# 监控 MySQL 的 IP 和端口
canal.instance.master.address = mysql-latest:3306
# MySQL 的用户名和密码
canal.instance.dbUsername = sa
canal.instance.dbPassword = sa123456
canal.instance.connectionCharset = UTF-8# 要监听的数据库
canal.instance.filter.regex = dtm_busi\\..*
canal.instance.gtidon=false
docker-compose 文件
创建桥接网络
docker network create promexus_monitoring
version: '3.8'
services:canal-server:image: canal/canal-server:latestcontainer_name: canal-serverports:- "11111:11111"- "11112:11112"environment:- canal.auto.scan=true- canal.destinations=test,dtm_busivolumes:- ./conf/canal.properties:/canal-server/conf/canal.properties- ./conf/test/instance.properties:/canal-server/conf/test/instance.properties- ./conf/dtm_busi/instance.properties:/canal-server/conf/dtm_busi/instance.propertiesnetworks:- promexus_monitoringnetworks:promexus_monitoring:external: true
docker-compose up -d