- Dockerfile/backend/Dockerfile: 显式交叉编译 linux-amd64、linux-arm64、 windows-amd64.exe(原实现只产出容器目标架构,ARM 主机会下载 404) - 移除 darwin-arm64:服务器采集场景极少见,不再产出也不在清单中声明 - router/agent_static.go、run.sh、文档同步对齐实际产出清单 // Logan.Li
14 KiB
API 接口文档
基础信息
| 项目 | 值 |
|---|---|
| Base URL | http://localhost:8080/api/v1 |
| 认证方式 | JWT Bearer Token |
| 请求格式 | JSON |
| 响应格式 | JSON |
通用响应结构
{
"code": 200,
"message": "success",
"data": {}
}
分页响应:
{
"code": 200,
"message": "success",
"data": {
"list": [],
"total": 100
}
}
认证
POST /auth/login
用户登录,获取 JWT Token。
请求体:
{
"username": "admin",
"password": "admin123"
}
响应:
{
"code": 200,
"message": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIs...",
"expires_in": 86400,
"user": {
"id": 1,
"username": "admin",
"real_name": "管理员"
}
}
}
POST /auth/register
用户注册。
GET /user/profile
获取当前登录用户信息。(需认证)
PUT /user/profile
更新当前用户信息。(需认证)
PUT /user/password
修改密码。(需认证)
用户管理(管理员)
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /admin/users |
用户列表 |
| GET | /admin/users/:id |
用户详情 |
| POST | /admin/users |
创建用户 |
| PUT | /admin/users/:id |
更新用户 |
| DELETE | /admin/users/:id |
删除用户 |
仪表盘
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /dashboard/stats |
统计数据 |
| GET | /dashboard/recent-alerts |
最近告警 |
| GET | /dashboard/recent-releases |
最近发布 |
| GET | /dashboard/metrics |
性能指标 |
服务器管理
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /servers |
服务器列表 |
| GET | /servers/stats |
服务器统计 |
| GET | /servers/:id |
服务器详情 |
| POST | /servers |
添加服务器 |
| PUT | /servers/:id |
更新服务器 |
| DELETE | /servers/:id |
删除服务器 |
| POST | /servers/batch-delete |
批量删除 |
云平台管理
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /cloud-accounts |
云账号列表 |
| POST | /cloud-accounts |
添加云账号 |
| DELETE | /cloud-accounts/:id |
删除云账号 |
| GET | /domains |
域名列表 |
| POST | /domains |
添加域名 |
| DELETE | /domains/:id |
删除域名 |
K8s 集群
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /k8s-clusters |
集群列表 |
| GET | /k8s-clusters/:id |
集群详情 |
| POST | /k8s-clusters |
添加集群 |
| PUT | /k8s-clusters/:id |
更新集群 |
| DELETE | /k8s-clusters/:id |
删除集群 |
| GET | /k8s-clusters/:id/nodes |
节点列表 |
| GET | /k8s-clusters/:id/pods |
Pod 列表 |
| GET | /k8s-clusters/:id/deployments |
Deployment 列表 |
| GET | /k8s-clusters/:id/services |
Service 列表 |
| GET | /k8s-clusters/:id/ingresses |
Ingress 列表 |
监控告警
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /alerts |
告警事件列表 |
| GET | /alerts/rules |
告警规则列表 |
| POST | /alerts/rules |
创建告警规则 |
| PUT | /alerts/rules/:id |
更新规则 |
| DELETE | /alerts/rules/:id |
删除规则 |
| POST | /alerts/rules/:id/toggle |
启用/禁用规则 |
| POST | /alerts/:id/ack |
确认告警 |
CI/CD 流水线
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /pipelines |
流水线列表 |
| POST | /pipelines |
创建流水线 |
| GET | /pipelines/:id |
流水线详情 |
| PUT | /pipelines/:id |
更新流水线 |
| DELETE | /pipelines/:id |
删除流水线 |
| POST | /pipelines/:id/trigger |
触发流水线 |
| GET | /pipelines/:id/runs |
执行记录 |
应用发布
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /releases |
发布列表 |
| POST | /releases |
创建发布 |
| POST | /releases/:id/approve |
审批发布 |
| POST | /releases/:id/deploy |
部署发布 |
| POST | /releases/:id/rollback |
回滚发布 |
自动化运维
定时任务
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /cron-jobs |
任务列表 |
| POST | /cron-jobs |
创建任务 |
| GET | /cron-jobs/:id |
任务详情 |
| PUT | /cron-jobs/:id |
更新任务 |
| DELETE | /cron-jobs/:id |
删除任务 |
| POST | /cron-jobs/:id/toggle |
启用/禁用 |
| POST | /cron-jobs/:id/execute |
手动执行 |
脚本管理
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /scripts |
脚本列表 |
| POST | /scripts |
创建脚本 |
| GET | /scripts/:id |
脚本详情 |
| PUT | /scripts/:id |
更新脚本 |
| DELETE | /scripts/:id |
删除脚本 |
| POST | /scripts/:id/execute |
执行脚本 |
审批流程
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /approvals/templates |
审批模板列表 |
| POST | /approvals/templates |
创建模板 |
| GET | /approvals/templates/:id |
模板详情 |
| PUT | /approvals/templates/:id |
更新模板 |
| DELETE | /approvals/templates/:id |
删除模板 |
| GET | /approvals/processes |
审批流程列表 |
| POST | /approvals/processes |
发起审批 |
| GET | /approvals/processes/:id |
流程详情 |
| POST | /approvals/processes/:id/approve |
审批通过 |
| POST | /approvals/processes/:id/reject |
审批驳回 |
导航管理
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /navigations/groups |
导航分组列表 |
| POST | /navigations/groups |
创建分组 |
| PUT | /navigations/groups/:id |
更新分组 |
| DELETE | /navigations/groups/:id |
删除分组 |
| GET | /navigations/links |
导航链接列表 |
| POST | /navigations/links |
创建链接 |
| PUT | /navigations/links/:id |
更新链接 |
| DELETE | /navigations/links/:id |
删除链接 |
| POST | /navigations/links/:id/favorite |
收藏/取消收藏 |
审计日志
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /audit/logs |
审计日志列表 |
| GET | /audit/logs/:id |
日志详情 |
| GET | /audit/modules |
审计模块列表 |
| GET | /audit/actions |
审计操作列表 |
| GET | /audit/logs/export |
导出日志 |
| GET | /audit/statistics |
审计统计 |
| POST | /audit/logs/clear |
清空日志 |
健康检查
GET /health
无需认证。
{
"status": "ok"
}
GET /version
无需认证。
{
"version": "dev",
"build_time": "unknown",
"git_commit": "unknown"
}
Agent 监控
POST /agent/report — Agent 上报指标 (无需 JWT)
Agent 向服务端上报主机性能指标数据。
请求体:
{
"hostname": "web-server-01",
"cpu": {
"usage_percent": 45.2,
"cores": 8
},
"memory": {
"total_gb": 16,
"used_gb": 8.5,
"usage_percent": 53.1
},
"disk": [
{
"mount": "/",
"total_gb": 100,
"used_gb": 60,
"usage_percent": 60.0
}
],
"network": {
"rx_bytes": 1024000,
"tx_bytes": 512000
},
"uptime_seconds": 864000
}
响应:
{
"code": 200,
"message": "上报成功",
"data": null
}
GET /agent/latest — 各主机最新指标 (需 JWT)
获取所有在线主机的最近一次上报指标。仅返回 3 分钟内活跃且匹配 servers 表的主机。
响应:
{
"code": 200,
"message": "success",
"data": [
{
"hostname": "web-server-01",
"cpu": { "usage_percent": 45.2 },
"memory": { "usage_percent": 53.1 },
"disk": [{"usage_percent": 60.0}],
"network": { "rx_bytes": 1024000, "tx_bytes": 512000 },
"uptime_seconds": 864000,
"reported_at": "2025-06-18T10:30:00Z"
}
]
}
GET /agent/history/:hostname — 历史趋势 (?hours=N)
查询指定主机在最近 N 小时内的指标历史数据。
查询参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
hours |
int | 24 | 查询最近多少小时的数据 |
响应:
{
"code": 200,
"message": "success",
"data": [
{
"hostname": "web-server-01",
"cpu": { "usage_percent": 45.2 },
"memory": { "usage_percent": 53.1 },
"reported_at": "2025-06-18T10:30:00Z"
}
]
}
Agent 告警规则
GET /agent/rules — 规则列表
获取所有 Agent 告警规则。
响应:
{
"code": 200,
"message": "success",
"data": [
{
"id": 1,
"name": "CPU 使用率过高",
"metric": "cpu.usage_percent",
"condition": ">",
"threshold": 80,
"hostname": "*",
"enabled": true,
"created_at": "2025-06-18T10:00:00Z"
}
]
}
POST /agent/rules — 创建规则
创建一条 Agent 告警规则。
请求体:
{
"name": "CPU 使用率过高",
"metric": "cpu.usage_percent",
"condition": ">",
"threshold": 80,
"hostname": "*"
}
POST /agent/rules/quick-setup — 一键创建默认规则
一键创建默认告警规则(CPU / 内存 / 磁盘 / 网络,阈值 80%),作用于所有在线主机。
请求体: 无(可选传空 JSON {})
响应:
{
"code": 200,
"message": "默认规则创建成功",
"data": {
"created": 4
}
}
默认创建的规则包括:
| 规则名称 | 指标 | 条件 | 阈值 |
|---|---|---|---|
| CPU 使用率过高 | cpu.usage_percent |
> |
80 |
| 内存使用率过高 | memory.usage_percent |
> |
80 |
| 磁盘使用率过高 | disk.usage_percent |
> |
80 |
| 网络带宽过高 | network.total_bytes |
> |
80 |
PUT /agent/rules/:id — 更新规则
更新指定告警规则。
DELETE /agent/rules/:id — 删除规则
删除指定告警规则。
Agent 告警事件
GET /agent/alerts — 告警事件列表
获取 Agent 触发的告警事件列表。
响应:
{
"code": 200,
"message": "success",
"data": {
"list": [
{
"id": 1,
"rule_id": 1,
"rule_name": "CPU 使用率过高",
"hostname": "web-server-01",
"metric": "cpu.usage_percent",
"value": 92.5,
"threshold": 80,
"status": "firing",
"fired_at": "2025-06-18T10:30:00Z",
"resolved_at": null
}
],
"total": 1
}
}
POST /agent/alerts/:id/resolve — 恢复告警
手动将指定告警事件标记为已恢复。
响应:
{
"code": 200,
"message": "告警已恢复",
"data": null
}
Agent 远程任务
POST /agent/tasks — 下发远程任务
向指定主机下发远程任务(如执行脚本、重启服务等)。
请求体:
{
"hostname": "web-server-01",
"command": "systemctl restart nginx",
"description": "重启 Nginx 服务",
"timeout_seconds": 30
}
响应:
{
"code": 200,
"message": "任务已下发",
"data": {
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "pending"
}
}
GET /agent/tasks — 任务列表
获取所有远程任务的列表(支持分页和筛选)。
查询参数:
| 参数 | 类型 | 说明 |
|---|---|---|
hostname |
string | 按主机名筛选 |
status |
string | 按状态筛选:pending、running、success、failed |
page |
int | 页码 (默认 1) |
page_size |
int | 每页数量 (默认 20) |
GET /agent/tasks/:id — 任务详情
获取指定远程任务的详细信息及执行结果。
GET /agent/tasks/poll?hostname=xx — Agent 拉取任务 (无需 JWT)
Agent 主动轮询拉取分配给自己的待执行任务。
响应:
{
"code": 200,
"message": "success",
"data": [
{
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"command": "systemctl restart nginx",
"timeout_seconds": 30
}
]
}
POST /agent/tasks/:task_id/result — Agent 回传结果 (无需 JWT)
Agent 执行完任务后,回传执行结果。
请求体:
{
"status": "success",
"stdout": "nginx restarted successfully\n",
"stderr": "",
"exit_code": 0,
"duration_ms": 2500
}
Agent K线聚合
POST /agent/aggregate — 触发聚合
手动触发 K 线数据聚合任务(通常由定时任务自动执行)。
响应:
{
"code": 200,
"message": "聚合任务已触发",
"data": null
}
GET /agent/kline — 查询 K 线
查询主机性能指标的 K 线(聚合)数据。
查询参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
hostname |
string | 否 | 主机名,不传则返回所有主机 |
metric |
string | 否 | 指标名,如 cpu.usage_percent |
interval |
string | 否 | 聚合间隔:1m、5m、15m、1h、1d |
from |
string | 否 | 起始时间 (ISO 8601) |
to |
string | 否 | 结束时间 (ISO 8601) |
响应:
{
"code": 200,
"message": "success",
"data": [
{
"hostname": "web-server-01",
"metric": "cpu.usage_percent",
"timestamp": "2025-06-18T10:00:00Z",
"open": 45.0,
"high": 92.5,
"low": 40.0,
"close": 55.0,
"avg": 53.2,
"count": 60
}
]
}
Agent 二进制分发 (无需 JWT)
提供 Agent 二进制文件及安装脚本的下载。
GET /agent/arch — 版本信息 + 下载链接
获取当前 Agent 版本信息及各架构对应的下载链接。
响应:
{
"code": 200,
"message": "success",
"data": {
"version": "v1.2.3",
"released_at": "2025-06-18",
"downloads": {
"linux_amd64": "/api/v1/agent/aiops-agent-linux-amd64",
"linux_arm64": "/api/v1/agent/aiops-agent-linux-arm64",
"windows_amd64": "/api/v1/agent/aiops-agent-windows-amd64.exe"
},
"install_script": "/api/v1/agent/install.sh"
}
}
GET /agent/aiops-agent-linux-amd64 — x86_64 二进制
下载 Linux x86_64 架构的 Agent 二进制文件。
响应为二进制流 (Content-Type: application/octet-stream)。
GET /agent/aiops-agent-linux-arm64 — ARM64 二进制
下载 Linux ARM64 架构的 Agent 二进制文件。
响应为二进制流 (Content-Type: application/octet-stream)。
GET /agent/aiops-agent-darwin-arm64 — macOS 二进制
下载 macOS Apple Silicon (ARM64) 架构的 Agent 二进制文件。
响应为二进制流 (Content-Type: application/octet-stream)。
GET /agent/install.sh — 一键安装脚本
下载 Agent 一键安装脚本。
响应为 Shell 脚本文本 (Content-Type: text/plain)。