模块 05 · 认知网络
认知网络是 Observable Ops 的「知识大脑」——通过构建和推理运维知识图谱,将分散的拓扑结构、实时事件、历史案例转化为可查询、可推理的结构化知识网络,为根因分析、智能决策提供深层语义理解能力。
##📑 目录
章节导航
- 模块定位与职责
- 认知图谱模型
- 核心功能分解
- API 设计规范
- 数据流架构
- 模块协作关系
- 量化指标体系
- 部署架构
- 本章小结
1. 模块定位与职责
1.1 在 4 层架构中的位置
认知网络属于能力层核心模块,负责构建和维护运维知识图谱,并提供图推理和查询能力:接收来自拓扑建模、智能感知和知识进化的多源异构数据,输出推理结果和知识查询服务给根因分析、智能决策模块。
flowchart LR
subgraph 数据层["数据层"]
T[02 拓扑建模]
F[03 数据融合]
end
subgraph 知识层["能力层 · 认知网络"]
COG[05 认知网络
Cognitive Network]
end
subgraph 知识来源["知识来源"]
S4[04 智能感知
Events]
S11[11 知识进化
History]
end
subgraph 消费层["下游能力模块"]
RCA[07 根因分析]
DEC[09 智能决策]
DIA[06 故障研判]
end
T -->|拓扑子图| COG
F -->|实体快照| COG
S4 -->|事件流| COG
S11 -->|历史案例| COG
COG -->|推理结果| RCA
COG -->|知识查询| DEC
COG -->|诊断上下文| DIA
style COG fill:#fff9c4,stroke:#f9a825,stroke-width:3px
style 数据层 fill:#fff9c4,stroke:#f9a825,stroke-width:2px
style 知识来源 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
style 消费层 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style T fill:#c8e6c9
style F fill:#c8e6c9
style S4 fill:#bbdefb
style S11 fill:#bbdefb
style COG fill:#fff9c4,stroke:#f9a825,stroke-width:3px
style RCA fill:#c8e6c9
style DEC fill:#c8e6c9
style DIA fill:#c8e6c9
1.2 核心职责
| 职责 |
描述 |
输出 |
| 知识图谱构建 |
将拓扑结构、事件数据、历史案例统一构建为知识图谱 |
知识图谱(Neo4j) |
| 实体消解 |
跨数据源的实体模糊匹配、属性链接、共现分析,实现实体消歧 |
Canonical 实体 |
| 关系推理 |
通过传递推理、归纳推理、时序因果推理,发现隐含关系 |
Inferred Edges |
| 时序推理 |
时间窗口查询、有效性区间追踪、变更追踪 |
Temporal Query |
| 知识查询 |
提供低延迟图查询、推理查询、路径查询 |
Query Result |
1.3 核心设计原则
flowchart LR
P1[Graph Native
图原生] --> P2[Uncertainty Aware
不确定性感知]
P2 --> P3[Temporal First
时序优先]
P3 --> P4[Incremental Update
增量更新]
P4 -.-> P1
style P1 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style P2 fill:#fff9c4,stroke:#f9a825,stroke-width:3px
style P3 fill:#fce4ec,stroke:#c62828,stroke-width:3px
style P4 fill:#e8f5e9,stroke:#388e3c,stroke-width:3px
- 图原生(Graph Native):所有数据以图结构存储和查询,避免关系型数据库的 JOIN 开销
- 不确定性感知(Uncertainty Aware):每条边都有 confidence 评分,推理结果明确标注置信度
- 时序优先(Temporal First):时间维度是图谱的一等公民,支持时间窗口查询和变更追踪
- 增量更新(Incremental Update):图谱实时增量更新,无需全量重建
1.4 子模块划分
| 子模块 |
职责 |
技术选型 |
| Builder 图谱构建器 |
接收多源数据,构建节点和边,支持增量写入 |
Python / Neo4j Cypher |
| Resolver 实体消解器 |
模糊匹配、属性链接、共现分析,实现实体消歧 |
Python / Redis Graph |
| Reasoner 推理引擎 |
传递/归纳/时序推理,发现隐含关系 |
Neo4j GDS / Python |
| Query 查询服务 |
图查询 API、Cypher 查询、路径发现 |
Flask / Neo4j |
| Temporal 时序管理器 |
时间窗口、有效性区间、变更追踪 |
Neo4j / Python |
| Visualizer 可视化导出 |
D3.js JSON 导出,子图可视化 |
Python / D3.js |
2. 认知图谱模型
2.1 知识图谱 Schema
2.1.1 节点类型体系
| 节点类型 |
Label |
描述 |
核心属性 |
| 概念节点 |
Concept |
抽象概念(服务类型、故障类型、指标类型) |
name, description, category |
| 实体节点 |
Entity |
具体 IT 实体(服务、主机、数据库) |
id, name, type, labels, properties |
| 事件节点 |
Event |
运维事件(告警、变更、故障) |
event_id, type, timestamp, severity |
| 指标节点 |
Metric |
指标快照(时间序列聚合点) |
metric_name, entity_id, value, timestamp |
| 案例节点 |
Case |
历史故障案例(来自知识进化) |
case_id, title, root_cause, resolution |
2.1.2 边类型体系
| 边类型 |
Edge Type |
描述 |
方向 |
属性 |
| 属性边 |
HAS_ATTRIBUTE |
实体拥有某属性 |
Entity → Attribute |
value, confidence |
| 因果边 |
CAUSED_BY |
事件 A 导致事件 B |
Event → Event |
confidence, lag_ms |
| 相似边 |
SIMILAR_TO |
两实体/事件高度相似 |
Bidirectional |
similarity_score |
| 时序边 |
FOLLOWS |
事件 A 在事件 B 之后发生 |
Event → Event |
time_gap_ms, confidence |
| 关联边 |
CORRELATES_WITH |
两指标/实体存在关联 |
Bidirectional |
correlation_score, type |
| 实例化边 |
INSTANCE_OF |
实体是概念的实例 |
Entity → Concept |
—— |
| 组成边 |
PART_OF |
实体是另一实体的组成部分 |
Entity → Entity |
—— |
2.2 时间维度模型
2.2.1 双时间戳模型
| 时间类型 |
字段 |
说明 |
| 有效时间 |
valid_time_start / valid_time_end |
实体/关系在业务上的有效时间区间(如服务 A 在 2026-01-01 到 2026-03-01 属于某集群) |
| 事务时间 |
tx_time |
实体/关系被写入图谱的时间(用于审计和回溯) |
2.3 置信度评分模型
认知网络的每条边和推理结果都有 confidence 评分:
| 置信度区间 |
含义 |
下游处理 |
| 0.9 - 1.0 |
确定性知识(直接观测) |
直接使用,无需验证 |
| 0.7 - 0.9 |
高置信度推断 |
可使用,建议人工复核 |
| 0.5 - 0.7 |
中等置信度推断 |
作为参考,需其他证据支持 |
| 0.0 - 0.5 |
低置信度假设 |
仅展示,不参与计算 |
2.4 知识三元组模型
{
"triple_id": "triple-001",
"subject": {
"type": "Entity",
"id": "svc-payment-prod",
"name": "Payment Service"
},
"predicate": "CAUSED_BY",
"object": {
"type": "Entity",
"id": "db-mysql-primary",
"name": "MySQL Primary"
},
"confidence": 0.85,
"source": "topology-aware-inference",
"evidence": [
{"type": "metric_correlation", "score": 0.92},
{"type": "call_chain", "score": 0.78}
],
"valid_time": {
"start": "2026-01-01T00:00:00Z",
"end": null
},
"tx_time": "2026-06-07T08:00:00Z"
}
3. 核心功能分解
3.1 图谱构建(Graph Construction)
3.1.1 数据来源与构建方式
| 数据来源 |
数据类型 |
节点生成 |
边生成 |
频率 |
| 02 拓扑建模 |
拓扑子图 |
Service / Host / Database 节点 |
CALLS / ACCESSES / DEPLOYED_ON 边 |
实时(变更事件) |
| 04 智能感知 |
告警事件 |
Alert 事件节点 |
SIMILAR_TO(告警聚类)/ CAUSED_BY(传播推断) |
实时(告警流) |
| 03 数据融合 |
指标快照 |
Metric 节点 |
CORRELATES_WITH(指标关联) |
每 5 分钟 |
| 11 知识进化 |
历史案例 |
Case 案例节点 |
SIMILAR_TO(案例相似)/ RESOLVED_BY(解决方案) |
每日批量 |
3.2 实体消解(Entity Resolution)
3.2.1 消解策略
| 策略 |
方法 |
适用场景 |
置信度 |
| 模糊匹配 |
名称相似度(Jaro-Winkler > 0.85) |
同一服务在不同数据源中命名略有差异 |
0.8 - 0.95 |
| 属性链接 |
共享 IP / Port / Cluster 等属性 |
主机/网络设备实体消歧 |
0.85 - 0.98 |
| 共现分析 |
在相同调用链/告警中同时出现 |
服务实体跨数据源对齐 |
0.75 - 0.9 |
| 时序对齐 |
指标时序曲线相关性 > 0.9 |
同一服务的监控指标匹配 |
0.8 - 0.92 |
3.3 关系推理(Relation Inference)
3.3.1 推理类型
| 推理类型 |
方法 |
输入 |
输出 |
| 传递推理 |
A→B, B→C → A→C |
已有的因果链 |
推断的跨跳因果关系 |
| 归纳推理 |
频繁项挖掘 / 关联规则 |
历史事件共现模式 |
新发现的关联规则(如 A 类故障常伴随 B 指标异常) |
| 时序因果推理 |
Granger Causality / 时序相关 |
时序指标数据 |
指标间的因果指向关系 |
3.4 时序推理(Temporal Reasoning)
3.4.1 时序查询能力
- 有效性区间查询:查询某实体在指定时间点的所有有效关系
- 时间窗口查询:查询 [T1, T2] 时间窗口内的所有事件和关系变化
- 变更追踪:查询某实体的所有历史版本(tx_time 回溯)
- 快照比对:对比两个时间点的图谱子图差异
3.4.2 时间旅行查询示例
// 查询 Payment Service 在 2026-06-01 的完整上下文
MATCH (n {id: 'svc-payment-prod'})-[r]-(m)
WHERE r.valid_time_start <= datetime('2026-06-01')
AND (r.valid_time_end IS NULL OR r.valid_time_end >= datetime('2026-06-01'))
RETURN n, r, m
4. API 设计规范
4.1 REST API
| 方法 |
路径 |
描述 |
响应 |
| GET |
/api/v1/cognitive/graph |
查询图谱子图(支持节点过滤) |
Graph |
| GET |
/api/v1/cognitive/graph/node/{id} |
查询单个节点的完整上下文 |
NodeContext |
| POST |
/api/v1/cognitive/query |
执行 Cypher 查询或结构化查询 |
QueryResult |
| POST |
/api/v1/cognitive/reasoning |
执行推理查询(如路径发现、因果推理) |
ReasoningResult |
| GET |
/api/v1/cognitive/inference/{node_id} |
查询某实体的所有推断关系 |
InferenceResult[] |
| GET |
/api/v1/cognitive/similar/{node_id} |
查询与某实体相似的其他实体 |
SimilarEntity[] |
| GET |
/api/v1/cognitive/visualize/{node_id} |
导出 D3.js 可视化 JSON |
D3JSGraph |
4.2 查询语言
4.2.1 支持的查询类型
| 查询类型 |
语法 |
示例 |
| Cypher 原生 |
Cypher |
MATCH (a)-[r:CAUSED_BY]->(b) WHERE a.severity='HIGH' RETURN a, b |
| 结构化查询 |
JSON DSL |
{"type":"path", "from":"svc-A", "to":"svc-B", "max_hops":3} |
| 时序查询 |
时间表达式 |
{"type":"temporal", "node":"svc-A", "at":"2026-06-01"} |
| 推理查询 |
推理类型 |
{"type":"inference", "node":"svc-A", "mode":"causal_chain"} |
5. 数据流架构
5.1 整体数据流
flowchart LR
subgraph 知识来源["多源知识输入"]
T[02 拓扑建模]
S4[04 智能感知]
F[03 数据融合]
S11[11 知识进化]
end
subgraph 构建层["图谱构建层"]
BLD[Graph Builder
节点/边构建]
RES[Entity Resolver
实体消解]
end
subgraph 推理层["推理层"]
INFER[Reasoning Engine
传递/归纳推理]
TEMP[Temporal Engine
时序推理]
end
subgraph 存储层["知识存储层"]
NEO[(Neo4j
Knowledge Graph)]
RD[(Redis
Query Cache)]
end
subgraph 消费层["下游消费"]
RCA[07 根因分析]
DEC[09 智能决策]
DIA[06 故障研判]
end
T -->|拓扑子图| BLD
S4 -->|事件流| BLD
F -->|指标快照| BLD
S11 -->|历史案例| BLD
BLD -->|增量写入| NEO
NEO -->|图查询| RES
RES -->|消解结果| INFER
INFER -->|推理边| NEO
NEO -->|时序查询| TEMP
TEMP -->|时序结果| NEO
NEO -->|推理结果| RCA
NEO -->|知识查询| DEC
NEO -->|诊断上下文| DIA
style 知识来源 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
style 构建层 fill:#fff9c4,stroke:#f9a825,stroke-width:2px
style 推理层 fill:#ede7f6,stroke:#7b1fa2,stroke-width:2px
style 存储层 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style NEO fill:#c8e6c9,stroke:#388e3c,stroke-width:3px
5.2 增量更新流程
flowchart LR
EVENT[变更事件] --> PARSE[解析事件
类型识别]
PARSE --> TYPE{事件
类型}
TYPE -->|实体新增| NEW_N[新增节点]
TYPE -->|实体更新| UPD_N[更新节点
属性/时间戳]
TYPE -->|关系新增| NEW_E[新增边]
TYPE -->|关系删除| DEL_E[软删除边
valid_time_end]
TYPE -->|推理触发| INFER[触发推理引擎
生成推断边]
NEW_N --> WRITE[写入 Neo4j]
UPD_N --> WRITE
NEW_E --> WRITE
DEL_E --> WRITE
INFER --> WRITE
WRITE --> CACHE[更新 Redis
查询缓存]
style 构建层 fill:#fff9c4,stroke:#f9a825,stroke-width:2px
style WRITE fill:#c8e6c9,stroke:#388e3c,stroke-width:3px
5.3 推理查询流程
flowchart LR
Q[推理查询
请求] --> PARSE_Q[解析查询
类型/参数]
PARSE_Q --> CACHE_H{缓存
命中?}
CACHE_H -->|命中| RTN[直接返回
Cached Result]
CACHE_H -->|未命中| NEO_Q[查询 Neo4j]
NEO_Q --> MODE{推理
模式}
MODE -->|传递推理| TRANS[Transitive
Closure]
MODE -->|归纳推理| INDUC[Association
Rule Mining]
MODE -->|时序推理| TEMP_R[Temporal
Reasoning]
TRANS --> SCORE[置信度
评分]
INDUC --> SCORE
TEMP_R --> SCORE
SCORE --> FILTER[confidence
阈值过滤]
FILTER --> WRITE_C[写入缓存
TTL=5min]
FILTER --> RTN2[返回结果]
style NEO_Q fill:#fff9c4,stroke:#f9a825,stroke-width:2px
style SCORE fill:#ede7f6,stroke:#7b1fa2,stroke-width:3px
6. 模块协作关系
6.1 依赖矩阵
| 模块 |
依赖认知网络的什么 |
依赖类型 |
接口方式 |
| 02 拓扑建模 |
提供拓扑子图作为图谱初始结构 |
数据依赖 |
Neo4j 直接查询 / Kafka 事件 |
| 03 数据融合 |
提供融合后的实体快照和指标快照 |
数据依赖 |
Kafka 事件订阅 |
| 04 智能感知 |
提供告警事件流作为图谱事件节点来源 |
数据依赖 |
Kafka 事件订阅 |
| 07 根因分析 |
查询图谱进行传播路径推理和因果分析 |
数据依赖 |
REST / gRPC 查询 |
| 09 智能决策 |
查询图谱知识,辅助决策上下文 |
数据依赖 |
REST 查询 |
| 06 故障研判 |
查询图谱获取诊断上下文 |
数据依赖 |
REST 查询 |
| 11 知识进化 |
消费历史案例写入图谱,接收图谱统计信息 |
数据依赖 |
Kafka 双向通道 |
6.2 输出接口契约
6.2.1 推理结果输出格式
{
"inference_id": "inf-20260607-001",
"type": "CAUSED_BY",
"subject": {
"id": "svc-payment-prod",
"name": "Payment Service",
"type": "Entity"
},
"object": {
"id": "db-mysql-primary",
"name": "MySQL Primary",
"type": "Entity"
},
"confidence": 0.82,
"reasoning_method": "transitive_inference",
"evidence": [
{"type": "direct_call", "from": "svc-payment", "to": "db-mysql", "confidence": 0.95},
{"type": "metric_correlation", "score": 0.78}
],
"valid_time": {
"start": "2026-01-01T00:00:00Z",
"end": null
}
}
7. 量化指标体系
7.1 图谱质量指标
| 指标 |
描述 |
基线(当前) |
目标 |
测量方式 |
| 图谱覆盖率 |
图谱节点占已知实体的比例 |
70% |
> 90% |
Neo4j 节点数 vs CMDB 实体数 |
| 推理准确率 |
推断边的准确性(人工抽检) |
68% |
> 80% |
知识进化反馈验证 |
| 实体消解率 |
成功消解的跨源实体对比例 |
75% |
> 90% |
Redis 消解命中率 |
| 知识三元组增长率 |
每日新增的知识三元组数量 |
1000/天 |
> 5000/天 |
Neo4j 写入统计 |
7.2 服务质量指标
| 指标 |
描述 |
SLO 目标 |
告警阈值 |
| 查询延迟 P99 |
图查询和推理查询的 P99 延迟 |
< 200ms |
> 500ms |
| 图谱写入吞吐量 |
节点/边写入速率 |
> 5000/s |
< 2000/s |
| Neo4j 可用率 |
图数据库月度可用率 |
99.95% |
< 99.5% |
7.3 容量规划指标
| 资源 |
当前使用 |
规格上限 |
扩容触发阈值 |
| Neo4j 存储 |
100GB / 500GB |
500GB |
80% |
| 图谱节点数 |
50,000 |
1,000,000 |
> 800,000 |
| 图谱边数 |
200,000 |
5,000,000 |
> 4,000,000 |
| Redis 查询缓存 |
2GB / 8GB |
8GB |
70% |
8. 部署架构
8.1 K8s 部署拓扑
flowchart LR
subgraph 计算层["计算层"]
subgraph 服务["Cognitive API 服务"]
COG[Cognitive Network
API x2]
end
subgraph 推理["推理引擎"]
REAS[Reasoning Engine
Python Process]
end
end
subgraph 存储层["存储层"]
NEO[(Neo4j
Cluster x3)]
RD[(Redis
Query Cache)]
GDS[GDS Library
图算法库]
end
subgraph 数据输入["数据输入"]
T[02 拓扑建模]
S4[04 智能感知]
F[03 数据融合]
end
T -->|拓扑写入| NEO
S4 -->|事件写入| NEO
F -->|指标写入| NEO
COG -->|图查询| NEO
COG -->|推理调用| REAS
REAS -->|GDS 算法| GDS
GDS --> NEO
COG -->|查询缓存| RD
style 计算层 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
style 存储层 fill:#fff9c4,stroke:#f9a825,stroke-width:2px
style NEO fill:#c8e6c9,stroke:#388e3c,stroke-width:3px
style COG fill:#c8e6c9,stroke:#388e3c,stroke-width:2px
8.2 资源配置
| 组件 |
副本数 |
CPU |
内存 |
存储 |
备注 |
| Cognitive API |
2(主备) |
4 核 |
8 GB |
—— |
StatefulSet,PDB |
| Reasoning Engine |
2 |
8 核 |
16 GB |
—— |
GDS 图算法计算 |
| Neo4j Cluster |
3 节点 |
8 核 |
32 GB |
500 GB SSD |
图数据存储 + GDS |
| Redis Query Cache |
3 节点 |
4 核 |
8 GB |
—— |
查询结果缓存 |
8.3 高可用设计
- Neo4j 因果集群:3 节点因果集群,写入通过主节点,读取可路由到任意节点
- Redis 查询缓存:Cluster 模式,TTL 5 分钟,缓存穿透时降级查询 Neo4j
- 推理引擎无状态:推理引擎无状态,K8s 自动重启
- 图谱增量写入:变更事件驱动增量写入,无需全量重建
9. 本章小结
9.1 核心要点
| 维度 |
核心要点 |
量化目标 |
| 定位 |
能力层核心模块,运维知识图谱的构建与推理引擎 |
—— |
| 模型 |
图原生存储,Concept / Entity / Event / Metric 四类节点,6 种边类型 |
覆盖率 > 90% |
| 能力 |
图谱构建 / 实体消解 / 关系推理 / 时序推理 / 知识查询 5 大能力 |
推理准确率 > 80% |
| 接口 |
REST + Cypher DSL + D3.js 可视化导出,支持时序查询 |
查询延迟 P99 < 200ms |
| 特点 |
不确定性感知(confidence 评分)、双时间戳模型(valid_time + tx_time) |
—— |
记忆口诀:
图原生存储 Neo4j,节点四类边六型;拓扑事件融合来,知识图谱日日新;传递归纳时序推,置信评分量可信;时序双戳真变迁,增量更新无全量;查询缓存 P99 二百,推理准确八成目标。
本章定义了模块 05 认知网络的详细功能设计规范。后续章节将阐述根因分析(07)、智能决策(09)等模块的设计细节。
文档版本:V1.0 | 更新日期:2026-06-07