feat: switch monitor client to Docker-first runtime
- remove install.sh-based deployment path - add multi-stage Dockerfile for HarborForge.Monitor - support HF_MONITER_* env vars and keep HF_MONITOR_* compatibility - add rootfs-aware host metric collection for Docker deployment
This commit is contained in:
56
README.md
56
README.md
@@ -29,8 +29,7 @@ HarborForge.Monitor/
|
||||
├── cmd/harborforge-monitor/ # 程序入口
|
||||
├── internal/config/ # 配置加载
|
||||
├── internal/telemetry/ # 指标采集与上报
|
||||
├── scripts/install.sh # 安装脚本
|
||||
├── systemd/harborforge-monitor.service
|
||||
├── Dockerfile # 容器化运行
|
||||
├── config.example.json
|
||||
└── README.md
|
||||
```
|
||||
@@ -51,13 +50,16 @@ HarborForge.Monitor/
|
||||
}
|
||||
```
|
||||
|
||||
也支持环境变量覆盖:
|
||||
也支持环境变量覆盖。为了兼容你的命名,这里优先支持:
|
||||
|
||||
- `HF_MONITOR_BACKEND_URL`
|
||||
- `HF_MONITOR_IDENTIFIER`
|
||||
- `HF_MONITOR_API_KEY`
|
||||
- `HF_MONITOR_REPORT_INTERVAL`
|
||||
- `HF_MONITOR_LOG_LEVEL`
|
||||
- `HF_MONITER_BACKEND_URL`
|
||||
- `HF_MONITER_IDENTIFIER`
|
||||
- `HF_MONITER_API_KEY`
|
||||
- `HF_MONITER_REPORT_INTERVAL`
|
||||
- `HF_MONITER_LOG_LEVEL`
|
||||
- `HF_MONITER_ROOTFS`
|
||||
|
||||
同时也兼容旧的/正确拼写的 `HF_MONITOR_*` 变量名。
|
||||
|
||||
## 本地开发
|
||||
|
||||
@@ -67,22 +69,42 @@ go build ./cmd/harborforge-monitor
|
||||
./harborforge-monitor -config ./config.example.json -dry-run -once
|
||||
```
|
||||
|
||||
## 安装
|
||||
## Docker 运行
|
||||
|
||||
构建镜像:
|
||||
|
||||
```bash
|
||||
sudo ./scripts/install.sh
|
||||
docker build -t harborforge-monitor .
|
||||
```
|
||||
|
||||
安装脚本会:
|
||||
推荐以**宿主机 rootfs 只读挂载**方式运行,这样容器里采集到的是宿主机信息而不是容器自身:
|
||||
|
||||
- 构建二进制 `harborforge-monitor`
|
||||
- 安装到 `/usr/local/bin/`
|
||||
- 安装 systemd service
|
||||
- 初始化 `/etc/harborforge-monitor/config.json`
|
||||
- 自动启用并启动服务
|
||||
```bash
|
||||
docker run -d \
|
||||
--name harborforge-monitor \
|
||||
--restart unless-stopped \
|
||||
-e HF_MONITER_BACKEND_URL=https://monitor.hangman-lab.top \
|
||||
-e HF_MONITER_IDENTIFIER=vps-nginx-01 \
|
||||
-e HF_MONITER_API_KEY=your-api-key \
|
||||
-e HF_MONITER_REPORT_INTERVAL=30 \
|
||||
-e HF_MONITER_ROOTFS=/host \
|
||||
-v /:/host:ro \
|
||||
harborforge-monitor
|
||||
```
|
||||
|
||||
`Dockerfile` 里已经预置了这些环境变量:
|
||||
|
||||
- `HF_MONITER_BACKEND_URL`
|
||||
- `HF_MONITER_IDENTIFIER`
|
||||
- `HF_MONITER_API_KEY`
|
||||
- `HF_MONITER_REPORT_INTERVAL`
|
||||
- `HF_MONITER_LOG_LEVEL`
|
||||
- `HF_MONITER_ROOTFS`
|
||||
|
||||
## 注意
|
||||
|
||||
- 当前 Nginx site 列表读取的是 `/etc/nginx/sites-enabled`
|
||||
- Docker 模式下,建议挂载 `-v /:/host:ro` 并设置 `HF_MONITER_ROOTFS=/host`
|
||||
- 这样 CPU/MEM/LOAD/UPTIME 会通过 host proc/sys 视角采集,磁盘和 nginx 配置也会走宿主机路径
|
||||
- 当前 Nginx site 列表读取的是 `${ROOTFS}/etc/nginx/sites-enabled`
|
||||
- 如果机器没有安装 Nginx,会回报 `nginx_installed = false`
|
||||
- 该客户端不会尝试读取 OpenClaw 信息,`agents` 默认为空,`openclaw_version` 不上报
|
||||
|
||||
Reference in New Issue
Block a user