Skip to content

如何进行数据迁移、备份恢复? ​

先停止 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 ​

bash
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 ​

bash
sudo systemctl stop nezha-dashboard
sudo systemctl is-active nezha-dashboard

应显示 inactive;此时检查命令返回非零是正常的。

独立安装:OpenRC ​

bash
sudo rc-service nezha-dashboard stop
sudo rc-service nezha-dashboard status

确认状态为已停止。若停止失败或日志显示异常退出,先排查,不要直接把运行中的目录打包当作一致性备份。

3. 打包并保存备份 ​

以下示例在旧服务器创建备份;重复备份时换一个新文件名,避免覆盖旧包。

bash
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. 恢复到目标服务器 ​

  1. 准备运行环境。 新服务器先准备 Docker/Compose,或适配目标 CPU 架构的独立程序与服务文件。可在空目录中参考安装 Dashboard建立部署,但恢复前须确认目标版本兼容并停止新面板。独立安装不能只复制目录就省略服务注册,也不要直接使用另一种 CPU 架构的 app。
  2. 保留目标端原数据。 若目标已有数据,先停机并另做备份,将现有 data/ 移至不冲突的备份位置。不要把两套数据库目录直接合并。
  3. 解压到临时目录。 检查备份后,将其中的整个 dashboard/data/ 恢复为目标 /opt/nezha/dashboard/data/,保留权限和所有权。保留目标环境适用的程序和服务文件;Docker 配置应核对镜像版本、端口和挂载,不要盲目用旧配置覆盖。
  4. 检查外部依赖。 恢复单独备份的 TSDB 等外部数据,核对运行用户的读写权限、配置路径、反向代理、证书和防火墙。如果地址或端口改变,还需调整域名解析及 Agent 连接地址。

恢复后直接启动

不要在恢复数据后再次选择“安装面板端”或“修改面板配置”:当前脚本会重新生成并覆盖 data/config.yaml,Docker 部署还会重写 Compose 文件。使用下节命令启动即可。

5. 启动并验证 ​

按部署方式选择一组命令。以下 Docker 命令启动已有容器,不拉取新镜像;若目标只有 Compose 文件、还没有容器,先确认其中镜像版本和挂载,再执行 sudo docker compose -f /opt/nezha/dashboard/docker-compose.yaml up -d dashboard 创建容器。

Docker ​

bash
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 ​

bash
sudo systemctl start nezha-dashboard
sudo systemctl status nezha-dashboard --no-pager

若手工新增或修改了 systemd 服务文件,启动前先执行 sudo systemctl daemon-reload。

独立安装:OpenRC ​

bash
sudo rc-service nezha-dashboard start
sudo rc-service nezha-dashboard status

恢复后检查:

  • 能用原账号登录,服务器清单、设置、告警和任务仍在。
  • Agent 能重新连接,状态与监控数据持续更新。
  • 在线历史及已启用的 TSDB 历史数据符合备份时点。
  • 日志没有数据库、权限或配置读取错误,域名和反向代理访问正常。

验证完成前保留旧服务器和备份。需要回退时,先停止新 Dashboard,再切回原来的部署和连接地址;不要用旧程序直接打开已经由新版本迁移过的数据库。

脚本依据 ​

上述路径、服务名和菜单行为对应官方中文安装脚本、Compose 模板、systemd 服务文件和 OpenRC 服务文件。