0


canal-admin的部署与使用,及相关监控

简介

哈喽各位大佬,在之前,楼主分享过用canal做数据同步的事情,那个是canal-server,这次来分享一下canal配套的服务,canal-admin的使用

在开始介绍canal-admin之前,先简单说一下canal-admin三问,是什么,有什么用,怎么用

canal-admin是什么

canal-admin是与canal-server配套的管理端,也是阿里一同出的,都在canal的github官网上

canal-admin有什么用

canal-admin可以管理canal-server的一些功能,使用等,并且,canal-admin因为有UI页面,所以对于正常使用来说,可以防止很多命令行带来的不便及误操作

canal-admin怎么用

ok,大佬请往下看~

canal-admin的获取

目前,canal-admin可从github上直接获取

附地址给各位大佬:https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.admin-1.1.5.tar.gzhttps://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.admin-1.1.5.tar.gz官方已经更新到了1.1.6,但,我还是用的1.1.5,因为我们线上是1.1.4,为了稳定,先不用最新版

或者用命令也ok的

wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.admin-1.1.5.tar.gz

canal-admin的安装

canal-admin的安装十分简单,就是解压,解压完了,就安装完了

mkdir /usr/local/bin/canal-admin
tar zxvf canal.admin-1.1.5.tar.gz

完成后,你将看到如下目录结构(这个tar包不是,是我没处理)

canal-admin的启动使用

ok,你成功部署了canal-admin,可以尝试启动了

but!不要着急,启动前, 需要做一些准备工作

修改配置

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 //canal-admin使用的数据库
  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-admin已经提供了初始化语句,我们可以使用root等有权限的账号执行

然后我们就可以启动了,直接上 bin 目录,启动它!

sh bin/startup.sh

好奇的话可以看看日志哦 /logs/admin.log

启动之后,我们可以访问地址来查看canal-admin页面

默认端口 8089,上面配置文件的哈,默认用户 admin/123456

登陆成功,恭喜你,已经成功开始使用canal-admin了!

canal-admin与canal-server的整合

说了整合,那就是canal-admin和canal-server一起,所以说,canal-server的配置也要改的喔

我们可以选择更改canal-server的canal_local.properties的配置覆盖canal.properties

# register ip  注册ip
canal.register.ip =

# canal admin config  连接的canal-admin的信息
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 =

我们来说明一下,这个user和passwd,其实就是我们在上面canal-admin配置文件看到的用户名和密码,只不过这个passwd,是加密过的

canal.admin.register.auto:自动注册的意思,如果没有配置,canal-server 启动后需要自行在 canal-server 上面添加

canal.admin.register.cluster:这个配置如果不写代表当前的 canal-server 是一个单机节点,如果添加的名字在 canal-admin 上面没有提前注册,canal-server 启动时会报错

改完之后,启动canal-server,启动的时候,记得带参数,指定local配置

sh bin/startup.sh local

启动之后,就可以在canal-admin上看到对应的server信息

canal-admin管理canal-server

我们通过canal-admin可以管理某个server的状态

canal-admin管理canal-server集群

canal-admin可以创建管理canal-server集群,让我们在页面上进行操作

同样,创建完集群,可以进行管理

注意,如果采用了集群,那么canal-server集群的配置,只能在canal-admin进行,这就意味着集群内只支持一种消息发送模式

这儿慎重,改完有可能导致重启

canal-admin管理instance实例

在上面canal-server和canal-admin都搞完之后,我们就可以创建对应的实例进行数据的操作

我们尝试新建一个instance

我们可以指定instance名称,所属集群,载入模板后,可以配置过滤规则什么的

  • canal.instance.master.address:数据库地址
  • canal.instance.dbUsername:数据库用户名
  • canal.instance.dbPassword:数据库密码
  • canal.mq.topic:mq的topic
  • canal.instance.filter.regex=订阅的库表名单

保存过后,就可以在某个canal-server上运行了

当然,我们也可以操作对应的instance

** 注意,canal-server集群不提供负载均衡,只有高可用!**

canal-admin与canal-server的相关监控

这个监控主要用到 prometheus

prometheus 官网:

https://prometheus.iohttps://prometheus.io我们需要在 prometheus 增加对应的 job

 - job_name: 'canal'
    static_configs:
    - targets: ['localhost:11112'] //端口配置即为canal.properties中的canal.metrics.pull.port

部署 grafana

grafana官网

Grafana: The open observability platform | Grafana Labshttps://grafana.com

配置prometheus datasource

导入模板,模板在 canal-server的conf目录下 conf/metrics/Canal_instances_tmpl.json

总之,这块大家可以自己搞一下,完了就是这个效果

监控展示指标

监控相关原始指标列表

当然,监控和指标这个,就看大家怎么需要了

ok,完结撒花~


本文转载自: https://blog.csdn.net/weixin_46097842/article/details/125019459
版权归原作者 是菜菜的小严惜哎 所有, 如有侵权,请联系我们删除。

“canal-admin的部署与使用,及相关监控”的评论:

还没有评论