记录cronsun搭建和对应的数据数据库迁移

背景:公司的cronsun把etcd数据库跑满后影响正常使用

在测试环境centos7 安装部署cronsun进行etcd、mongdb的数据恢复后模拟etcd的数据压缩清理

一、数据库安装

1、单击安装etcd

wget https://github.com/etcd-io/etcd/releases/download/v3.3.13/etcd-v3.3.13-linux-amd64.tar.gz
解压文件
tar -zxvf etcd-v3.3.13-linux-amd64.tar.gz
cd etcd-v3.3.13-linux-amd64

目录下有两个可执行文件etcd 和 etcdctl
cp etcd /usr/bin/
cp etcdctl /usr/bin/

配置服务
# vim /usr/lib/systemd/system/etcd.service    (添加以下内容)
[Unit]
Description=Etcd Server
After=network.target

[Service]
Type=simple
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
ExecStart=/usr/bin/etcd

[Install]
WantedBy=multi-user.target

创建工作文件夹
mkdir -p /var/lib/etcd
mkdir -p /etc/etcd


vim /etc/etcd/etcd.conf     (添加以下内容)
#[member]
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379"
ETCD_ADVERTISE_CLIENT_URLS="http://127.0.0.1:2379"

启动服务添加开机自启
systemctl daemon-reload
systemctl enable etcd.service
systemctl start etcd.service

测试服务状态:
etcdctl cluster-health
[root@node01 ~]# etcdctl cluster-health
member 8e9e05c52164694d is healthy: got healthy result from http://127.0.0.1:2379
cluster is healthy

2、单节点安装mongdb
https://www.cnblogs.com/linu/articles/10135432.html

3、部署cronsun任务管理器
二、cronsun安装
1 下载 cronsun:https://github.com/shunfei/cronsun/releases (选择最新版本即可)
https://github.com/shunfei/cronsun/releases/download/v0.3.5/cronsun-v0.3.5-linux-amd64.zip

2 解压后修改 conf 目录下的配置文件:db.json 和 etcd.json,分别修改 MongoDB 和 etcd 的实际地址。
由于是单节点安装。所以不需要进行修改

3 启动 web:./cronweb -conf conf/base.json (若要后台运行则使用 nohup)
nohup /usr/local/cronsun-v0.3.5/cronweb -conf /usr/local/cronsun-v0.3.5/conf/base.json  &

4 启动 node:./cronnode -conf conf/base.json (若要后台运行则使用 nohup)
nohup /usr/local/cronsun-v0.3.5/cronnode -conf /usr/local/cronsun-v0.3.5/conf/base.json  &

5 访问前台:http://x.x.x.x:7079/ui/  默认用户密码: admin@admin.com / admin

三、etcd的数据备份和恢复
etcd版本采用的3.3.18,3.3版本的需要声明
备份命令为
ETCDCTL_API=3 etcdctl --endpoints $ip:$port snapshot save  $BackupDir/$BackupFile
恢复需要删除/etc/etcd/目录下配置文件内定义的数据目录如下图

删除掉etcd目录后,就可通过备份生成的文件进行数据恢复

ETCDCTL_API=3 etcdctl  snapshot restore $BackupFile --data-dir=/var/lib/etcd/default.etcd/

恢复后可用ETCDCTL_API=3 etcdctl endpoint status --cluster -w table或

ETCDCTL_API=3 etcdctl --endpoints=127.0.0.1:2379 --write-out=table endpoint status 查看数据量大小是否和原来一致

查看目前数据版本

rev=$(ETCDCTL_API=3 etcdctl --endpoints=127.0.0.1:2379 endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*')

 压缩至当前版本

ETCDCTL_API=3 etcdctl --endpoints=127.0.0.1:2379 compact $rev

执行碎片整理回收

ETCDCTL_API=3 etcdctl --endpoints=127.0.0.1:2379 defrag

这里会遇到报错,journalctl -xe -u etcd查看日志发现是回收时间需要较长,而且伴随日志的写入增长导致。稍等一会即可

完成后

ETCDCTL_API=3 etcdctl --endpoints=127.0.0.1:2379 --write-out=table endpoint status 查etcd目前的大小确定压缩后的空间占用大小



posted @ 2021-07-29 11:51  白小纯123  阅读(118)  评论(0编辑  收藏  举报