一、背景说明
每次在升级堡垒机或有重大改动之前,一般都是建议先备份,有备份就可以放心大胆的操作JumpServer了。这里就介绍总结一下备份JumpServer的方式方法。
二、备份堡垒机的方式方法
JumpServer使用的数据库是MariaDB,对于MariaDB数据库,基本大家都知道怎么操作,和MySQL基本一样。所以,第一种方式就是简单粗暴的停服务拷贝。
jmsctl down
cp -a /data/jumpserver /data/jumpserver1
此方法简单,恢复快速,但最好是停服务操作,所以也比较麻烦,当然如果写一个定时任务,每天晚上12点停服务,拷贝一下也方便,但这属于全量的备份方式,比较占空间。
第二种方法则可以借助一些外部的工具,例如navicat或dbvear等之类的一些图形化工具,但单如果是一键安装的,MySQL是容器化部署,端口没有对外开放的,外部的工具是连接不到JumpServer的MariaDB端口,就需要在docker-compose-mariadb.yaml文件中,将数据库的端口映射出去,外部可以映射成别的端口
ports:
- 3306:3306
重启jmsctl即可,外部的工具就可以连接到数据库端口的,数据库的密码则在/opt/jumpserver/config/config.txt文件中查看
最后一种就是使用命令行备份,这里就用mysqldump说明,需要进入部署堡垒机的操作系统,再进入数据库容器中,执行一致性备份,这种方式不用停服务,可以写成增量脚本进行定时执行,同时也不用担心每次备份数据量太大
mysqldump -uroot -p密码 jumpserver --single-transaction > /back.sql
如果结合上面端口映射,可以直接将数据库当成资产纳入堡垒机管理,在堡垒机的作业中心创建一个命令作业,进行定时执行,可以直接到堡垒机的任务中看见自己备份自己的情况
总结一下
第一种备份方式优点是把所有数据都备份下来了,包括录像数据(如果没有更改为对象存储),但需要考虑数据量,毕竟每次备份都是全量备份,备份成功后需要删掉之前的全量备份。
第二种方式是极为简单,使用第三方图形化工具,点击操作就可以完成,但需要手动执行,当然也可能有自动执行的数据库操作图形化工具,只是我还不知道
第三种方式兼顾了备份数据量和自动定时执行的优点,但需要有一定的脚本工地,当然,写个简单的全量脚本,脚本最后删掉上次备份也是可以的。毕竟堡垒机的数据量再大也不会有业务数据库那么大