# 边缘节点:统一编排(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:-18428} - VMAUTH_WRITE_USER=${VMAUTH_WRITE_USER:-vm_write} - VMAUTH_WRITE_PASSWORD=${VMAUTH_WRITE_PASSWORD:-change-me-strong-write} volumes: - vmagent-cache-data:/cache - ./config/vmagent/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.basicAuth.username=${VMAUTH_WRITE_USER} - -remoteWrite.basicAuth.password=${VMAUTH_WRITE_PASSWORD} - -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: . dockerfile: apps/onvif-exporter/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: - ./config/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: