安裝 canal-admin
參考 Canal Admin QuickStart · alibaba/canal Wiki (github.com)
使用
canal-admin設(shè)計(jì)上是為canal提供整體配置管理、節(jié)點(diǎn)運(yùn)維等面向運(yùn)維的功能,提供相對(duì)友好的WebUI操作界面,方便更多用戶快速和安全的操作
設(shè)計(jì)理念
canal-admin的核心模型主要有:
instance,對(duì)應(yīng)canal-server里的instance,一個(gè)最小的訂閱mysql的隊(duì)列
server,對(duì)應(yīng)canal-server,一個(gè)server里可以包含多個(gè)instance
集群,對(duì)應(yīng)一組canal-server,組合在一起面向高可用HA的運(yùn)維
簡(jiǎn)單解釋:
instance因?yàn)槭亲钤嫉臉I(yè)務(wù)訂閱訴求,它會(huì)和 server/集群 這兩個(gè)面向資源服務(wù)屬性的進(jìn)行關(guān)聯(lián),比如instance A綁定到server A上或者集群 A上,
有了任務(wù)和資源的綁定關(guān)系后,對(duì)應(yīng)的資源服務(wù)就會(huì)接收到這個(gè)任務(wù)配置,在對(duì)應(yīng)的資源上動(dòng)態(tài)加載instance,并提供服務(wù)
動(dòng)態(tài)加載的過(guò)程,有點(diǎn)類似于之前的autoScan機(jī)制,只不過(guò)基于canal-admin之后可就以變?yōu)檫h(yuǎn)程的web操作,而不需要在機(jī)器上運(yùn)維配置文件
將server抽象成資源之后,原本canal-server運(yùn)行所需要的canal.properties/instance.properties配置文件就需要在web ui上進(jìn)行統(tǒng)一運(yùn)維,每個(gè)server只需要以最基本的啟動(dòng)配置 (比如知道一下canal-admin的manager地址,以及訪問(wèn)配置的賬號(hào)、密碼即可)
集群運(yùn)維
- 創(chuàng)建集群

- 集群變更

配置項(xiàng):
- 修改集群/刪除集群,屬于基本的集群信息維護(hù)和刪除
- 主配置,主要是指集群對(duì)應(yīng)的canal.properties配置,設(shè)計(jì)上一個(gè)集群的所有server會(huì)共享一份全局canal.properties配置 (如果有個(gè)性化的配置需求,可以創(chuàng)建多個(gè)集群)
- 查看server,主要是指查看掛載在這個(gè)集群下的所有server列表
Server運(yùn)維
- 新建Server

配置項(xiàng):
- 所屬集群,可以選擇為單機(jī) 或者 集群。一般單機(jī)Server的模式主要用于一次性的任務(wù)或者測(cè)試任務(wù)
- Server名稱,唯一即可,方便自己記憶
- Server Ip,機(jī)器ip
- admin端口,canal 1.1.4版本新增的能力,會(huì)在canal-server上提供遠(yuǎn)程管理操作,默認(rèn)值11110
- tcp端口,canal提供netty數(shù)據(jù)訂閱服務(wù)的端口
- metric端口, promethues的exporter監(jiān)控?cái)?shù)據(jù)端口 (未來(lái)會(huì)對(duì)接監(jiān)控)
- Server變更

配置項(xiàng):
- 配置,主要是維護(hù)單機(jī)模式的canal.properties配置,注意:掛載到集群模式的server,不允許單獨(dú)編輯server的canal.properties配置,需要保持集群配置統(tǒng)一
- 修改/刪除,主要是維護(hù)server的基本屬性,比如名字和ip、port
- 啟動(dòng)/停止,主要是提供動(dòng)態(tài)啟停server的能力,比如集群內(nèi)這個(gè)機(jī)器打算下線了,可以先通過(guò)停止釋放instance的運(yùn)行,集群中的其他機(jī)器通過(guò)HA就會(huì)開(kāi)始接管任務(wù)
- 日志,查看server的根日志,主要是canal/canal.log的最后100行日志
- 詳情,主要提供查詢?cè)诋?dāng)前這個(gè)server上運(yùn)行的instance列表,以server維度方便快速做instance的啟動(dòng)、停止操作. 比如針對(duì)集群模式,如果server之間任務(wù)運(yùn)行負(fù)載不均衡,可以通過(guò)對(duì)高負(fù)載Server執(zhí)行部分Instance的停止操作來(lái)達(dá)到均衡的目的 [圖片上傳失敗...(image-f9a113-1657357307894)]
Instance運(yùn)維
- 創(chuàng)建Instance

instance配置比較簡(jiǎn)單,主要關(guān)注:
- 資源關(guān)聯(lián),比如掛載到具體的單機(jī) 或 集群
- instance.properties配置維護(hù),可以載入默認(rèn)模板進(jìn)行修改
- Instance變更

配置項(xiàng):
- 修改,主要就是維護(hù)instance.properties配置,做了修改之后會(huì)觸發(fā)對(duì)應(yīng)單機(jī)或集群server上的instance做動(dòng)態(tài)reload
- 刪除,相當(dāng)于直接執(zhí)行instance stop,并執(zhí)行配置刪除
- 啟動(dòng)/停止,對(duì)instance進(jìn)行狀態(tài)變更,做了修改會(huì)觸發(fā)對(duì)應(yīng)單機(jī)或集群server上的instance做啟動(dòng)/停止操作
- 日志,主要針對(duì)instance運(yùn)行狀態(tài)時(shí),獲取對(duì)應(yīng)instance的最后100行日志,比如example/example.log
系統(tǒng)運(yùn)維
主要是涉及canal-admin的元數(shù)據(jù)配置,配置都在二進(jìn)制包解壓之后的conf目錄下
-rwxr-xr-x 1 agapple staff 403B 8 31 15:43 application.yml
-rwxr-xr-x 1 agapple staff 5.0K 8 31 14:56 canal-template.properties
-rwxr-xr-x 1 agapple staff 3.8K 8 30 22:14 canal_manager.sql
-rwxr-xr-x 1 agapple staff 2.0K 8 31 14:56 instance-template.properties
-rwxr-xr-x 1 agapple staff 1.5K 8 30 22:14 logback.xml
- application.yml,springboot默認(rèn)依賴的配置,比如鏈接數(shù)據(jù)庫(kù)的賬號(hào)密碼,鏈接canal-server admin管理的賬號(hào)密碼
- logback.xml,日志配置
- canal-template.properties,canal配置的默認(rèn)模板,針對(duì)canal-server開(kāi)啟自動(dòng)注冊(cè)時(shí),會(huì)選擇這個(gè)默認(rèn)模板
- instance-template.properties,instance配置的默認(rèn)模板