备份、升级和恢复哪吒 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。
升级前检查
- 记录当前版本与安装方式。
- 阅读目标版本发布说明。
- 完成一致性备份并复制到另一台机器或对象存储。
- 验证备份完整性和剩余磁盘空间。
- 确认 Caddy、Cloudflare gRPC 与 Agent 版本兼容路径没有变化。
[!warning] V0 与 V1 数据结构 官方文档说明 V0 与 V1 数据库结构不兼容,不能把普通目录复制当作跨大版本迁移方案。
恢复流程
- 停止新服务器上的 Dashboard。
- 将完整
/opt/nezha恢复到相同路径。 - 修正所有权和权限。
- 恢复 systemd 与反向代理配置。
- 启动 Dashboard 并检查日志。
- 验证用户登录、服务器记录、服务监控和 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 复用,没有批量生成新记录。
- 通知、服务监控和权限边界符合预期。
- 旧主机关闭后,新主机仍能独立工作。