Files
Distributed-Prometheus/doc/CENTRAL_SERVER_CONFIG.md
Super User 95a09fd9d8 完善中央与边缘部署、远程写入与监控文档
- 增加中央与边缘完整配置和部署脚本
- 引入 VictoriaMetrics 数据源与 remote_write 故障排查说明
- 新增 edge-agent 配置脚本、ONVIF 自建 exporter 与 ping 监控示例

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 04:24:40 -05:00

8.2 KiB
Raw Blame History

中央服务器配置文件说明

目录结构

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

作用:自动化部署脚本,一键部署中央服务器

功能

  1. 检查 Docker 和 Docker Compose 环境
  2. 检查磁盘空间(根分区和 /storage 分区)
  3. 验证配置文件存在性
  4. 创建数据目录并设置权限
  5. 拉取 Docker 镜像
  6. 启动所有服务
  7. 检查服务状态

使用

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 个抓取任务:

  1. prometheus-central - 抓取自身指标
  2. victoria-metrics - 抓取 VictoriaMetrics 指标
  3. alertmanager - 抓取 Alertmanager 指标
  4. 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_alertsONVIF 设备告警组)

  • 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 代理)
  • URLhttp://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 配置

  1. 编辑 prometheus.yml
  2. 重启容器:docker compose restart prometheus-central
  3. 或使用热重载:curl -X POST http://localhost:9091/-/reload

修改告警规则

  1. 编辑 alert_rules.yml
  2. 重启容器:docker compose restart prometheus-central
  3. 或使用热重载:curl -X POST http://localhost:9091/-/reload

修改 Alertmanager 配置

  1. 编辑 alertmanager/alertmanager.yml
  2. 重启容器:docker compose restart alertmanager

修改 Grafana 配置

  1. 编辑 grafana/provisioning/ 下的配置文件
  2. 重启容器:docker compose restart grafana
  3. 或通过 Grafana Web UI 修改(会持久化到数据库)

重要提示

  1. 数据存储:所有数据存储在 /storage 分区,避免根分区空间不足
  2. 端口映射Prometheus 使用 9091避免与 cockpit 冲突)
  3. 配置文件权限:确保配置文件有正确的读取权限
  4. 网络连通性:确保边缘节点可以访问 8428 端口VictoriaMetrics
  5. 告警通知:当前配置使用 webhook需要部署接收服务或修改为其他通知方式

相关文档

  • 系统架构doc/ARCHITECTURE.md
  • 告警规则doc/ALERT_RULES_EXPLANATION.md
  • Alertmanager 配置doc/ALERTMANAGER_CONFIG.md
  • 用户管理doc/USER_MANAGEMENT.md