feat: 天地图瓦片缓存(tile-cache)、拓扑标注助手与文档更新

- tile-cache: 瓦片缓存服务(vec/cva)、启动探针、详细日志、上游超时可配置(UPSTREAM_TIMEOUT_MS)
- central: docker-compose 集成 tile-cache,env.example 增加 TILE_CACHE_* / TIANDITU_TK
- topology-editor: 天地图/缓存加载、GPS 安全来源错误提示、TIANDITU 文档(403/白名单、localhost 测试说明)
- doc: README 部署步骤与 GPS 安全来源说明,TIANDITU_CONFIG 完善

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Super User
2026-02-25 11:11:38 -05:00
parent 84d2bcc2cf
commit 72a5bf30b4
32 changed files with 2496 additions and 1941 deletions

View File

@@ -0,0 +1,75 @@
# 监控目标与 targets.csv
边缘监控目标统一由 `edge-agent/config/targets.csv` 配置,经 `update-configs.sh` 生成 `onvif-targets.json``ping-targets.json`,并可生成拓扑 GeoJSON 供 Grafana Geomap 使用。
---
## targets.csv 格式
表头(列顺序固定):
```text
type,ip,name,role,parent,uplink_type,network,device_type,model,location,username,password,onvif_port,lat,lon
```
| 字段 | 说明 | 适用类型 |
|------|------|----------|
| type | `ping` / `onvif` / `topology` | 必填 |
| ip | IPtopology 哑设备可空) | ping, onvif |
| name | 节点唯一名,用于拓扑 parent 引用 | 必填 |
| role | 如 core_switch, access_switch, camera, wireless_bridge, media_converter | 可选 |
| parent | 上联设备 name用于画拓扑连线 | 可选 |
| uplink_type | 与上联链路类型fiber / copper / wireless | 可选 |
| network | 如 internal / external | 可选 |
| device_type, model, location | 设备描述onvif 必填 location、账号等 | onvif |
| username, password, onvif_port | ONVIF 认证与端口(默认 80 | onvif |
| lat, lon | 经纬度十进制度Geomap 打点与拓扑 | 可选 |
- **ping**:有 IP由 Blackbox Exporter 探测,生成 `ping-targets.json`
- **onvif**:有 IP由 ONVIF Exporter 探测,生成 `onvif-targets.json`;需填 device_type, model, location, username, password。
- **topology**:仅拓扑节点(可无 IP不参与抓取用于生成 `topology.geojson` 画点与连线。
---
## 示例
```csv
type,ip,name,role,parent,uplink_type,network,device_type,model,location,username,password,onvif_port,lat,lon
ping,192.168.2.1,core_sw_1,core_switch,,,internal,,,,,,,22.54,113.98
ping,8.8.8.8,google_dns,dns,core_sw_1,fiber,external,,,,,,,22.55,113.99
topology,,dumb_sw_1,access_switch,core_sw_1,copper,internal,switch,,building_A,,,,22.543,113.988
onvif,192.168.1.100,camera_front,camera,dumb_sw_1,copper,internal,camera,HIKVISION,front_door,admin,pass,80,22.123,113.567
```
---
## 生成配置与拓扑
```bash
cd edge-agent/config
chmod +x *.sh
./update-configs.sh
./csv-to-topology-geojson.sh targets.csv topology.geojson
```
- `update-configs.sh`:根据 targets.csv 生成 `onvif-targets.json``ping-targets.json`
- `csv-to-topology-geojson.sh`:生成 `topology.geojson`,供 Grafana Geomap 加载(设备点 + parent 连线uplink_type 可区分线型)。
---
## 监控类型与数据流
| 类型 | Job | Exporter | 配置文件 |
|------|-----|----------|----------|
| 网络 Ping | network-ping | Blackbox | ping-targets.json |
| ONVIF | onvif-devices | ONVIF Exporter | onvif-targets.json |
| 边缘自身 | prometheus-edge | Prometheus | 内置 |
数据流:目标 → Exporter → prometheus-edge 抓取 → remote_write → 中央 VictoriaMetrics。Grafana 查边缘数据需选 **VictoriaMetrics** 数据源。
---
## 验证
- 边缘 Prometheushttp://localhost:9092`probe_success{job="network-ping"}``onvif_device_up`
- 中央 GrafanaVictoriaMetrics 数据源):`probe_success{region="workernode_1"}` 等。