完善中央与边缘部署、远程写入与监控文档

- 增加中央与边缘完整配置和部署脚本
- 引入 VictoriaMetrics 数据源与 remote_write 故障排查说明
- 新增 edge-agent 配置脚本、ONVIF 自建 exporter 与 ping 监控示例

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Super User
2026-02-25 04:24:40 -05:00
parent 9e37f79a36
commit 95a09fd9d8
52 changed files with 5978 additions and 0 deletions

284
doc/BEST_PRACTICES.md Normal file
View File

@@ -0,0 +1,284 @@
# 最佳实践指南
## 部署最佳实践
### 1. 资源规划
#### 中央服务器
**推荐配置**
- CPU: 4 核+
- 内存: 8GB+
- 磁盘: 100GB+(用于数据存储)
- 网络: 100Mbps+
**数据存储**
- 所有数据存储在 `/storage` 分区
- 建议使用 SSD 提高性能
- 定期清理旧数据
#### 边缘节点
**推荐配置**
- CPU: 2 核+
- 内存: 2GB+
- 磁盘: 10GB+(临时存储)
- 网络: 10Mbps+(用于数据推送)
**资源限制**
- 已在 `docker-compose.yml` 中配置资源限制
- 可根据实际硬件调整
---
### 2. 网络配置
#### 防火墙规则
**中央服务器**
```bash
# 开放端口
firewall-cmd --permanent --add-port=3000/tcp # Grafana
firewall-cmd --permanent --add-port=9091/tcp # Prometheus
firewall-cmd --permanent --add-port=8428/tcp # VictoriaMetrics
firewall-cmd --permanent --add-port=9093/tcp # Alertmanager
firewall-cmd --reload
```
**边缘节点**
- 不需要开放端口(只做数据推送)
- 确保可以访问中央服务器 8428 端口
#### 网络优化
- 使用内网通信(如果可能)
- 配置网络 QoS确保监控数据优先级
- 使用 VPN 或专线(跨网络部署)
---
### 3. 安全配置
#### 密码安全
- ✅ 修改 Grafana 默认密码
- ✅ 使用强密码
- ✅ 定期更换密码
- ✅ 不要在配置文件中硬编码密码
#### 访问控制
- ✅ 配置 Grafana 多用户和权限
- ✅ 限制 Prometheus 访问(仅内网)
- ✅ 使用 HTTPS生产环境
- ✅ 配置防火墙规则
#### 数据安全
- ✅ 定期备份配置文件
- ✅ 定期备份数据目录
- ✅ 加密敏感数据(如设备密码)
---
### 4. 监控配置
#### 监控目标数量
**建议**
- 单边缘节点:不超过 100 个目标
- 中央服务器:可支持数千个目标
- 根据硬件性能调整
#### 抓取间隔
**建议**
- 关键指标15-30 秒
- 一般指标60-120 秒
- 网络探测300 秒5 分钟)
#### 数据保留
**中央服务器**
- Prometheus: 30 天
- VictoriaMetrics: 30 天
**边缘节点**
- Prometheus: 1 小时(只做临时存储)
---
### 5. 告警配置
#### 告警规则设计
**原则**
- 避免告警风暴
- 设置合理的持续时间阈值
- 使用告警抑制规则
- 区分严重程度critical/warning
#### 通知渠道
**推荐配置**
- Critical 告警:立即通知(短信、电话)
- Warning 告警:邮件、企业微信
- 使用告警分组减少通知数量
#### 告警测试
- 定期测试告警规则
- 验证通知渠道
- 检查告警抑制规则
---
### 6. 性能优化
#### Prometheus 优化
- 减少不必要的标签
- 使用 recording rules 预计算指标
- 合理设置抓取间隔
- 使用远程写入减少本地存储压力
#### VictoriaMetrics 优化
- 根据数据量调整保留时间
- 定期清理旧数据
- 监控存储空间使用
#### Grafana 优化
- 限制仪表板面板数量
- 使用数据源缓存
- 优化查询表达式
- 使用变量减少查询次数
---
### 7. 备份和恢复
#### 配置文件备份
```bash
# 备份所有配置文件
tar -czf config-backup-$(date +%Y%m%d).tar.gz \
central-server/*.yml \
central-server/alertmanager/*.yml \
central-server/grafana/provisioning/ \
edge-agent/*.yml \
edge-agent/prometheus-edge/*.yml
```
#### 数据备份
```bash
# 备份数据目录
tar -czf data-backup-$(date +%Y%m%d).tar.gz \
/storage/prometheus-data \
/storage/grafana-data \
/storage/victoria-metrics-data
```
#### 恢复步骤
1. 停止所有服务
2. 恢复配置文件
3. 恢复数据目录
4. 重启服务
5. 验证数据完整性
---
### 8. 监控和维护
#### 监控系统自身
- 监控 Prometheus 自身指标
- 监控 VictoriaMetrics 性能
- 监控 Grafana 性能
- 监控磁盘空间使用
#### 定期维护
- 每周检查日志
- 每月检查磁盘空间
- 每季度更新镜像版本
- 定期测试告警规则
---
### 9. 扩展性考虑
#### 水平扩展
- 可以部署多个边缘节点
- 每个边缘节点有唯一标识
- 中央服务器可以接收多个边缘节点数据
#### 垂直扩展
- 增加中央服务器资源
- 增加数据保留时间
- 增加监控目标数量
---
### 10. 故障恢复
#### 服务恢复
```bash
# 重启所有服务
docker compose restart
# 重启特定服务
docker compose restart prometheus-central
# 完全重建
docker compose down
docker compose up -d
```
#### 数据恢复
- 从备份恢复数据
- 检查数据完整性
- 验证监控目标状态
---
## 生产环境检查清单
### 部署前
- [ ] 硬件资源充足
- [ ] 网络配置正确
- [ ] 防火墙规则配置
- [ ] 备份策略制定
- [ ] 监控告警配置
### 部署后
- [ ] 所有服务正常运行
- [ ] 数据正常推送
- [ ] 告警规则激活
- [ ] 通知渠道测试
- [ ] 性能监控正常
### 运行中
- [ ] 定期检查日志
- [ ] 监控磁盘空间
- [ ] 检查告警状态
- [ ] 验证数据完整性
- [ ] 更新文档
---
## 相关文档
- **部署指南**`doc/DEPLOYMENT_GUIDE.md`
- **故障排查**`doc/TROUBLESHOOTING.md`
- **系统架构**`doc/ARCHITECTURE.md`