Files
Distributed-Prometheus/doc/BEST_PRACTICES.md
root c4825c2d27 feat: 引入 vmauth 鉴权与严格多租户
- 对外端口统一为 18428(vmauth 入口),VM 不再直接暴露宿主机端口
- 边缘 vmagent 与中央 Prometheus remote_write 增加 basic auth
- 支持 tenants.csv 驱动的 per-tenant 写入/查询隔离,并提供管理员跨租户只读查询
- 更新 Grafana provisioning 与部署/文档

Made-with: Cursor
2026-04-22 11:41:13 +00:00

282 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 最佳实践指南
## 部署最佳实践
### 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=18428/tcp # VictoriaMetrics
firewall-cmd --permanent --add-port=9093/tcp # Alertmanager
firewall-cmd --reload
```
**边缘节点**
- 不需要开放端口(只做数据推送)
- 确保可以访问中央服务器 18428 端口
#### 网络优化
- 使用内网通信(如果可能)
- 配置网络 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`