# ============================================================================= # 中央服务器环境变量配置模板 # ============================================================================= # # 【用途】 # 本文件为 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 # # 若不存在 .env,deploy.sh 会自动从 env.example 创建,并提示修改后重试。 # # 【变量去向】 # - deploy.sh:加载 .env,生成 prometheus.yml,创建数据目录,启动 docker-compose # - docker-compose:端口、数据目录、容器环境变量、Traefik 标签等 # - prometheus.yml.template:PROMETHEUS_*、VICTORIAMETRICS_PORT 等(见模板头部) # # 【修改生效】 # 修改 .env 后需重新运行 ./deploy.sh。不要直接编辑 prometheus.yml,其由模板生成。 # # ============================================================================= # ============================================ # 端口配置 # ============================================ # 宿主机映射端口,对应各服务容器内端口。端口冲突时修改此处。 # Prometheus Web UI 端口(避免与 cockpit 9090 冲突,故默认 9091) # 访问:http://localhost:${PROMETHEUS_PORT} PROMETHEUS_PORT=9091 # Grafana Web UI 端口 # 访问:http://localhost:${GRAFANA_PORT} GRAFANA_PORT=3000 # Alertmanager Web UI 端口 ALERTMANAGER_PORT=9093 # VictoriaMetrics 端口(边缘 vmagent 通过 remote_write 推送到此端口) # 必须与边缘侧 CENTRAL_SERVER_PORT 一致;通常不通过 Traefik,边缘直连 VICTORIAMETRICS_PORT=18428 # ============================================ # Grafana 配置 # ============================================ # Grafana 管理员密码(生产环境必须修改,建议 12 位以上强密码) GRAFANA_ADMIN_PASSWORD=admin123 # Grafana 默认语言:zh-Hans 简体中文,en 英文 GRAFANA_DEFAULT_LANGUAGE=zh-Hans # Grafana 默认主题:light 浅色,dark 深色 GRAFANA_DEFAULT_THEME=light # Grafana 根 URL(使用 Traefik 时设为对外访问地址,如 https://grafana.example.com) # 影响登录跳转、OAuth 回调等 GRAFANA_ROOT_URL=http://localhost:3000 # ============================================ # Prometheus 配置 # ============================================ # 部分变量会代入 prometheus.yml.template 生成 prometheus.yml # Prometheus 本地 TSDB 数据保留时间(如 30d、7d、1y) PROMETHEUS_RETENTION_TIME=30d # 抓取间隔(秒),影响中央 Prometheus 抓取本机服务的频率 # 建议 15–60;越小越实时,负载越高 PROMETHEUS_SCRAPE_INTERVAL=15 # 告警规则评估间隔(秒) PROMETHEUS_EVALUATION_INTERVAL=15 # 集群标识,作为 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 # ============================================ # VictoriaMetrics 配置 # ============================================ # VM 接收边缘 remote_write 并存储;Grafana 数据源通常指向 VM # VM 数据保留时间(如 30d、90d) VICTORIAMETRICS_RETENTION_PERIOD=30d # ============================================ # vmauth(鉴权 / 多租户入口) # ============================================ # vmauth 作为 VictoriaMetrics 的统一入口:对外仅暴露 vmauth 端口; # - 写入账号:边缘 vmagent、中央 Prometheus remote_write # - 只读账号:Grafana 查询(建议只读) # # 生产环境必须修改为强口令,并避免跨环境复用。 # # 【严格多租户(推荐)】 # 在 central-server/config/vmauth/tenants.csv 中为每个边缘节点配置独立凭据与 tenant_id; # deploy.sh 会据此生成 vmauth.yml 与 Grafana 多数据源 provisioning。 # 可参考示例:central-server/config/vmauth/tenants.csv.example # # 【单租户兼容模式(可选)】 # 如果你不提供 tenants.csv,将使用下面这组单租户账号生成 vmauth 配置(不做按 tenant 隔离)。 VMAUTH_WRITE_USER=vm_write VMAUTH_WRITE_PASSWORD=change-me-strong-write VMAUTH_READ_USER=vm_read VMAUTH_READ_PASSWORD=change-me-strong-read # 【管理员只读账号(可选)】 # 允许访问所有租户的 /select//prometheus/... 查询接口(只读)。 # 用途:管理员在同一套 Grafana 下查看所有租户(可在仪表盘用“数据源变量”切换租户)。 VMAUTH_ADMIN_USER=vm_admin VMAUTH_ADMIN_PASSWORD=change-me-strong-admin # ============================================ # 数据存储路径 # ============================================ # 相对于 central-server 目录;deploy.sh 会转换为绝对路径供 Docker 使用 # 数据存储根目录(可选,部分脚本可能引用) DATA_STORAGE_ROOT=./data # Prometheus 本地 TSDB 数据目录 PROMETHEUS_DATA_DIR=./data/prometheus-data # Grafana 数据库与插件数据目录 GRAFANA_DATA_DIR=./data/grafana-data # VictoriaMetrics 时序数据目录 VICTORIAMETRICS_DATA_DIR=./data/victoria-metrics-data # 天地图瓦片缓存(供 topology-editor、Grafana Geomap 使用) # 在 .env 中设置 TIANDITU_TK 后,tile-cache 才可正常工作 # TIANDITU_TK=您的天地图密钥 # TILE_CACHE_PORT=4090 # TILE_CACHE_DATA_DIR=./data/tile-cache # TILE_CACHE_TTL_DAYS=7 # TILE_CACHE_UPSTREAM_TIMEOUT_MS=15000 # ============================================ # Traefik 反向代理配置 # ============================================ # 启用后,docker-compose 会为各服务添加 Traefik 标签,通过域名访问 # 是否启用 Traefik(true/false)。为 false 时通过宿主机端口直接访问 TRAEFIK_ENABLED=true # Traefik 来源:internal=本编排启动 Traefik(包含 traefik 服务);external=使用已有外部 Traefik # internal:本 compose 内启动 Traefik,自动创建网络,无需外部 Traefik # external:接入已有 Traefik,需 traefik 网络已存在(如单独部署的 Traefik) TRAEFIK_PROVIDER=external # Traefik 所在 Docker 网络名称 # external 时通常为 traefik;internal 时为 central_default(compose 自动创建) TRAEFIK_NETWORK=traefik # 域名(需 DNS 解析到 Traefik 所在机器) GRAFANA_DOMAIN=grafana.example.com PROMETHEUS_DOMAIN=prometheus.example.com ALERTMANAGER_DOMAIN=alertmanager.example.com VICTORIAMETRICS_DOMAIN=vm.example.com # Traefik EntryPoint(web=80, websecure=443) TRAEFIK_ENTRYPOINT=web # 是否启用 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_PROJECT_NAME=central # TRAEFIK_PROVIDER=external 时: NETWORK_NAME=traefik EXTERNAL_NETWORK=true # TRAEFIK_PROVIDER=internal 时(deploy.sh 会自动改为): # NETWORK_NAME=central_default # EXTERNAL_NETWORK=false # 是否启用 IPv6(true/false) ENABLE_IPV6=false