Files
Distributed-Prometheus/central-server/env.example
root c4825c2d27 feat: 引入 vmauth 鉴权与严格多租户
- 对外端口统一为 18428(vmauth 入口),VM 不再直接暴露宿主机端口
- 边缘 vmagent 与中央 Prometheus remote_write 增加 basic auth
- 支持 tenants.csv 驱动的 per-tenant 写入/查询隔离,并提供管理员跨租户只读查询
- 更新 Grafana provisioning 与部署/文档

Made-with: Cursor
2026-04-22 11:41:13 +00:00

198 lines
7.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# =============================================================================
# 中央服务器环境变量配置模板
# =============================================================================
#
# 【用途】
# 本文件为 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 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 抓取本机服务的频率
# 建议 1560越小越实时负载越高
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/<tenant_id>/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 标签,通过域名访问
# 是否启用 Traefiktrue/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 时通常为 traefikinternal 时为 central_defaultcompose 自动创建)
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 EntryPointweb=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
# 是否启用 IPv6true/false
ENABLE_IPV6=false