部署
1.下載admin
也可以下載源碼 通過源碼maven安裝 從根目錄targer下獲取
wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.admin-1.1.4.tar.gz
2.解壓
#創建目錄
mkdir /tmp/canal-admin
#解壓到此目錄 tar zxvf canal.admin-$version.tar.gz -C /tmp/canal-admin
3.創建存放配置相關表
/target/canal.admin-1.1.4/conf/canal_manager.sql 有sql腳本
我遇到了啟動server報錯 server modified_time不能為null的異常我們將相關表改為可空就行 不影響使用
ALTER TABLE canal_manager.canal_node_server MODIFY modified_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ALTER TABLE canal_manager.canal_adapter_config MODIFY modified_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ALTER TABLE canal_manager.canal_cluster MODIFY modified_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ALTER TABLE canal_manager.canal_config MODIFY modified_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ALTER TABLE canal_manager.canal_instance_config MODIFY modified_time timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ALTER TABLE canal_manager.canal_user MODIFY creation_date timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
4.配置修改
vi conf/application.yml
server: port: 8089 #對外暴露端口 spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 spring.datasource: address: 127.0.0.1:3306 database: canal_manager #存放配置的數據庫 username: canal #數據庫用戶名 password: canal #數據庫密碼 driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false hikari: maximum-pool-size: 30 minimum-idle: 1 canal: adminUser: admin adminPasswd: admin
5.將mysql 驅動包放到lib目錄下
不同mysql版本不一樣如:mysql-connector-java-5.1.47.jar
6.初始化數據庫和表
canal有提供admin的相關數據庫和表的創建語句 找到並到數據庫執行就行了
canalAdmin1.1.4/conf/canal_manager.sql
7.啟動
sh bin/startup.sh
如果啟動不不起來查看日志/logs
5.登錄
http://127.0.0.1:8089 用戶名:admin 密碼:123456
正常出來頁面表示成功
http://127.0.0.1:8089
相關表介紹
UI介紹
集群管理:就是我們集群下的canal-server的公共配置(canal.properties) 由以前各個服務器配配置改為數據庫配置和 zk地址,修改配置通知集群下的所有server
Server管理:注冊到Admin的所有Server (針對單機可以配置各個server的canal.properties)
instance管理 對應以前的example 下的instance配置,不同的client可以配置訂閱不同的instance配置 不同的instance下維護各自的binlog讀取的指針位置 和指定庫
如多個,號隔開 需要像example一樣創建對應的目錄
canal.properties 下的canal.destinations = example
單機配置
1.修改配置canal_local.properties
因為我們走admin維護 相關配置都配置在庫里,所以我們只需要指定admin的地址和自動注冊
# register ip canal.register.ip = # canal admin config canal.admin.manager = 127.0.0.1:8089 #與admin建立的鏈接端口 別沖突了 canal.admin.port = 31110 canal.admin.user = admin canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441 # 知否自動注冊 天ture canal.admin.register.auto = true #集群配置名字 我們是單機就不填 canal.admin.register.cluster = #server暴露端口 canal.port = 11115 canal.metrics.pull.port = 11116
2.啟動server
指定使用canal_local.propertiesl配置文件,這里之前的cana.properties 和example的配置文件已經沒用了
可以發現使用local我們的配置少了很多,其他我們要配置到admin 落庫
./startup.sh local
3.admin增加配置落庫
使用數據庫管理配置 我們將之前配置的canal.properteis配置文件拷貝進來,注釋掉canal.port = 11115 canal.metrics.pull.port = 11116 local里面配置了
看日志觸發了重啟 后續我們就可以用admin啟動和配置了
4.instance配置 example下的instance.properties 拷貝過來就行保存落庫 后續我們可以直接再這里修改相關配置
這里我們改一下名字 熟悉一下此配置在哪里
5.因為上面蓋了名字我們回頭去改配置
將
canal.destinations = example
改為
canal.destinations = example_single
或者
客戶端就可以訂閱不同實例的庫 或者單獨維護binlog讀取指針
canal.destinations = example,example_single
集群配置
1.因為集群多個canal-server 相關配置都是一樣的 除了暴露的端口不一樣 所以我們要先增加集群配置
2.集群配置文件配置
因為集群除了各個server的端口不一樣其他都一樣將 canal.properties拷貝過來 將端口注釋:canal.port = 11111 canal.metrics.pull.port = 11112 local有配置
3.各個canal_local.properties文件修改
# register ip canal.register.ip = # canal admin config canal.admin.manager = 127.0.0.1:8089 canal.admin.port = 21110 canal.admin.user = admin canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441 # admin auto register canal.admin.register.auto = true #canalcluster 應用的配置和zk canal.admin.register.cluster = canalcluster #暴露端口 canal.port = 11111 canal.metrics.pull.port = 11112
canal.port = 11111 ,canal.metrics.pull.port = 11112,canal.admin.port = 21110 我們需要修改保證不沖突 然后啟動各個server
測試
后續我們改配置和查日志和重啟就可以根據admin