Files
Distributed-Prometheus/central-server/CONFIGURATION.md
Super User 72a5bf30b4 feat: 天地图瓦片缓存(tile-cache)、拓扑标注助手与文档更新
- tile-cache: 瓦片缓存服务(vec/cva)、启动探针、详细日志、上游超时可配置(UPSTREAM_TIMEOUT_MS)
- central: docker-compose 集成 tile-cache,env.example 增加 TILE_CACHE_* / TIANDITU_TK
- topology-editor: 天地图/缓存加载、GPS 安全来源错误提示、TIANDITU 文档(403/白名单、localhost 测试说明)
- doc: README 部署步骤与 GPS 安全来源说明,TIANDITU_CONFIG 完善

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 11:11:38 -05:00

13 KiB
Raw Blame History

中央服务器配置说明

本文档说明如何配置中央服务器的各项参数。

配置文件结构

中央服务器使用 .env 文件管理所有可配置参数,主要配置文件包括:

  • .env - 环境变量配置文件(从 env.example 复制并修改)
  • docker-compose.yml - Docker Compose 服务定义(使用环境变量)
  • prometheus.yml.template - Prometheus 配置模板(部署时自动生成 prometheus.yml
  • prometheus.yml - Prometheus 实际配置文件(由模板自动生成,不要手动编辑)
  • alert_rules.yml - Prometheus 告警规则配置
  • alertmanager/alertmanager.yml - Alertmanager 告警管理配置

快速开始

  1. 复制环境变量模板

    cd central-server
    cp env.example .env
    
  2. 编辑 .env 文件,根据实际情况修改配置参数

  3. 运行部署脚本

    ./deploy.sh
    

部署脚本会自动:

  • 加载 .env 文件中的环境变量
  • prometheus.yml.template 生成 prometheus.yml
  • 创建数据目录并设置权限
  • 启动所有服务

配置参数说明

端口配置

参数 默认值 说明
PROMETHEUS_PORT 9091 Prometheus Web UI 端口(避免与 cockpit 冲突)
GRAFANA_PORT 3000 Grafana Web UI 端口
ALERTMANAGER_PORT 9093 Alertmanager Web UI 端口
VICTORIAMETRICS_PORT 8428 VictoriaMetrics 端口(边缘节点推送数据到此端口)

注意

  • 如果端口被占用,修改 .env 文件中对应的端口号
  • 修改端口后需要重新运行 ./deploy.sh
  • 确保防火墙已开放相应端口

Grafana 配置

参数 默认值 说明
GRAFANA_ADMIN_PASSWORD admin123 Grafana 管理员密码(首次部署后请立即修改
GRAFANA_DEFAULT_LANGUAGE zh-Hans Grafana 默认语言zh-Hans=简体中文en=英文)
GRAFANA_DEFAULT_THEME light Grafana 默认主题light=浅色dark=深色)

安全建议

  • 生产环境必须修改 GRAFANA_ADMIN_PASSWORD
  • 建议使用强密码至少12位包含大小写字母、数字和特殊字符

Geomap 使用天地图缓存:若在 Grafana 的 Geomap 面板中要用天地图底图且走缓存(不暴露 key可将 Base layer 设为 XYZ Tile layer底图 URLhttp://<本机或 central>:4080/tiles/vec/{z}/{x}/{y},再添加一层:http://<本机或 central>:4080/tiles/cva/{z}/{x}/{y}。需在 central 配置 TIANDITU_TK 与 tile-cache。详见 ../doc/TIANDITU_CONFIG.md

Prometheus 配置

参数 默认值 说明
PROMETHEUS_RETENTION_TIME 30d Prometheus 数据保留时间30d=30天7d=7天
PROMETHEUS_SCRAPE_INTERVAL 15 Prometheus 抓取间隔(秒)
PROMETHEUS_EVALUATION_INTERVAL 15 Prometheus 告警评估间隔(秒)
PROMETHEUS_CLUSTER_NAME central-monitoring Prometheus 集群标识(用于区分不同集群)

性能调优

  • PROMETHEUS_SCRAPE_INTERVAL 越小,数据越实时,但会增加系统负载
  • 建议值15-30秒一般监控60秒低频监控
  • PROMETHEUS_RETENTION_TIME 越大,历史数据保留越久,但占用更多存储空间

远程写入配置

这些参数控制边缘节点向中央服务器推送数据的性能:

参数 默认值 说明
PROMETHEUS_REMOTE_WRITE_MAX_SAMPLES 10000 每次发送的最大样本数
PROMETHEUS_REMOTE_WRITE_CAPACITY 20000 队列容量(样本数)
PROMETHEUS_REMOTE_WRITE_MAX_SHARDS 10 最大分片数(并发写入数)

调优建议

  • 边缘节点较多时,可以增加 MAX_SHARDS 提高并发处理能力
  • 网络不稳定时,可以增加 CAPACITY 提高缓冲能力
  • 一般情况使用默认值即可

VictoriaMetrics 配置

参数 默认值 说明
VICTORIAMETRICS_RETENTION_PERIOD 30d VictoriaMetrics 数据保留时间

注意

  • VictoriaMetrics 是边缘节点数据的长期存储
  • 保留时间越长,占用存储空间越大
  • 建议根据实际存储容量和需求设置

天地图 / 瓦片缓存配置

参数 默认值 说明
TIANDITU_TK (空) 天地图密钥,配置到 .env 中。启用后 tile-cache、拓扑助手「使用服务器缓存」及 Grafana Geomap 使用天地图底图时均使用此密钥,无需在浏览器或 Grafana 中填写。在 天地图开放平台 申请。
TILE_CACHE_PORT 4090 瓦片缓存服务端口
TILE_CACHE_DATA_DIR ./data/tile-cache 瓦片缓存数据目录
TILE_CACHE_TTL_DAYS 7 缓存老化时间(天),超过后该瓦片下次请求时重新向天地图拉取;可改为 15 等

说明:以上参数均在 central-server/.env 中配置;部署时由 docker-compose 传入 tile-cache 容器。

数据存储路径配置

参数 默认值 说明
DATA_STORAGE_ROOT ./data 数据存储根目录(相对于 central-server 目录)
PROMETHEUS_DATA_DIR ./data/prometheus-data Prometheus 数据目录(相对路径)
GRAFANA_DATA_DIR ./data/grafana-data Grafana 数据目录(相对路径)
VICTORIAMETRICS_DATA_DIR ./data/victoria-metrics-data VictoriaMetrics 数据目录(相对路径)

存储说明

  • 默认使用相对路径,数据存储在 central-server/data/ 目录下
  • 部署脚本会自动将相对路径转换为绝对路径Docker 需要绝对路径)
  • 如果需要使用其他路径,可以修改为绝对路径(如 /data/prometheus-data
  • 确保目录有足够的写权限

Traefik 反向代理配置

参数 默认值 说明
TRAEFIK_ENABLED true 是否启用 Traefik 反向代理
TRAEFIK_NETWORK traefik Traefik 网络名称
GRAFANA_DOMAIN grafana.example.com Grafana 域名
PROMETHEUS_DOMAIN prometheus.example.com Prometheus 域名
ALERTMANAGER_DOMAIN alertmanager.example.com Alertmanager 域名
TRAEFIK_ENTRYPOINT web Traefik EntryPoint 名称
TRAEFIK_HTTPS_ENABLED false 是否启用 HTTPS
GRAFANA_ROOT_URL http://localhost:3000 Grafana 根 URL使用 Traefik 时设置为 https://域名)

Traefik 配置说明

  • 启用 Traefik 后,服务将通过域名访问,不再直接暴露端口
  • 需要确保 Traefik 网络已创建:docker network create traefik(如果不存在)
  • 需要配置 DNS 解析,将域名指向 Traefik 服务器
  • VictoriaMetrics 通常不通过 Traefik 访问(边缘节点直接连接)
  • 如果使用 HTTPS需要配置 Traefik 的 TLS 证书
  • NETWORK_NAME 必须与 Traefik 实际网络一致,否则 Traefik 无法转发

Docker 网络配置

参数 默认值 说明
NETWORK_NAME traefik Compose 网络名称(与 Traefik 实际网络一致)
ENABLE_IPV6 false 是否启用 IPv6true/false

网络配置说明

  • NETWORK_NAME 必须与 Traefik 实际网络名称一致,否则 Traefik 无法访问服务
  • 如需 IPv6请设为 true,并确保 Docker 已启用 IPv6

配置示例

示例 1修改端口避免冲突

如果 9091 端口被占用,修改 .env

# 将 Prometheus 端口改为 9092
PROMETHEUS_PORT=9092

示例 2延长数据保留时间

如果需要保留 90 天的历史数据,修改 .env

PROMETHEUS_RETENTION_TIME=90d
VICTORIAMETRICS_RETENTION_PERIOD=90d

注意保留时间越长需要的存储空间越大。90天大约需要

  • 每个边缘节点:约 5-10GB取决于监控目标数量
  • 中央服务器:约 2-5GB

示例 3使用自定义存储路径

如果需要使用其他分区或绝对路径:

# 使用绝对路径(例如使用 /data 分区)
DATA_STORAGE_ROOT=/data
PROMETHEUS_DATA_DIR=/data/prometheus-data
GRAFANA_DATA_DIR=/data/grafana-data
VICTORIAMETRICS_DATA_DIR=/data/victoria-metrics-data

# 或者使用相对路径(相对于 central-server 目录)
PROMETHEUS_DATA_DIR=./data/prometheus-data
GRAFANA_DATA_DIR=./data/grafana-data
VICTORIAMETRICS_DATA_DIR=./data/victoria-metrics-data

示例 4启用 Traefik 反向代理

通过 Traefik 使用域名访问服务:

# 启用 Traefik
TRAEFIK_ENABLED=true
TRAEFIK_NETWORK=traefik
NETWORK_NAME=traefik
ENABLE_IPV6=false

# 配置域名(需要配置 DNS 解析)
GRAFANA_DOMAIN=grafana.yourdomain.com
PROMETHEUS_DOMAIN=prometheus.yourdomain.com
ALERTMANAGER_DOMAIN=alertmanager.yourdomain.com

# 如果使用 HTTPS
TRAEFIK_HTTPS_ENABLED=true
TRAEFIK_ENTRYPOINT=websecure
GRAFANA_ROOT_URL=https://grafana.yourdomain.com

注意

  • 确保 Traefik 网络已创建:docker network create traefik
  • 配置 DNS 解析,将域名指向 Traefik 服务器
  • 如果使用 HTTPS需要在 Traefik 中配置 TLS 证书

示例 5生产环境安全配置

生产环境建议配置:

# 使用强密码
GRAFANA_ADMIN_PASSWORD=YourStrongPassword123!

# 启用 Traefik 反向代理(推荐)
TRAEFIK_ENABLED=true
TRAEFIK_NETWORK=traefik
NETWORK_NAME=traefik
GRAFANA_DOMAIN=grafana.yourdomain.com
PROMETHEUS_DOMAIN=prometheus.yourdomain.com
ALERTMANAGER_DOMAIN=alertmanager.yourdomain.com

# 或使用非标准端口(如果不用 Traefik
GRAFANA_PORT=3001
PROMETHEUS_PORT=9092

# 延长数据保留时间
PROMETHEUS_RETENTION_TIME=90d
VICTORIAMETRICS_RETENTION_PERIOD=90d

配置修改流程

  1. 停止服务

    docker compose down
    # 或
    docker-compose down
    
  2. 编辑 .env 文件,修改需要更改的参数

  3. 重新运行部署脚本

    ./deploy.sh
    

部署脚本会自动:

  • 重新加载环境变量
  • 从模板重新生成 prometheus.yml
  • 更新 Docker Compose 配置
  • 重启所有服务

配置文件说明

docker-compose.yml

Docker Compose 配置文件,定义了所有服务的:

  • 镜像版本
  • 端口映射(使用环境变量)
  • 数据卷挂载(使用环境变量)
  • 环境变量(使用环境变量)
  • 启动命令(使用环境变量)

注意:此文件已配置为使用环境变量,一般不需要手动修改。

prometheus.yml.template

Prometheus 配置模板文件,包含:

  • 全局配置(抓取间隔、评估间隔、集群名称)
  • 远程写入配置(接收边缘节点数据)
  • 抓取配置(抓取本地服务指标)
  • 告警规则配置
  • Alertmanager 配置

注意

  • 此文件是模板,不要直接使用
  • 部署脚本会自动从此模板生成 prometheus.yml
  • 修改配置应通过 .env 文件,而不是直接修改模板

prometheus.yml

Prometheus 实际配置文件,由 prometheus.yml.template 自动生成。

注意

  • 此文件由部署脚本自动生成,不要手动编辑
  • 如果需要修改,应修改 prometheus.yml.template.env 文件

alert_rules.yml

Prometheus 告警规则配置文件,定义了:

  • ONVIF 设备告警规则(设备离线、高温、存储不足)
  • 网络设备告警规则(设备离线、高延迟)

注意:此文件需要手动编辑,修改后需要重启 Prometheus 服务。

alertmanager/alertmanager.yml

Alertmanager 告警管理配置文件,定义了:

  • 告警路由规则
  • 告警分组规则
  • 告警抑制规则
  • 告警接收器(通知渠道)

注意:此文件需要手动编辑,修改后需要重启 Alertmanager 服务。

常见问题

Q1: 修改配置后服务没有生效?

A: 确保:

  1. 已重新运行 ./deploy.sh 脚本
  2. 检查服务是否正常启动:docker compose ps
  3. 查看服务日志:docker compose logs

Q2: 如何查看当前配置?

A:

  • 查看环境变量:cat .env
  • 查看生成的 Prometheus 配置:cat prometheus.yml
  • 查看 Docker Compose 配置:cat docker-compose.yml

Q3: 配置错误导致服务无法启动?

A:

  1. 检查 .env 文件语法(确保没有多余的空格或特殊字符)
  2. 检查端口是否被占用:netstat -tuln | grep <端口>
  3. 检查数据目录权限:ls -ld /storage/*-data
  4. 查看错误日志:docker compose logs

Q4: 如何备份配置?

A:

# 备份所有配置文件
tar -czf central-server-config-backup-$(date +%Y%m%d).tar.gz \
    .env \
    prometheus.yml.template \
    alert_rules.yml \
    alertmanager/alertmanager.yml \
    docker-compose.yml

Q5: 如何恢复默认配置?

A:

# 从模板重新创建 .env
cp env.example .env
# 重新部署
./deploy.sh

相关文档