完善中央与边缘部署、远程写入与监控文档
- 增加中央与边缘完整配置和部署脚本 - 引入 VictoriaMetrics 数据源与 remote_write 故障排查说明 - 新增 edge-agent 配置脚本、ONVIF 自建 exporter 与 ping 监控示例 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
284
doc/BEST_PRACTICES.md
Normal file
284
doc/BEST_PRACTICES.md
Normal 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`
|
||||
Reference in New Issue
Block a user