备份、升级和恢复哪吒 Dashboard

建立哪吒 Dashboard 的一致性备份、升级前检查、恢复和迁移验证流程。

#type / howto #status / evergreen #tech / ops #resource / nezha #platform / linux #platform / server

备份、升级和恢复哪吒 Dashboard

[!info] related notes

目标与恢复点

备份必须能恢复 Dashboard 配置、SQLite 数据、用户与服务器记录,并让现有 Agent 使用原 UUID 重新上线。仅备份二进制文件没有价值。

备份对象

独立部署通常需要:

  • /opt/nezha/dashboard/data/:配置和 SQLite。
  • systemd unit:确认启动用户、WorkingDirectory 和环境变量。
  • Caddy/Nginx 配置和证书获取方式。
  • 自定义前端模板、通知配置和额外资源。
  • 当前 Dashboard 与 Agent 版本清单。

不要把密钥明文放进公开仓库。备份应加密、限制访问并验证可恢复性。

SQLite 一致性备份

短暂停机最简单可靠:

sudo systemctl stop nezha-dashboard
sudo tar -C /opt -czf /var/backups/nezha-$(date +%F).tar.gz nezha
sudo systemctl start nezha-dashboard

若必须在线备份数据库,使用 SQLite 自身备份命令,而不是在高写入时直接复制文件:

sudo sqlite3 /opt/nezha/dashboard/data/sqlite.db \
  '.backup /var/backups/nezha-sqlite.db'
sudo sqlite3 /var/backups/nezha-sqlite.db 'PRAGMA integrity_check;'

期望输出为 ok

升级前检查

  1. 记录当前版本与安装方式。
  2. 阅读目标版本发布说明。
  3. 完成一致性备份并复制到另一台机器或对象存储。
  4. 验证备份完整性和剩余磁盘空间。
  5. 确认 Caddy、Cloudflare gRPC 与 Agent 版本兼容路径没有变化。

[!warning] V0 与 V1 数据结构 官方文档说明 V0 与 V1 数据库结构不兼容,不能把普通目录复制当作跨大版本迁移方案。

恢复流程

  1. 停止新服务器上的 Dashboard。
  2. 将完整 /opt/nezha 恢复到相同路径。
  3. 修正所有权和权限。
  4. 恢复 systemd 与反向代理配置。
  5. 启动 Dashboard 并检查日志。
  6. 验证用户登录、服务器记录、服务监控和 Agent 重连。
sudo systemctl daemon-reload
sudo systemctl restart nezha-dashboard
sudo systemctl status nezha-dashboard --no-pager
sudo journalctl -u nezha-dashboard -e --no-pager

恢复验证

  • PRAGMA integrity_check 返回 ok
  • Dashboard 版本和数据库迁移成功。
  • Caddy gRPC 探测返回 application/grpc
  • 原服务器 UUID 复用,没有批量生成新记录。
  • 通知、服务监控和权限边界符合预期。
  • 旧主机关闭后,新主机仍能独立工作。

资料来源

创建于 2026/7/20 更新于 2026/7/20