全新安装(Linux/MacOS)
简述
本文档主要介绍如何在 Linux/MacOS 系统下,全新安装 CloudCanal。非 Linux/Unix 系列系统,高可用部署,版本升级请参考文章结尾 关联文章 章节。
请务必完整阅读本文,尤其是使用教程(必读)章节的内容,避免由于操作不当影响体验 CloudCanal。
安装步骤
1. 机器准备
- 操作系统: Ubuntu/CentOS/MacOS
- 硬件架构: x86 或 arm64(可跑,但会比较慢),不支持 vmware、virtualbox 和 windows 的 linux 子系统
- CPU: 4核
- 内存: 8GB(推荐更大容量内存)
2. 环境准备
- CloudCanal 是一个分布式系统,故会占用一些端口,部署前请确保未被其他应用占用
- 8111、9090、55000、25000、55005、7007
- 控制台请使用 Chrome 浏览器 访问,其他浏览器可能出现体验不畅等问题
3. docker 准备
如您的机器没有安装 docker ,请先安装(版本 17 以上,请勿使用过低版本的 docker )。
如您的机器没有安装 docker-compose 环境,请先安装。
- 官方文档指导安装: https://docs.docker.com/compose/install/#alternative-install-options
- 国内镜像站安装
curl -L https://get.daocloud.io/docker/compose/releases/download/1.28.5/docker-compose-`uname -s`-`uname -m` >
/usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose如您的操作系统为 MacOS,请提前为 docker 分配内存
4.下载安装包
登录官方网站进行下载
5.解压安装包
安装包为 cloudcanal.7z,包含了镜像和管理脚本
安装 7z 解压工具(如果已经安装,此步略过)
# 安装7z命令(centos系)
sudo yum install p7zip p7zip-plugins
# 安装7z命令(ubuntu系)
sudo apt-get install p7zip-full p7zip-rar
# 安装7z命令(macOS)
brew install 7z进入安装包所在目录,解压缩
- 7z x cloudcanal.7z
解压目录如下,其中包括
- 镜像:包含四个 tar 压缩文件
- 脚本:启动、更新和停止,以及 scripts 运维脚本目录
- 日志与配置文件:日志为 docker-compose 启动日志,配置文件为 docker-compose 配置文件
[root@localhost tar]# ll
-rw-------. 1 root root 862506496 Mar 25 11:47 console.tar
-rw-r--r--. 1 root root 1392 Mar 25 12:07 docker-compose.yml
-rw-------. 1 root root 454221312 Mar 25 11:47 mysql.tar
-rw-------. 1 root root 174073344 Mar 25 11:49 prometheus.tar
-rwxr-xr-x. 2 root root 124 Mar 25 12:05 scripts
-rwxr-xr-x. 1 root root 63 Mar 25 12:05 shutdown.sh
-rw-------. 1 root root 1231059968 Mar 25 11:48 sidecar.tar
-rwxr-xr-x. 1 root root 2669 Mar 25 12:05 startup.sh
-rwxr-xr-x. 1 root root 2031 Mar 25 12:05 upgrade.sh
6. 启动CloudCanal
7. 确认启动成功
- 启动过程将耗时 1 分钟左右,访问控制台
http://{您部署机器的ip}:8111
正确登录并开始操作
使用教程(必读)
为了方便您一开始快速体验 CloudCanal ,我们已自动帮您做好了一些初始化的工作
- 请务必使用提供的默认账号登入,方便您快速体验
- 如遇需要发送短信的场景,先点击获取验证码,然后输入短信验证码 777777 即可
- 试用用户
- 试用密码
- clougence2021
- 默认已添加测试 MySQL,并已准备好表和数据
- cloudcanal_test_a(源端)
- cloudcanal_test_b(目标端)
- 默认已添加一台运行机器,用于执行具体的数据同步任务
FAQ
1. 我怎么访问 CloudCanal 元数据库?
- 在 docker 宿主机上执行执行命令
mysql -uclougence -h127.0.0.1 -P25000 -p123456
登录 - CloudCanal 元数据库名称为 cloudcana_console
2. 我怎么查看相关日志?
- CloudCanal docker 版的日志路径在压缩包解压路径下。
- console日志: ${安装包解压路径}/console_data/logs/cloudcanal/console/console.log
- sidecar日志: ${安装包解压路径}/sidecar_data/logs/cloudcanal/sidecar/sidecar.log
- tasks日志: ${安装包解压路径}/sidecar_data/logs/cloudcanal/tasks/xxx.log
3. 报错! mount through procfd: possibly malicious path detected
- 如果采用 virtual box 这样的虚拟机,使用docker时会遇到这样的问题。当前不支持在虚拟机上执行
4. 报错! manifest for clougence not found manifest unknow
- 一般是没有正常安装镜像或者历史老版本残留数据影响导致,请先通过 scripts 中的 delete_all.sh 脚本清理镜像、容器、卷,然后再执行startup.sh脚本
5. 报错Failed to program FILTER chain: iptables failed: iptables --wait -I FORWARD … Couldn’t load target ‘DOCKER’: No such file or directory
- 跟宿主机的iptable相关,如果之前对iptable进行过操作,需要重启docker服务。
6. 数据源地址是 172.17 开头的网络的问题
- 原因描述
- 由于docker自身的容器默认网络docker0,它的默认网段是172.17.0.0/16,如果您的数据源刚好与它重合了,会导致连接不上数据源的情况,虽然这种情况很少见。由于我们CloudCanal容器版使用用docker创建的cloudcanal-network它的网段是172.33.238.0/24,docker为了隔离docker的各个bridge网络,彼此是ping不通的,即cloudcanal-network网络与docker0网络无法通信。请求连接数据源的地址如果刚好是172.17开头的,请求的数据包(由处于cloudcanal-network网络的sidecar发出),会被docker误以为是访问docker0网络的,也会被docker拦截下来。
- 解决方案
- 关闭正在运行的CloudCanal容器,然后修改docker0网段
vim /etc/docker/daemon.json
{ “bip”: “172.22.0.1/16” }
- 关闭正在运行的CloudCanal容器,然后修改docker0网段
7. 可以调节sidecar和console的内存吗?报错OOM怎么办?
登入sidecar和console各自的容器,修改脚本内JVM分配的堆大小即可,变量为:JVM_HEAP_SIZE_MB。
### sidecar启动脚本地址
/home/clougence/cloudcanal/sidecar/bin/startSidecar.sh
### console启动脚本地址
/home/clougence/cloudcanal/console/bin/startSidecar.sh
8.如果出现安装的时候执行sh startup.sh报错[[ not found
- 该情况一般出现与系统相关,例如系统为ubuntu的,可以使用bash startup.sh命令进行启动