使用 Linux Binaries 方式部署 Canal Admin

canal-admin 设计上是为 canal 提供整体配置管理、节点运维等面向运维的功能,提供相对友好的WebUI操作界面,方便更多用户快速和安全的操作

canal-admin 的限定依赖:

  • MySQL,用于存储配置和节点等相关数据
  • canal 版本,要求 >=1.1.4 (需要依赖 canal-server 提供面向 admin 的动态运维管理接口)

参考:

https://github.com/alibaba/canal/wiki/Canal-Admin-QuickStart

下载 Canal Admin 安装文件

从浏览器 或 命令行 下载最新稳定的 Canal Admin 安装文件将其安装到系统中 $PATH。

注意:可先网页下载到本地,上传到 /usr/local/src 目录下,也可以使用 wget 下载;

访问 release 页面 , 选择需要的包下载, 如以 1.1.6 版本为例

https://github.com/alibaba/canal/releases

从命令行下载并安装(推荐)
  • Standalone Linux Binaries (64 Bit)
$ cd /usr/local/src && wget https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.admin-1.1.6.tar.gz --no-check-certificate
$ mkdir -p /usr/local/canal.admin-1.1.6
$ cd /usr/local/src && tar zxf canal.admin-1.1.6.tar.gz -C /usr/local/canal.admin-1.1.6
$ cd .. && mv canal.admin-1.1.6/ canal-admin

解压完成后,进入 /usr/local/canal-admin 目录,可以看到如下结构

drwxr-xr-x  2 root root 4096  5月 28 10:07 bin/
drwxr-xr-x  3 root root 4096  5月 28 10:07 conf/
drwxr-xr-x  2 root root 4096  5月 28 10:07 lib/
drwxrwxrwx  2 root root 4096  8月 11  2022 logs/

快速启动 Canal Admin

1. 修改配置
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: 123456
2. 初始化元数据库
mysql -h127.1 -uroot -p
# 导入初始化SQL
> source conf/canal_manager.sql
  • a. 初始化SQL脚本里会默认创建canal_manager的数据库,建议使用root等有超级权限的账号进行初始化
  • b. canal_manager.sql默认会在conf目录下,也可以通过链接下载 canal_manager.sql
3. 启动
sh bin/startup.sh

查看 admin 日志

tail -f logs/admin.log

2019-08-31 15:43:38.162 [main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8089 (http)
2019-08-31 15:43:38.180 [main] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8089"]
2019-08-31 15:43:38.191 [main] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
2019-08-31 15:43:38.194 [main] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet Engine: Apache Tomcat/8.5.29
....
2019-08-31 15:43:39.789 [main] INFO  o.s.w.s.m.m.annotation.ExceptionHandlerExceptionResolver - Detected @ExceptionHandler methods in customExceptionHandler
2019-08-31 15:43:39.825 [main] INFO  o.s.b.a.web.servlet.WelcomePageHandlerMapping - Adding welcome page: class path resource [public/index.html]

此时代表canal-admin已经启动成功,可以通过 http://127.0.0.1:8089/ 访问,默认密码:admin/123456

4. 关闭
sh bin/stop.sh
5. canal-server 端配置

使用了 Canal Admin 后,Canal Server 将改用使用 Canal Admin 统一管理,Canal Server 的配置将从 Canal Admin 中获取,这时,可将 Canal Server 的配置进行类似下面的修改

使用 canal_local.properties 的配置覆盖 canal.properties

# register ip
canal.register.ip =

# canal admin config
canal.admin.manager = 127.0.0.1:8089
canal.admin.port = 11110
canal.admin.user = admin
canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441
# admin auto register
canal.admin.register.auto = true
canal.admin.register.cluster =

启动 admin-server 即可。

或在启动命令中使用参数:sh bin/startup.sh local 指定配置

创建 systemd 服务文件

创建 /etc/systemd/system/canal-admin.service 服务文件

[root@local ~]# vi /lib/systemd/system/canal-admin.service

脚本内容:

[Unit]
Description=Canal Admin
Documentation=https://github.com/alibaba/canal/wiki/Canal-Admin-QuickStart
Wants=network-online.target
After=network-online.target

[Service]
User=root
Type=forking
Environment=JAVA_HOME='/usr/local/java/'
Environment=JAVA='/usr/local/java/bin/java'
ExecStart=/usr/local/canal-admin/bin/startup.sh
ExecStop=/usr/local/canal-admin/bin/stop.sh
ExecReload=/usr/local/canal-admin/bin/restart.sh
# RPM Linux
#ExecRestart=/usr/local/canal-admin/bin/restart.sh
Restart=on-failure
StartLimitInterval=60
StartLimitBurst=50

[Install]
WantedBy=multi-user.target

设置随机启动:

[root@local ~]# systemctl daemon-reload
[root@local ~]# systemctl disable canal-admin.service
[root@local ~]# systemctl enable canal-admin.service
[root@local ~]# systemctl start canal-admin.service
[root@local ~]# systemctl status canal-admin.service
[root@local ~]# systemctl stop canal-admin.service
[root@local ~]# systemctl restart canal-admin.service
作者:Jeebiz  创建时间:2023-05-29 09:57
最后编辑:Jeebiz  更新时间:2024-07-10 22:56