refactor: config/apps 目录重组、文档重构、架构图收窄

- 中央: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
This commit is contained in:
2026-02-28 22:05:43 -05:00
parent 650e5145f1
commit ab1515dffb
48 changed files with 2071 additions and 509 deletions

View File

@@ -1,55 +1,85 @@
# 中央服务器环境变量配置
# 复制此文件为 .env 并根据实际情况修改
# =============================================================================
# 中央服务器环境变量配置模板
# =============================================================================
#
# 【用途】
# 本文件为 central-server 所有可配置参数的模板,供 deploy.sh 和 docker-compose 使用。
# 部署脚本 deploy.sh 会读取 .env并将部分变量代入 prometheus.yml.template 生成 prometheus.yml。
#
# 【使用方式】
# 1. 复制为 .env cp env.example .env
# 2. 编辑 .env按实际环境修改参数
# 3. 运行部署脚本: ./deploy.sh
#
# 若不存在 .envdeploy.sh 会自动从 env.example 创建,并提示修改后重试。
#
# 【变量去向】
# - deploy.sh加载 .env生成 prometheus.yml创建数据目录启动 docker-compose
# - docker-compose端口、数据目录、容器环境变量、Traefik 标签等
# - prometheus.yml.templatePROMETHEUS_*、VICTORIAMETRICS_PORT 等(见模板头部)
#
# 【修改生效】
# 修改 .env 后需重新运行 ./deploy.sh。不要直接编辑 prometheus.yml其由模板生成。
#
# =============================================================================
# ============================================
# 端口配置
# ============================================
# 宿主机映射端口,对应各服务容器内端口。端口冲突时修改此处。
# Prometheus 端口(避免与 cockpit 冲突
# Prometheus Web UI 端口(避免与 cockpit 9090 冲突,故默认 9091
# 访问http://localhost:${PROMETHEUS_PORT}
PROMETHEUS_PORT=9091
# Grafana 端口
# Grafana Web UI 端口
# 访问http://localhost:${GRAFANA_PORT}
GRAFANA_PORT=3000
# Alertmanager 端口
# Alertmanager Web UI 端口
ALERTMANAGER_PORT=9093
# VictoriaMetrics 端口(边缘节点推送数据到此端口)
# VictoriaMetrics 端口(边缘 vmagent 通过 remote_write 推送到此端口)
# 必须与边缘侧 CENTRAL_VM_URL 中的端口一致;通常不通过 Traefik边缘直连
VICTORIAMETRICS_PORT=8428
# ============================================
# Grafana 配置
# ============================================
# Grafana 管理员密码
# Grafana 管理员密码(生产环境必须修改,建议 12 位以上强密码)
GRAFANA_ADMIN_PASSWORD=admin123
# Grafana 默认语言
# Grafana 默认语言zh-Hans 简体中文en 英文
GRAFANA_DEFAULT_LANGUAGE=zh-Hans
# Grafana 默认主题
# Grafana 默认主题light 浅色dark 深色
GRAFANA_DEFAULT_THEME=light
# Grafana 根 URL用于 Traefik 反向代理,如果使用 Traefik设置为 https://grafana.example.com
# Grafana 根 URL使用 Traefik 时设为对外访问地址,如 https://grafana.example.com
# 影响登录跳转、OAuth 回调等
GRAFANA_ROOT_URL=http://localhost:3000
# ============================================
# Prometheus 配置
# ============================================
# 部分变量会代入 prometheus.yml.template 生成 prometheus.yml
# Prometheus 数据保留时间
# Prometheus 本地 TSDB 数据保留时间(如 30d、7d、1y
PROMETHEUS_RETENTION_TIME=30d
# Prometheus 抓取间隔(秒)
# 抓取间隔(秒),影响中央 Prometheus 抓取本机服务的频率
# 建议 1560越小越实时负载越高
PROMETHEUS_SCRAPE_INTERVAL=15
# Prometheus 告警评估间隔(秒)
# 告警规则评估间隔(秒)
PROMETHEUS_EVALUATION_INTERVAL=15
# Prometheus 集群标识
# 集群标识,作为 external_labels 中的 cluster 标签,用于区分多集群
PROMETHEUS_CLUSTER_NAME=central-monitoring
# 远程写入队列配置
# remote_write 到 VictoriaMetrics 的队列参数(中央 Prometheus 将抓取数据推送到 VM
# 边缘写入量大时可适当调大;一般保持默认即可
PROMETHEUS_REMOTE_WRITE_MAX_SAMPLES=10000
PROMETHEUS_REMOTE_WRITE_CAPACITY=20000
PROMETHEUS_REMOTE_WRITE_MAX_SHARDS=10
@@ -57,81 +87,83 @@ PROMETHEUS_REMOTE_WRITE_MAX_SHARDS=10
# ============================================
# VictoriaMetrics 配置
# ============================================
# VM 接收边缘 remote_write 并存储Grafana 数据源通常指向 VM
# VictoriaMetrics 数据保留时间
# VM 数据保留时间(如 30d、90d
VICTORIAMETRICS_RETENTION_PERIOD=30d
# ============================================
# 数据存储路径
# ============================================
# 相对于 central-server 目录deploy.sh 会转换为绝对路径供 Docker 使用
# 数据存储根目录(所有数据存储在此目录下,相对于 central-server 目录
# 使用相对路径,数据将存储在 central-server 目录下的 data 子目录中
# 数据存储根目录(可选,部分脚本可能引用
DATA_STORAGE_ROOT=./data
# Prometheus 数据目录
# Prometheus 本地 TSDB 数据目录
PROMETHEUS_DATA_DIR=./data/prometheus-data
# Grafana 数据目录
# Grafana 数据库与插件数据目录
GRAFANA_DATA_DIR=./data/grafana-data
# VictoriaMetrics 数据目录
# VictoriaMetrics 时序数据目录
VICTORIAMETRICS_DATA_DIR=./data/victoria-metrics-data
# 天地图瓦片缓存(密钥与缓存参数均在 .env 中配置
# 在 .env 中设置 TIANDITU_TK 后tile-cache 与拓扑助手「使用服务器缓存」、Grafana Geomap 方可使用天地图
# 天地图瓦片缓存(供 topology-editor、Grafana Geomap 使用
# 在 .env 中设置 TIANDITU_TK 后tile-cache 才可正常工作
# TIANDITU_TK=您的天地图密钥
# TILE_CACHE_PORT=4090
# TILE_CACHE_DATA_DIR=./data/tile-cache
# 缓存老化时间(天),超过后该瓦片下次请求时会重新向天地图拉取;默认 7可改为 15 等
# TILE_CACHE_TTL_DAYS=7
# 向天地图请求单瓦片超时(毫秒),默认 15000网络或上游慢时可适当调大
# TILE_CACHE_UPSTREAM_TIMEOUT_MS=15000
# ============================================
# Traefik 反向代理配置
# ============================================
# 启用后docker-compose 会为各服务添加 Traefik 标签,通过域名访问
# 是否启用 Traefik 反向代理true/false
# 如果启用,服务将通过 Traefik 访问,不再直接暴露端口
# 是否启用 Traefiktrue/false。为 false 时通过宿主机端口直接访问
TRAEFIK_ENABLED=true
# Traefik 网络名称(通常为 traefik
# Traefik 来源internal=本编排启动 Traefik包含 traefik 服务external=使用已有外部 Traefik
# internal本 compose 内启动 Traefik自动创建网络无需外部 Traefik
# external接入已有 Traefik需 traefik 网络已存在(如单独部署的 Traefik
TRAEFIK_PROVIDER=external
# Traefik 所在 Docker 网络名称
# external 时通常为 traefikinternal 时为 central_defaultcompose 自动创建)
TRAEFIK_NETWORK=traefik
# 域名配置(需要配置 DNS 解析到 Traefik 服务器)
# Grafana 域名
# 域名(需 DNS 解析到 Traefik 所在机器)
GRAFANA_DOMAIN=grafana.example.com
# Prometheus 域名
PROMETHEUS_DOMAIN=prometheus.example.com
# Alertmanager 域名
ALERTMANAGER_DOMAIN=alertmanager.example.com
# VictoriaMetrics 域名(通常不需要通过 Traefik 访问,边缘节点直接连接)
VICTORIAMETRICS_DOMAIN=vm.example.com
# Traefik EntryPoint通常为 web 或 websecure
# Traefik EntryPointweb=80, websecure=443
TRAEFIK_ENTRYPOINT=web
# 是否启用 HTTPS要配置 Traefik TLS
# 是否启用 HTTPS需 Traefik 配置 TLS
TRAEFIK_HTTPS_ENABLED=false
# TRAEFIK_PROVIDER=internal 时Traefik 监听的宿主机端口
# TRAEFIK_HTTP_PORT=80
# TRAEFIK_HTTPS_PORT=443
# ============================================
# Docker 网络配置
# ============================================
# 由 TRAEFIK_PROVIDER 决定一般无需手动改deploy.sh 会自动设置
# Compose 项目名称用于区分同一目录下的多套部署,避免与旧状态冲突)
# Compose 项目名称用于区分同一目录多套部署
COMPOSE_PROJECT_NAME=central
# 使用已存在的 traefik 网络(由 Traefik 创建,不在此项目中创建)
# 保持以下两项即可接入现有 Traefik
# TRAEFIK_PROVIDER=external 时:
NETWORK_NAME=traefik
EXTERNAL_NETWORK=true
# 仅在不使用 Traefik、仅本地直连时改为:
# NETWORK_NAME=central-server_default
# TRAEFIK_PROVIDER=internal 时deploy.sh 会自动改为
# NETWORK_NAME=central_default
# EXTERNAL_NETWORK=false
# 是否启用 IPv6true/false