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:
@@ -1,8 +1,8 @@
|
||||
# 多阶段构建:在镜像内编译,无需本机安装 Go
|
||||
FROM golang:1.21-alpine AS builder
|
||||
WORKDIR /app
|
||||
COPY go.mod ./
|
||||
COPY main.go ./
|
||||
COPY apps/onvif-exporter/go.mod ./
|
||||
COPY apps/onvif-exporter/main.go ./
|
||||
RUN go mod tidy && CGO_ENABLED=0 GOOS=linux go build -o /onvif-exporter .
|
||||
|
||||
FROM alpine:3.19
|
||||
@@ -1,6 +1,10 @@
|
||||
#!/bin/bash
|
||||
# 边缘节点部署:vmagent + 内存/磁盘缓存
|
||||
# 用法: ./deploy.sh [--local] --local = 本机同机(中央与边缘同机)
|
||||
#
|
||||
# targets.csv:部署时自动从 targets.csv 生成 target-onvif.json、target-ping.json;
|
||||
# 修改 targets.csv 后需手动执行 config/update-configs.sh(或重新 deploy),
|
||||
# vmagent 每 5 分钟自动重载 JSON,无需重启。
|
||||
set -e
|
||||
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
@@ -24,7 +28,7 @@ command -v jq &>/dev/null || { echo "❌ 需要 jq"; exit 1; }
|
||||
[ -f config/targets.csv ] && (cd config && ./update-configs.sh) || true
|
||||
[ ! -f config/target-onvif.json ] && echo '[]' > config/target-onvif.json
|
||||
[ ! -f config/target-ping.json ] && echo '[]' > config/target-ping.json
|
||||
[ ! -f prometheus-edge/vmagent-scrape.yml.template ] && { echo "❌ 缺少 vmagent-scrape.yml.template"; exit 1; }
|
||||
[ ! -f config/vmagent/vmagent-scrape.yml.template ] && { echo "❌ 缺少 config/vmagent/vmagent-scrape.yml.template"; exit 1; }
|
||||
|
||||
# .env
|
||||
[ ! -f .env ] && cp env.example .env
|
||||
|
||||
@@ -13,7 +13,7 @@ services:
|
||||
- CENTRAL_SERVER_PORT=${CENTRAL_SERVER_PORT:-8428}
|
||||
volumes:
|
||||
- vmagent-cache-data:/cache
|
||||
- ./prometheus-edge/vmagent-scrape.yml.template:/etc/vmagent/scrape.yml:ro
|
||||
- ./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"
|
||||
@@ -38,8 +38,8 @@ services:
|
||||
- onvif
|
||||
image: onvif-exporter:local
|
||||
build:
|
||||
context: ./onvif-exporter
|
||||
dockerfile: Dockerfile
|
||||
context: .
|
||||
dockerfile: apps/onvif-exporter/Dockerfile
|
||||
container_name: onvif-exporter
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
@@ -57,7 +57,7 @@ services:
|
||||
container_name: blackbox-exporter
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./blackbox/config.yml:/etc/blackbox_exporter/config.yml:ro
|
||||
- ./config/blackbox/config.yml:/etc/blackbox_exporter/config.yml:ro
|
||||
mem_limit: "64m"
|
||||
cpus: "0.5"
|
||||
networks:
|
||||
|
||||
@@ -19,9 +19,10 @@ EDGE_NODE_ID=workernode_1
|
||||
# 格式: http://域名或IP:端口/api/v1/write
|
||||
# 默认端口: 8428 (VictoriaMetrics)
|
||||
|
||||
# 边缘缓存:docker-compose.yaml 使用 vmagent,含内存+磁盘缓存,详见 doc/EDGE_CACHE.md
|
||||
# 边缘缓存:docker-compose 使用 vmagent,含内存+磁盘缓存,详见 doc/EDGE_AGENT_CONFIG.md
|
||||
|
||||
# 注意:ONVIF 设备在 config/targets.csv 中配置(每行 ip、username、password 等)
|
||||
# 配置与自建应用结构:config/(vmagent、blackbox、targets); apps/(onvif-exporter)
|
||||
|
||||
# ONVIF Exporter 镜像(仅在使用 --profile onvif 时需要)
|
||||
# 公共 registry 无现成镜像,需自建或使用第三方镜像,参见 doc/ONVIF_ALTERNATIVES.md
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
global:
|
||||
scrape_interval: 120s
|
||||
evaluation_interval: 120s
|
||||
external_labels:
|
||||
region: workernode_1 # 设置一个唯一边缘节点名称
|
||||
|
||||
remote_write:
|
||||
- url: http://192.168.2.106:8428/api/v1/write
|
||||
queue_config:
|
||||
max_samples_per_send: 5000
|
||||
capacity: 5000
|
||||
max_shards: 5
|
||||
|
||||
scrape_configs:
|
||||
- job_name: 'onvif-devices'
|
||||
scrape_interval: 120s
|
||||
file_sd_configs:
|
||||
- files: ['/etc/prometheus/onvif-targets.json']
|
||||
refresh_interval: 5m
|
||||
metrics_path: /metrics
|
||||
static_configs:
|
||||
- targets: ['onvif-exporter:9600']
|
||||
|
||||
- job_name: 'network-ping'
|
||||
scrape_interval: 300s
|
||||
file_sd_configs:
|
||||
- files: ['/etc/prometheus/ping-targets.json']
|
||||
refresh_interval: 5m
|
||||
metrics_path: /probe
|
||||
params:
|
||||
module: [icmp]
|
||||
static_configs:
|
||||
- targets: ['blackbox-exporter:9115']
|
||||
relabel_configs:
|
||||
- source_labels: [__address__]
|
||||
target_label: __param_target
|
||||
- source_labels: [__param_target]
|
||||
target_label: instance
|
||||
- target_label: __address__
|
||||
replacement: blackbox-exporter:9115
|
||||
|
||||
- job_name: 'prometheus-edge'
|
||||
scrape_interval: 60s
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
@@ -1,45 +0,0 @@
|
||||
global:
|
||||
scrape_interval: 120s
|
||||
evaluation_interval: 120s
|
||||
external_labels:
|
||||
region: workernode_1 # 设置一个唯一边缘节点名称
|
||||
|
||||
remote_write:
|
||||
- url: http://${CENTRAL_SERVER_HOST}:${CENTRAL_SERVER_PORT}/api/v1/write
|
||||
queue_config:
|
||||
max_samples_per_send: 5000
|
||||
capacity: 10000
|
||||
max_shards: 8
|
||||
|
||||
scrape_configs:
|
||||
- job_name: 'onvif-devices'
|
||||
scrape_interval: 120s
|
||||
file_sd_configs:
|
||||
- files: ['/etc/prometheus/onvif-targets.json']
|
||||
refresh_interval: 5m
|
||||
metrics_path: /metrics
|
||||
static_configs:
|
||||
- targets: ['onvif-exporter:9600']
|
||||
|
||||
- job_name: 'network-ping'
|
||||
scrape_interval: 300s
|
||||
file_sd_configs:
|
||||
- files: ['/etc/prometheus/ping-targets.json']
|
||||
refresh_interval: 5m
|
||||
metrics_path: /probe
|
||||
params:
|
||||
module: [icmp]
|
||||
static_configs:
|
||||
- targets: ['blackbox-exporter:9115']
|
||||
relabel_configs:
|
||||
- source_labels: [__address__]
|
||||
target_label: __param_target
|
||||
- source_labels: [__param_target]
|
||||
target_label: instance
|
||||
- target_label: __address__
|
||||
replacement: blackbox-exporter:9115
|
||||
|
||||
- job_name: 'prometheus-edge'
|
||||
scrape_interval: 60s
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
Reference in New Issue
Block a user