- 增加中央与边缘完整配置和部署脚本 - 引入 VictoriaMetrics 数据源与 remote_write 故障排查说明 - 新增 edge-agent 配置脚本、ONVIF 自建 exporter 与 ping 监控示例 Co-authored-by: Cursor <cursoragent@cursor.com>
8.2 KiB
8.2 KiB
中央服务器配置文件说明
目录结构
central-server/
├── docker-compose.yml # Docker Compose 服务编排配置
├── deploy.sh # 部署脚本
├── prometheus.yml # Prometheus 主配置文件
├── alert_rules.yml # 告警规则定义
├── alertmanager/
│ └── alertmanager.yml # Alertmanager 告警管理配置
└── grafana/
├── setup-users.sh # 多用户配置脚本
├── provisioning/
│ ├── datasources/ # 数据源自动配置
│ │ ├── prometheus.yml # Prometheus 数据源
│ │ └── prometheus-admin.yml # 管理员全局数据源
│ └── dashboards/ # 仪表板自动配置
│ └── dashboard.yml # 仪表板配置
└── dashboards/
└── onvif-monitoring.json # ONVIF 监控仪表板
配置文件详解
1. docker-compose.yml
作用:定义所有 Docker 容器的配置和编排
包含的服务:
prometheus-central- Prometheus 中央服务器(端口 9091)grafana- Grafana 可视化仪表板(端口 3000,中文界面)alertmanager- 告警管理器(端口 9093)victoria-metrics- 远程写入接收器(端口 8428)
关键配置:
- 数据存储:所有数据存储在
/storage分区 - 网络:所有容器在
monitoring_net网络中 - 卷挂载:配置文件、数据目录、仪表板等
使用:
docker compose up -d # 启动所有服务
docker compose down # 停止所有服务
2. deploy.sh
作用:自动化部署脚本,一键部署中央服务器
功能:
- ✅ 检查 Docker 和 Docker Compose 环境
- ✅ 检查磁盘空间(根分区和 /storage 分区)
- ✅ 验证配置文件存在性
- ✅ 创建数据目录并设置权限
- ✅ 拉取 Docker 镜像
- ✅ 启动所有服务
- ✅ 检查服务状态
使用:
bash deploy.sh
输出信息:
- 服务访问地址
- 管理命令
- 防火墙提示
- 下一步操作建议
3. prometheus.yml
作用:Prometheus 主配置文件,定义数据收集和查询规则
主要配置:
Global(全局配置)
scrape_interval: 15s # 抓取间隔
evaluation_interval: 15s # 告警规则评估间隔
external_labels:
cluster: 'central-monitoring' # 集群标识
Remote Write(远程写入)
remote_write:
- url: http://victoria-metrics:8428/api/v1/write
- 作用:将 Prometheus 收集的数据写入 VictoriaMetrics
- 目的:接收边缘节点推送的数据
Scrape Configs(抓取配置)
定义了 4 个抓取任务:
- prometheus-central - 抓取自身指标
- victoria-metrics - 抓取 VictoriaMetrics 指标
- alertmanager - 抓取 Alertmanager 指标
- grafana - 抓取 Grafana 指标
Rule Files(告警规则文件)
rule_files:
- "alert_rules.yml"
- 引用
alert_rules.yml文件中的告警规则
Alerting(告警配置)
alerting:
alertmanagers:
- static_configs:
- targets:
- alertmanager:9093
- 配置 Alertmanager 地址,用于发送告警
4. alert_rules.yml
作用:定义告警规则,当监控指标满足条件时触发告警
告警组:
onvif_alerts(ONVIF 设备告警组)
- ONVIFDeviceDown - 设备离线告警(critical)
- ONVIFDeviceHighTemperature - 设备温度过高告警(warning)
- ONVIFDeviceLowStorage - 设备存储空间不足告警(warning)
network_alerts(网络设备告警组)
- NetworkDeviceDown - 网络设备离线告警(critical)
- HighNetworkLatency - 网络延迟过高告警(warning)
告警规则格式:
- alert: AlertName
expr: promql_query # PromQL 查询表达式
for: 1m # 持续时间
labels:
severity: critical # 严重程度
annotations:
summary: "告警摘要"
description: "详细描述"
详细说明:参考 doc/ALERT_RULES_EXPLANATION.md
5. alertmanager/alertmanager.yml
作用:Alertmanager 配置,定义告警路由和通知方式
主要配置:
Global(全局配置)
- SMTP 邮件服务器配置(当前未使用)
Route(路由配置)
- 告警分组规则
- 告警发送间隔
- 默认接收器
Receivers(接收器)
- 当前配置:Webhook
http://127.0.0.1:5001/ - 可配置:邮件、企业微信、钉钉等
Inhibit Rules(抑制规则)
- 避免重复告警
- 当 critical 告警存在时,抑制 warning 告警
详细说明:参考 doc/ALERTMANAGER_CONFIG.md
6. grafana/provisioning/
作用:Grafana 自动配置目录,容器启动时自动加载
datasources/prometheus.yml
作用:自动配置 Prometheus 数据源
配置内容:
- 数据源名称:Prometheus
- 数据源类型:prometheus
- 访问方式:proxy(通过 Grafana 代理)
- URL:
http://prometheus-central:9090 - 默认数据源:是
datasources/prometheus-admin.yml
作用:管理员全局数据源(可选)
特点:
- 允许管理员查看所有数据(不受标签过滤限制)
- 用于管理员查看全局监控数据
dashboards/dashboard.yml
作用:自动加载仪表板配置
配置内容:
- 从
/var/lib/grafana/dashboards目录自动加载仪表板 - 更新间隔:10 秒
- 允许 UI 更新:是
7. grafana/dashboards/onvif-monitoring.json
作用:ONVIF 设备监控仪表板
内容:
- ONVIF 设备状态面板
- 设备在线率仪表
- 其他监控图表
自动加载:通过 dashboard.yml 配置自动加载
8. grafana/setup-users.sh
作用:自动化配置 Grafana 多用户和组织
功能:
- 创建 Grafana 组织
- 创建用户并分配到组织
- 通过 Grafana API 批量配置
使用:
cd central-server/grafana
bash setup-users.sh
详细说明:参考 doc/USER_MANAGEMENT.md
配置文件关系图
docker-compose.yml
│
├─> prometheus.yml ──┐
│ │
├─> alert_rules.yml ──┤──> Prometheus 容器
│ │
└─> alertmanager.yml ─┘──> Alertmanager 容器
│
└─> grafana/
├─> provisioning/ ──> Grafana 自动配置
└─> dashboards/ ────> 仪表板文件
数据流向
边缘节点数据
│
▼
VictoriaMetrics (8428) ──> 存储数据
│
▼
Prometheus (9091) ──┬──> 查询数据 ──> Grafana (3000)
│ │
└──> 评估告警规则 (alert_rules.yml)
│
▼
Alertmanager (9093) ──> 发送通知
配置文件修改指南
修改 Prometheus 配置
- 编辑
prometheus.yml - 重启容器:
docker compose restart prometheus-central - 或使用热重载:
curl -X POST http://localhost:9091/-/reload
修改告警规则
- 编辑
alert_rules.yml - 重启容器:
docker compose restart prometheus-central - 或使用热重载:
curl -X POST http://localhost:9091/-/reload
修改 Alertmanager 配置
- 编辑
alertmanager/alertmanager.yml - 重启容器:
docker compose restart alertmanager
修改 Grafana 配置
- 编辑
grafana/provisioning/下的配置文件 - 重启容器:
docker compose restart grafana - 或通过 Grafana Web UI 修改(会持久化到数据库)
重要提示
- 数据存储:所有数据存储在
/storage分区,避免根分区空间不足 - 端口映射:Prometheus 使用 9091(避免与 cockpit 冲突)
- 配置文件权限:确保配置文件有正确的读取权限
- 网络连通性:确保边缘节点可以访问 8428 端口(VictoriaMetrics)
- 告警通知:当前配置使用 webhook,需要部署接收服务或修改为其他通知方式
相关文档
- 系统架构:
doc/ARCHITECTURE.md - 告警规则:
doc/ALERT_RULES_EXPLANATION.md - Alertmanager 配置:
doc/ALERTMANAGER_CONFIG.md - 用户管理:
doc/USER_MANAGEMENT.md