为什么需要监控与备份
云服务器虽然提供高可用性,但数据丢失、服务中断或性能下降仍可能发生。完善的监控帮你及时发现问题,可靠的备份确保灾难发生时能快速恢复。
本文介绍适合 DMIT 云服务器的监控与备份最佳实践,涵盖工具选择、配置方法和恢复演练。
监控:知道发生了什么
系统资源监控
基础监控应覆盖 CPU、内存、磁盘和网络使用率。轻量方案使用系统自带工具:
# 实时查看
htop # CPU/内存(需安装)
iotop # 磁盘 I/O(需安装)
iftop # 网络(需安装)
# 快照查看
free -h # 内存
df -h # 磁盘
uptime # 负载
对于需要长期趋势的项目,推荐使用轻量监控方案:
- Netdata:开箱即用的实时监控,Web 界面,低资源占用
- Prometheus + Grafana:生产级监控,支持告警和历史数据
- Uptime Kuma:服务可用性监控,支持多种通知渠道
服务健康检查
对关键服务配置健康检查,确保服务异常时能收到通知:
# 简单的 HTTP 健康检查脚本
#!/bin/bash
response=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:80)
if [ "$response" != "200" ]; then
echo "Service down! HTTP $response" | mail -s "Alert" you@example.com
fi
可结合 cron 定时执行,或使用 systemd timer。
日志监控
定期检查系统日志,关注异常登录、服务崩溃和错误:
# 查看认证日志
journalctl -u sshd --since "1 hour ago"
# 查看系统错误
journalctl -p err --since "today"
# Nginx 访问日志分析
tail -f /var/log/nginx/access.log
grep " 500 " /var/log/nginx/access.log
备份:确保数据可恢复
DMIT 快照
DMIT 控制面板支持实例快照功能。快照适合:
- 系统配置变更前的快速回滚
- 实例迁移时的完整复制
- 灾难恢复的基线
快照是实例级别的完整备份,恢复速度快但占用存储空间。建议在重大变更前创建快照。
数据级备份
快照无法替代数据级备份。关键数据应有独立的备份策略:
# 使用 rsync 备份到远程
rsync -avz --delete /var/www/ user@backup-server:/backup/www/
# 使用 tar 归档
tar czf /backup/www-$(date +%Y%m%d).tar.gz /var/www/
# 数据库备份
mysqldump -u root -p --all-databases > /backup/db-$(date +%Y%m%d).sql
pg_dump -U postgres -F c dbname > /backup/db-$(date +%Y%m%d).dump
自动备份脚本
#!/bin/bash
# /opt/backup.sh
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d)
KEEP_DAYS=7
# 备份数据库
mysqldump -u root --all-databases > $BACKUP_DIR/db-$DATE.sql
# 备份网站
tar czf $BACKUP_DIR/www-$DATE.tar.gz /var/www/
# 清理旧备份
find $BACKUP_DIR -name "*.sql" -mtime +$KEEP_DAYS -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +$KEEP_DAYS -delete
# 同步到远程
rsync -az $BACKUP_DIR/ user@remote:/backup/
配合 cron 定时执行:0 2 * * * /opt/backup.sh(每天凌晨 2 点)
3-2-1 备份原则
业界推荐的 3-2-1 备份原则:
- 3 份数据副本(含原始数据)
- 2 种不同存储介质(如本地磁盘 + 远程服务器)
- 1 份异地备份(不同地理位置)
对 DMIT 用户来说,可以将 DMIT 快照作为第一份、rsync 到另一台服务器作为第二份、下载到本地作为第三份。
恢复演练
有备份不等于能恢复——定期演练恢复流程至关重要:
- 在测试环境从备份恢复数据
- 验证数据完整性和服务可用性
- 记录恢复所需时间和步骤
- 更新恢复文档,确保团队成员了解流程
建议每季度至少演练一次,确保备份有效且流程顺畅。
告警通知
监控发现问题时需要及时通知。常见通知方式:
- 邮件:最简单,使用 sendmail 或 msmtp
- Webhook:推送到 Slack/Discord/Telegram
- SMS:关键告警使用短信通知
# Telegram 通知示例
curl -s -X POST https://api.telegram.org/bot<TOKEN>/sendMessage \
-d chat_id=<CHAT_ID> \
-d text="Server alert: disk usage over 90%"
检查清单
| 项目 | 建议 |
|---|---|
| 系统监控 | htop/netdata 或 Prometheus |
| 服务健康检查 | cron + curl 脚本或 Uptime Kuma |
| 日志监控 | journalctl 定期检查 |
| DMIT 快照 | 变更前创建 |
| 数据备份 | rsync/tar + 数据库 dump |
| 异地备份 | rsync 到远程服务器 |
| 自动备份 | cron 定时执行 |
| 恢复演练 | 每季度至少一次 |
| 告警通知 | 邮件/Webhook/SMS |
更多 DMIT 使用指南可参考新手指南与《SSH 安全加固》。
本文核对日期:2026-08-18。工具以各自官方文档为准。