refactor: 边缘节点与配置精简
- 边缘: Prometheus 改为 vmagent,统一 docker-compose.yml,内存+磁盘缓存 - 边缘脚本: 合并为 deploy.sh [--local],删除 run-edge-local、quick-setup、run-edge-with-cache - 配置: 合并为 update-configs.sh,统一 targets.csv,生成 target-onvif/target-ping/target-topology - 删除 topology-editor、旧格式 devices.csv/ping-targets.csv、setup-remote-write、test-connection - 文档: 更新 EDGE_CACHE、TIANDITU(瓦片改 4090 直连 tile-cache) Made-with: Cursor
This commit is contained in:
@@ -1,70 +1,71 @@
|
||||
services:
|
||||
# ========== 边缘必选 ==========
|
||||
# 1. 边缘 Prometheus:抓取 + remote_write 推到中央 VictoriaMetrics
|
||||
prometheus-edge:
|
||||
image: prom/prometheus:latest
|
||||
container_name: prometheus-edge
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- CENTRAL_SERVER_HOST=${CENTRAL_SERVER_HOST:-192.168.1.10}
|
||||
- CENTRAL_SERVER_PORT=${CENTRAL_SERVER_PORT:-8428}
|
||||
volumes:
|
||||
- prometheus-edge-data:/prometheus
|
||||
- ./prometheus-edge/prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
||||
- ./config/onvif-targets.json:/etc/prometheus/onvif-targets.json:ro # 挂载静态设备列表
|
||||
- ./config/ping-targets.json:/etc/prometheus/ping-targets.json:ro # 挂载Ping目标列表
|
||||
mem_limit: "256m"
|
||||
cpus: "2.0"
|
||||
ports:
|
||||
- "9092:9090" # 改为9092避免与中央服务器冲突
|
||||
# 本机同机部署时,容器内通过 host.docker.internal 访问宿主机中央服务
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
command:
|
||||
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||
- '--storage.tsdb.retention.time=1h'
|
||||
- '--web.enable-lifecycle' # 启用配置重载API
|
||||
networks:
|
||||
- monitoring_net
|
||||
|
||||
# ========== 可选容器(按需启用)==========
|
||||
# 2. ONVIF Exporter(可选,使用本项目自建)
|
||||
# 启用:docker compose --profile onvif up -d --build(会构建 edge-agent/onvif-exporter 并启动)
|
||||
# 配置文件:config/onvif-targets.json(与 targets.csv 中 onvif 行一致,由 update-configs.sh 生成)
|
||||
onvif-exporter:
|
||||
profiles:
|
||||
- onvif
|
||||
image: onvif-exporter:local
|
||||
build:
|
||||
context: ./onvif-exporter
|
||||
dockerfile: Dockerfile
|
||||
container_name: onvif-exporter
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- EXPORTER_PORT=9600
|
||||
- TARGETS_FILE=/config/targets.json
|
||||
volumes:
|
||||
- ./config/onvif-targets.json:/config/targets.json:ro
|
||||
mem_limit: "128m"
|
||||
cpus: "1.5"
|
||||
networks:
|
||||
- monitoring_net
|
||||
|
||||
# 3. Blackbox Exporter(必选:网络 Ping 探测)
|
||||
blackbox-exporter:
|
||||
image: prom/blackbox-exporter:latest
|
||||
container_name: blackbox-exporter
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./blackbox/config.yml:/etc/blackbox_exporter/config.yml:ro
|
||||
mem_limit: "64m"
|
||||
cpus: "0.5"
|
||||
networks:
|
||||
- monitoring_net
|
||||
|
||||
networks:
|
||||
monitoring_net:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
prometheus-edge-data:
|
||||
# 边缘节点:统一编排(vmagent = 短时内存缓存 + 长时磁盘缓存 + 冗余重试)
|
||||
# 用法: docker compose up -d
|
||||
|
||||
services:
|
||||
# ========== 边缘必选 ==========
|
||||
# vmagent:抓取 + remote_write,内置短时内存缓存、长时磁盘缓存、失败重试
|
||||
prometheus-edge:
|
||||
image: victoriametrics/vmagent:latest
|
||||
container_name: prometheus-edge
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- CENTRAL_SERVER_HOST=${CENTRAL_SERVER_HOST:-192.168.1.10}
|
||||
- CENTRAL_SERVER_PORT=${CENTRAL_SERVER_PORT:-8428}
|
||||
volumes:
|
||||
- vmagent-cache-data:/cache
|
||||
- ./prometheus-edge/vmagent-scrape.yml.template:/etc/vmagent/scrape.yml:ro
|
||||
- ./config/target-onvif.json:/etc/prometheus/target-onvif.json:ro
|
||||
- ./config/target-ping.json:/etc/prometheus/target-ping.json:ro
|
||||
mem_limit: "256m"
|
||||
cpus: "2.0"
|
||||
ports:
|
||||
- "9092:8429"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
command:
|
||||
- -promscrape.config=/etc/vmagent/scrape.yml
|
||||
- -remoteWrite.url=http://${CENTRAL_SERVER_HOST}:${CENTRAL_SERVER_PORT}/api/v1/write
|
||||
- -remoteWrite.tmpDataPath=/cache/remotewrite
|
||||
- -remoteWrite.maxDiskUsagePerURL=512MB
|
||||
- -memory.allowedPercent=80
|
||||
- -httpListenAddr=:8429
|
||||
networks:
|
||||
- monitoring_net
|
||||
|
||||
# ========== 可选容器(按需启用)==========
|
||||
onvif-exporter:
|
||||
profiles:
|
||||
- onvif
|
||||
image: onvif-exporter:local
|
||||
build:
|
||||
context: ./onvif-exporter
|
||||
dockerfile: Dockerfile
|
||||
container_name: onvif-exporter
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- EXPORTER_PORT=9600
|
||||
- TARGETS_FILE=/config/targets.json
|
||||
volumes:
|
||||
- ./config/target-onvif.json:/config/targets.json:ro
|
||||
mem_limit: "128m"
|
||||
cpus: "1.5"
|
||||
networks:
|
||||
- monitoring_net
|
||||
|
||||
blackbox-exporter:
|
||||
image: prom/blackbox-exporter:latest
|
||||
container_name: blackbox-exporter
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./blackbox/config.yml:/etc/blackbox_exporter/config.yml:ro
|
||||
mem_limit: "64m"
|
||||
cpus: "0.5"
|
||||
networks:
|
||||
- monitoring_net
|
||||
|
||||
networks:
|
||||
monitoring_net:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
vmagent-cache-data:
|
||||
|
||||
Reference in New Issue
Block a user