Files
Logan.Li e0d652d211 feat: 完善堡垒机与 Agent 智能运维能力
- 支持 Windows Agent 构建、安装脚本和统一上报协议

- 增强 RDP 剪贴板、虚拟盘和文件传输能力

- 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口

- 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
2026-07-05 23:49:36 +08:00

144 lines
4.1 KiB
Markdown

# 日志中心设计说明
> 更新:2026-07-05
> 范围:Loki/Elasticsearch 数据源、统一日志查询、字段发现、查询历史、保存查询、日志告警、日志 RBAC。// Logan.Li
---
## 定位
日志中心负责把多种日志后端统一成一个查询工作台,重点不是采集日志,而是:
1. 管理日志数据源。
2. 代理查询 Loki / Elasticsearch。
3. 提供统一查询体验和结果展示。
4. 从查询条件生成日志告警。
5. 按用户/角色限制可见数据源、索引、标签范围。
---
## 能力矩阵
| 能力 | 当前状态 | 说明 |
|------|----------|------|
| Loki 查询代理 | 已完成 | 后端代理查询,前端统一展示 |
| ES 查询代理 | 已完成 | 支持索引、字段、结果解析 |
| 日志数据源管理 | 已完成 | 创建、测试、配置 |
| 查询编辑器 | 已完成 | 快速查询、自动补全、查询构建 |
| 时间范围 | 已完成 | TimeRangePicker |
| 字段侧栏 | 已完成 | 字段统计和过滤 |
| 查询历史/保存查询 | 已完成 | 前端交互能力 |
| 日志告警 | 已完成 | 从查询创建告警规则 |
| 日志 RBAC | 已完成 | log scope role |
---
## 主要代码落点
| 层 | 文件 / 目录 | 说明 |
|----|-------------|------|
| 后端控制器 | `backend/controller/log_datasource.go` | 日志数据源 CRUD |
| 后端控制器 | `backend/controller/log_proxy.go` | Loki/ES 查询代理 |
| 后端控制器 | `backend/controller/log_proxy_explore.go` | 探索式查询能力 |
| 后端控制器 | `backend/controller/log_scope_role.go` | 日志范围权限 |
| 后端模型 | `backend/model/log_datasource.go` | 日志数据源 |
| 后端模型 | `backend/model/log_scope_role.go` | 日志 RBAC |
| 前端 API | `frontend/src/api/log/` | 日志中心 API |
| 前端组件 | `frontend/src/components/monitor/log-center/` | 日志中心完整 UI |
---
## 查询链路
```text
LogCenter UI
├── select datasource
├── build query
├── choose time range
└── GET/POST /api/v1/log/...
│
▼
Backend log proxy
├── load datasource
├── check log RBAC
├── translate request
├── query Loki / ES
├── normalize response
└── return unified result
```
统一结果建议包含:
| 字段 | 说明 |
|------|------|
| `timestamp` | 日志时间 |
| `message` | 原始消息 |
| `labels` | Loki label 或 ES 字段标签 |
| `fields` | 结构化字段 |
| `source` | 数据源和索引/stream |
| `raw` | 原始日志对象 |
---
## 数据源模型
| 字段 | 说明 |
|------|------|
| `name` | 数据源名称 |
| `type` | loki / elasticsearch |
| `endpoint` | 服务地址 |
| `auth_type` | none / basic / token |
| `config` | 索引、租户、TLS、超时等 JSON |
| `status` | active / inactive |
敏感字段必须后端加密或脱敏返回,前端不应展示密码/token。
---
## 日志告警
```text
Saved Query / Current Query
→ create log alert rule
→ alert engine query log datasource
→ match count / pattern
→ create alert event
→ notify policy
```
建议规则字段:
| 字段 | 说明 |
|------|------|
| `datasource_id` | 日志数据源 |
| `query` | Loki LogQL 或 ES DSL/QueryString |
| `time_window` | 查询窗口 |
| `condition` | count > N / contains / no data |
| `severity` | warning / critical |
| `labels` | 业务、环境、服务 |
---
## 日志 RBAC
日志权限不只按页面菜单控制,还应按数据范围控制:
| 维度 | 示例 |
|------|------|
| 数据源 | 只能看生产 Loki,不能看审计 ES |
| 索引/stream | 只能看 `app-*` |
| 标签 | `namespace=dev`、`app=order` |
| 查询语法 | 禁止超大范围、禁止敏感索引 |
---
## 验收清单
1. Loki 数据源测试成功并能查询日志。
2. ES 数据源测试成功并能查询索引日志。
3. 查询时间范围切换后 URL/状态同步正确。
4. 字段侧栏能展示字段和值分布。
5. 从查询创建日志告警后能触发事件。
6. 无权限用户无法查询受限数据源或标签。
7. 查询超时、后端不可达时前端错误明确。