【简约入门】Canal可视化管理

2,255 阅读2分钟

canal admin

简介

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

概念

  • instance,对应canal-server里的instance,一个最小的订阅mysql的队列
  • server,对应canal-server,一个server里可以包含多个instance
  • 集群,对应一组canal-server
  • instance因为是最原始的业务订阅诉求,它会和 server/集群 这两个面向资源服务属性的进行关联,比如instance A绑定到server A上或者集群 A上,
  • 有了任务和资源的绑定关系后,对应的资源服务就会接收到这个任务配置,在对应的资源上动态加载instance,并提供服务动态加载的过程,有点类似于之前的autoScan机制,只不过基于canal-admin之后可就以变为远程的web操作,而不需要在机器上运维配置文件
  • 将server抽象成资源之后,原本canal-server运行所需要的canal.properties/instance.properties配置文件就需要在web ui上进行统一运维,每个server只需要以最基本的启动配置 (比如知道一下canal-admin的manager地址,以及访问配置的账号、密码即可)

部署

  • 下载 canal-admin, 访问 release 页面 , 选择需要的包下载, 如以 1.1.4 版本为例 wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.admin-1.1.4.tar.gz
  • 解压缩
mkdir /tmp/canal-admin
tar zxvf canal.admin-$version.tar.gz -C /tmp/canal-admin
  • 配置说明

    • application.yml,springboot默认依赖的配置,比如链接数据库的账号密码,链接canal-server admin管理的账号密码
    • logback.xml,日志配置
    • canal-template.properties,canal配置的默认模板,针对canal-server开启自动注册时,会选择这个默认模板
    • instance-template.properties,instance配置的默认模板
  • 配置修改 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
  • 初始化数据源 canal_manager.sql默认会在conf目录下
# 以 root 用户进入 MySQL 命令行。
mysql -h127.1-uroot -p
# 运行初始化 sql 文件
SQL> source conf/canal_manager.sql
  • 启动 sh bin/startup.sh

  • 查看启动日志

vi logs/admin.log
2019-08-3115:43:38.162[main] INFO  o.s.boot.web.embedded.tomcat.TomcatWebServer-Tomcat initialized with port(s):8089(http)
2019-08-3115:43:38.180[main] INFO  org.apache.coyote.http11.Http11NioProtocol-InitializingProtocolHandler["http-nio-8089"]
2019-08-3115:43:38.191[main] INFO  org.apache.catalina.core.StandardService-Starting service [Tomcat]
2019-08-3115:43:38.194[main] INFO  org.apache.catalina.core.StandardEngine-StartingServletEngine:ApacheTomcat/8.5.29
....
2019-08-3115:43:39.789[main] INFO  o.s.w.s.m.m.annotation.ExceptionHandlerExceptionResolver-Detected@ExceptionHandler methods in customExceptionHandler
2019-08-3115:43:39.825[main] INFO  o.s.b.a.web.servlet.WelcomePageHandlerMapping-Adding welcome page:class path resource [public/index.html]
  • 访问页面 看到上面日志表示启动成功了,通过http://127.0.0.1:8089/ 访问,用户密码:admin/123456

实践

  • 创建集群 admin-create.png
  • 创建server

admin-server.png

  • 创建Instance

admin-ins.png

配置项:

  • 修改,主要就是维护instance.properties配置,做了修改之后会触发对应单机或集群server上的instance做动态reload
  • 删除,相当于直接执行instance stop,并执行配置删除
  • 启动/停止,对instance进行状态变更,做了修改会触发对应单机或集群server上的instance做启动/停止操作
  • 日志,主要针对instance运行状态时,获取对应instance的最后100行日志,比如example/example.log