数据备份以及恢复⚓︎
1 概述⚓︎
JumpServer 堡垒机数据主要分为两部分:
- 数据库数据:用户数据、资产数据、账号数据、操作日志、命令记录等。
- 静态文件:会话录像、图片、系统日志、配置文件等。
2 数据库备份和恢复⚓︎
注意
- 本文是以同一套环境备份恢复为例,如果是跨环境恢复,请确保数据库版本型号一致,配置文件中的 BOOTSTRAP_TOKEN 和 SECRET_KEY 需要与导出来源的一致!
- 在堡垒机任意一节点(多节点任意一节点即可)执行以下命令备份数据库信息:
./jmsctl.sh backup_db
- 备份文件和当前配置文件会默认保存在持久化文件 /data/jumpserver/backups 目录下,文件名格式为 jumpserver-v4.10.9-ee-xxxx-xx-xx_xx:xx:xx.dump。
- 如果使用 MySQL 或 MariaDB 作为数据库,文件名格式为 jumpserver-v4.10.9-xxxx-xx-xx_xx:xx:xx.sql。
- 在堡垒机任意一节点(多节点任意一节点即可)执行以下命令恢复数据库信息:
jmsctl restore_db /data/jumpserver/backups/jumpserver-v4.10.9-ee-xxxx-xx-xx_xx:xx:xx.dump
3 静态文件备份⚓︎
注意
- 静态文件主要包括会话录像、图片、系统日志等,静态文件默认保存在 /data/jumpserver 下,如果是自定义配置静态文件路径,请根据实际路径进行备份恢复。
- 如果是跨环境恢复需要确认其数据库数据与静态文件数据来源一致,否则录像等数据会无法关联。
- 多节点建议采用NFS等共享存储方案,避免单节点静态文件不一致问题。
-
静态文件目录解释:
├── core │ └── data │ ├── celery │ ├── certs │ ├── logs # 系统日志 │ ├── media # 会话录像等 │ ├── share │ ├── static │ ├── system │ └── version.txt ├── db_backup # 备份的数据库文件和配置文件 ├── koko │ └── data │ ├── certs │ ├── keys # 组件注册信息 │ ├── logs # koko 组件日志,其余组件类似 │ └── replays ├── nginx │ └── data │ └── logs # Nginx 访问日志(jms_web) ├── redis │ └── data # 内置 Redis 数据文件 ├── postgresql │ └── data # 内置 PostgreSQL 数据文件
-
以录像备份为例:
rsync -avh /data/jumpserver/core/data/media/replay/ /backup/jumpserver/replay_backup/ # 录像文件夹以日期和会话 uuid 命名