- 中央:config/(prometheus,alertmanager,grafana)、apps/(tile-cache,topology-editor) - 边缘:config/(vmagent,blackbox,targets)、apps/(onvif-exporter) - env: TRAEFIK_PROVIDER、prometheus/env.example 详细说明 - 文档:README/doc 重构,EDGE_CACHE 合并到 EDGE_AGENT_CONFIG - targets.csv 更新流程说明,ARCHITECTURE 图收窄 Made-with: Cursor
282 lines
4.9 KiB
Markdown
282 lines
4.9 KiB
Markdown
# 最佳实践指南
|
||
|
||
## 部署最佳实践
|
||
|
||
### 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/config/ \
|
||
edge-agent/config/
|
||
```
|
||
|
||
#### 数据备份
|
||
|
||
```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`
|