如何进行数据迁移、备份恢复?
先停止 Dashboard,再备份;恢复完成后,使用对应部署方式的命令启动。 当前一键脚本没有单独的“停止面板”和“启动面板”菜单。
脚本中的“重启并更新面板”会拉取镜像或下载最新版程序,不是单纯重启。备份恢复时不要用它代替下文的启停命令,也不要使用会删除面板目录的“卸载管理面板”。
1. 确认部署方式和备份范围
当前脚本支持 Docker 和独立安装,默认面板目录为 /opt/nezha/dashboard:
- Docker: 使用该目录下的
docker-compose.yaml,服务名为dashboard,将./data挂载到容器的/dashboard/data。 - 独立安装: 程序为该目录下的
app,服务名为nezha-dashboard,由 systemd 或 OpenRC 管理。 - 核心数据:
data/包含配置config.yaml、默认数据库sqlite.db及其他运行数据。备份整个目录,不要只复制数据库主文件。
下面按脚本默认路径操作。若你自定义了数据库、配置或 tsdb.data_path,或者使用外部挂载、符号链接,请另外备份对应的实际数据。反向代理配置、证书及 systemd/OpenRC 服务文件不在面板目录中,也需要另行保留。
先迁移,再升级
本页用于兼容 V2 部署之间的迁移和恢复。建议先使用与源端相同的 Dashboard 版本恢复,再单独升级;一键安装脚本默认获取最新版,不能当作固定版本恢复工具。旧代际数据请先核对对应迁移说明,不要直接覆盖。
2. 停止旧服务器上的 Dashboard
只执行与你的部署方式对应的一组命令。 停止的是 Dashboard,不是各服务器的 Agent;迁移期间监控与告警会暂时不可用。
Docker
sudo docker compose -f /opt/nezha/dashboard/docker-compose.yaml stop -t 60 dashboard
sudo docker compose -f /opt/nezha/dashboard/docker-compose.yaml ps -a确认服务已停止。若安装的是独立的 Compose 命令,将示例中的 docker compose 换成 docker-compose。
独立安装:systemd
sudo systemctl stop nezha-dashboard
sudo systemctl is-active nezha-dashboard应显示 inactive;此时检查命令返回非零是正常的。
独立安装:OpenRC
sudo rc-service nezha-dashboard stop
sudo rc-service nezha-dashboard status确认状态为已停止。若停止失败或日志显示异常退出,先排查,不要直接把运行中的目录打包当作一致性备份。
3. 打包并保存备份
以下示例在旧服务器创建备份;重复备份时换一个新文件名,避免覆盖旧包。
sudo install -d -m 700 /root/nezha-backup
sudo tar -czpf /root/nezha-backup/dashboard-backup.tar.gz -C /opt/nezha dashboard
sudo tar -tzf /root/nezha-backup/dashboard-backup.tar.gz > /dev/null
sudo sha256sum /root/nezha-backup/dashboard-backup.tar.gz确认命令成功,并将备份与校验值保存到另一台机器或备份存储。通过受保护的传输方式复制,传输后再次计算校验值并比对。备份包含配置、数据库和凭据,不要放在公开下载目录。
- 仅做备份: 备份完成后,按第 5 节启动原 Dashboard。
- 迁移服务器: 旧 Dashboard 保持停止,继续在新服务器恢复,避免两个面板同时执行任务和发送通知。
4. 恢复到目标服务器
- 准备运行环境。 新服务器先准备 Docker/Compose,或适配目标 CPU 架构的独立程序与服务文件。可在空目录中参考安装 Dashboard建立部署,但恢复前须确认目标版本兼容并停止新面板。独立安装不能只复制目录就省略服务注册,也不要直接使用另一种 CPU 架构的
app。 - 保留目标端原数据。 若目标已有数据,先停机并另做备份,将现有
data/移至不冲突的备份位置。不要把两套数据库目录直接合并。 - 解压到临时目录。 检查备份后,将其中的整个
dashboard/data/恢复为目标/opt/nezha/dashboard/data/,保留权限和所有权。保留目标环境适用的程序和服务文件;Docker 配置应核对镜像版本、端口和挂载,不要盲目用旧配置覆盖。 - 检查外部依赖。 恢复单独备份的 TSDB 等外部数据,核对运行用户的读写权限、配置路径、反向代理、证书和防火墙。如果地址或端口改变,还需调整域名解析及 Agent 连接地址。
恢复后直接启动
不要在恢复数据后再次选择“安装面板端”或“修改面板配置”:当前脚本会重新生成并覆盖 data/config.yaml,Docker 部署还会重写 Compose 文件。使用下节命令启动即可。
5. 启动并验证
按部署方式选择一组命令。以下 Docker 命令启动已有容器,不拉取新镜像;若目标只有 Compose 文件、还没有容器,先确认其中镜像版本和挂载,再执行 sudo docker compose -f /opt/nezha/dashboard/docker-compose.yaml up -d dashboard 创建容器。
Docker
sudo docker compose -f /opt/nezha/dashboard/docker-compose.yaml start dashboard
sudo docker compose -f /opt/nezha/dashboard/docker-compose.yaml logs --tail 100 dashboard独立安装:systemd
sudo systemctl start nezha-dashboard
sudo systemctl status nezha-dashboard --no-pager若手工新增或修改了 systemd 服务文件,启动前先执行 sudo systemctl daemon-reload。
独立安装:OpenRC
sudo rc-service nezha-dashboard start
sudo rc-service nezha-dashboard status恢复后检查:
- 能用原账号登录,服务器清单、设置、告警和任务仍在。
- Agent 能重新连接,状态与监控数据持续更新。
- 在线历史及已启用的 TSDB 历史数据符合备份时点。
- 日志没有数据库、权限或配置读取错误,域名和反向代理访问正常。
验证完成前保留旧服务器和备份。需要回退时,先停止新 Dashboard,再切回原来的部署和连接地址;不要用旧程序直接打开已经由新版本迁移过的数据库。
脚本依据
上述路径、服务名和菜单行为对应官方中文安装脚本、Compose 模板、systemd 服务文件和 OpenRC 服务文件。