✨ feat(agent): 添加 token 鉴权和流程文档
* 默认监听调整为 0.0.0.0:8080,并要求查询参数 token * 支持首次 run 自动生成含随机 token 的配置文件 * 补充 HTTP 鉴权、配置校验和相关测试 * 完善代码注释,覆盖缓存、上报、服务和平台采集路径 * 新增架构与开发流程文档,补充一键构建脚本
This commit is contained in:
14
AGENTS.md
14
AGENTS.md
@@ -6,9 +6,10 @@
|
||||
|
||||
- MFD Monitor Agent 是一个使用 Go 实现的单二进制主机状态监控 agent。
|
||||
- agent 需要支持 Windows 和 Linux,用于采集并暴露完整主机状态。
|
||||
- agent 默认通过本地 HTTP API 提供查询能力,默认监听 `127.0.0.1:8080`。
|
||||
- `GET /health` 用于返回进程存活状态、版本信息、最近快照时间和最近采集状态。
|
||||
- `GET /status` 用于返回缓存中的完整 `HostStatus` 主机状态快照。
|
||||
- agent 默认通过 HTTP API 提供查询能力,默认监听 `0.0.0.0:8080`。
|
||||
- `GET /health?token=` 用于返回进程存活状态、版本信息、最近快照时间和最近采集状态。
|
||||
- `GET /status?token=` 用于返回缓存中的完整 `HostStatus` 主机状态快照。
|
||||
- `http.token` 配置在 JSON 中;`agent run` 时若工作目录无 `config.json` 则自动生成含随机 token 的默认文件。
|
||||
- agent 通过后台周期采集刷新内存缓存,HTTP 接口和主动上报都读取同一份缓存。
|
||||
- agent 支持可选的周期性 HTTP POST 主动上报,上报数据必须复用 `/status` 的 `HostStatus` JSON 结构。
|
||||
- agent 需要通过 CLI 管理服务生命周期,包括 `run`、`install`、`uninstall`、`start`、`stop` 和 `version`。
|
||||
@@ -19,7 +20,7 @@
|
||||
- 安装阶段必须要求管理员/root 权限。
|
||||
- 首版运行阶段默认使用高权限服务账户,以稳定采集完整进程列表和 TCP 监听端口到进程的映射。
|
||||
- 接口层必须支持部分成功:某些字段或子采集器失败时,不应导致整个 `/status` 失败,应返回 `partial` 或具体错误原因。
|
||||
- 默认监听地址必须尽量收敛到本地地址 `127.0.0.1`,避免默认暴露敏感主机信息。
|
||||
- 默认监听 `0.0.0.0:8080`,必须通过查询参数 `?token=` 鉴权;`http.token` 不能为空。
|
||||
|
||||
### 架构要求
|
||||
|
||||
@@ -35,7 +36,7 @@
|
||||
- `httpapi`:提供 `GET /health` 和 `GET /status`。
|
||||
- `reporter`:定时 POST `HostStatus` 到中心端。
|
||||
- `service`:封装 Windows/Linux 服务生命周期和安装命令。
|
||||
- `config`:统一加载监听地址、采集周期、上报周期、上报目标、机器标识等配置。
|
||||
- `config`:统一加载监听地址、HTTP token、采集周期、上报周期、上报目标、机器标识等配置。
|
||||
|
||||
### HostStatus 要求
|
||||
|
||||
@@ -95,7 +96,8 @@
|
||||
### 首版边界
|
||||
|
||||
- 首版默认包含 IP、MAC、主机名、CPU、内存、磁盘、完整进程列表、TCP 监听端口及进程映射、本地 HTTP 查询、主动 HTTP 上报、Windows/Linux 服务化。
|
||||
- 首版默认不包含历史存储、趋势分析、分页查询、UDP 监听信息、线程列表、进程句柄、连接状态详情、强制 Token/mTLS。
|
||||
- 首版默认不包含历史存储、趋势分析、分页查询、UDP 监听信息、线程列表、进程句柄、连接状态详情、Bearer Token/mTLS。
|
||||
- 首版 HTTP API 使用查询参数 token 鉴权(非 Bearer/mTLS)。
|
||||
|
||||
## 注释规则
|
||||
|
||||
|
||||
Reference in New Issue
Block a user