李凯锋KAIFENG LI
← 白皮书安静翻阅书本的水獭

Log Assitant 01: Overview

01 - 系统概览

一句话定位

校园网络日志助手 = ES 之上的”聚合查询编排 + LLM 解释 + 业务影响识别”中间层. 让运维不写 ES DSL, 用自然语言诊断 DNS/DHCP 故障.

不是什么

误解真值
“替代 ELK”❌. ES 必须在底层, 本系统不存日志
“替代 Grafana”❌. 本系统不画 metric 时序图, 只做”问题诊断”
“ChatGPT 套壳问答”❌. 真接你的 ES, 真用 14 个白名单 ES 聚合 query, LLM 只编排不直接读 raw
“AI 自动修网络”❌. 安全三旗物理禁止 (execution_enabled=false). AI 只给建议, 运维手动改

是什么

真能力真做法
主动发现问题滚动告警扫描 (10 分钟/次, 看过去 15 分钟 DNS/DHCP 失败率), 越阈值出告警进队列, 运维点告警出 AI 报告
按线索发现问题运维输入自由文本 “教学区今天 DNS 慢”, LLM 抽时间窗+真凶域名+IP, 跑 14 工具真聚合, 出诊断报告
业务影响识别asset_registry yaml 维护 12 个业务系统 IP 映射, 报告里直接说”影响统一认证 / 校园门户 / 教务系统 …” 而非 “172.16.x.x”
安全边界raw_log_scan=false (不直读 raw 日志), preview_only=true (建议预览不执行), execution_enabled=false (禁运维变更)

跟 ELK / Grafana / Prometheus 对比

系统职责跟本系统关系
Elasticsearch存日志 + 提供 DSL 查询本系统必依赖. 跑在 ES 上层. ES 挂了本系统 fallback 到 2012 历史样本数据 (会显红色 banner)
Logstash / Filebeat日志采集进 ES本系统不管. 假设 ES 里 dns-dnstap-* syslog-bras-* iaaa_app_baseinfo index 已 ready
KibanaES 探索性查询 + 仪表盘平行存在. 运维想直接看 raw 日志去 Kibana, 想出诊断报告来本系统
Grafana时序 metric 图 (CPU/QPS/latency)不冲突. Grafana 看趋势, 本系统看故障根因. 后续可能加 Grafana datasource 把本系统报告嵌进面板
Prometheusmetric 采集 + 告警规则平行. 本系统的滚动告警是基于 ES 聚合不是 Prometheus rule
Sentry / 自建告警应用层错误告警不重叠. 本系统是网络层 (DNS/DHCP) 不是应用层

何时该用 / 不该用

✅ 该用本系统

  • 学生反映 “网慢”, 想 10 分钟内定位是 DNS / DHCP / 上游 / 业务系统
  • 告警平台报了一堆”DNS 失败 N 次”, 想 AI 帮把同根因的合并 + 给业务影响
  • 新员工不会写 ES DSL, 想用中文问 “上周三晚上 OA 打不开”
  • 想审计 AI 真凶判定准确度 (跑 R(N) 真后端评估)

❌ 不该用本系统

  • 想看 CPU / 内存 / 带宽时序图 → 用 Grafana
  • 想 grep 某条原始 syslog → 用 Kibana
  • 想自动修复某个故障 (重启 nginx) → 用 Ansible / 自建脚本, 本系统物理禁止变更
  • 想做 SIEM 安全审计 → 用 Splunk / ELK + SIEM 插件, 本系统只看 DNS/DHCP 不看安全事件

核心能力清单 (4 endpoint × 3 段输出)

4 个真后端 endpoint

端URL用法
APOST /api/v1/log-assistant/dns/resolver-chain-triageDNS 单端深度诊断 (给定 resolver_ip + 时间窗, 出报告)
BPOST /api/v1/log-assistant/ai/multiround-triage (protocol=dns)DNS 多轮排障 (AI 自己决定跑哪几个工具)
CPOST /api/v1/log-assistant/dhcp/ai-tool-triageDHCP 单工具诊断 (5 个 DHCP 聚合查询并跑)
DPOST /api/v1/log-assistant/ai/multiround-triage (protocol=dhcp)DHCP 多轮排障

加按线索路径 POST /api/v1/log-assistant/clue/diagnose (自由文本输入).

每个 endpoint 真返 3 段输出

段字段路径内容
AI 推理report.ai_reasoning.{available, hypotheses, reasoning_summary, confidence_delta}LLM 真给的根因假设 + 自然语言解释
业务影响report.business_impact.{asset_context, affected_business_systems, affected_zones, headline_summary}资产识别 + 12 业务系统真在场名字 + 影响区域 + 时段
建议动作report.recommended_actions[*].{title, tier, body}3-tier 分层 (emergency / mitigation / long_term)

每段都含 safety_flags={raw_log_scan: false, preview_only: true, execution_enabled: false} 真在场.

详见 03-data-flow.md.

数据来源

来源真用途哪个 phase 接的
ES dns-dnstap-* indexDNS 查询/响应聚合Phase 15-17
ES syslog-bras-* indexDHCP 消息聚合Phase 15-17
ES iaaa_app_baseinfo index业务系统 IP 反查Phase 36 (auto extract)
asset_registry.yaml12 业务系统 + resolver 资产字典Phase 32, Phase 68.B 真接对齐
servers.demo.json业务系统真域名映射 (脱敏占位)Phase 36
topology.json网段 zone 标签Phase 36
DeepSeek API (云端) + 本地 LLM (优先)LLM 推理Phase 32-34

AI 模型清单

模型用途何时调
本地 LLM (Qwen 等校内部署)主 LLM, 排障推理默认走这个 (OPENCLAW_REASONING_PRIMARY=local-onprem)
DeepSeek v4-flash / v4-pro (云端)Fallback本地 LLM 连不上时自动切 (Phase 34 双源接通)

重要: DeepSeek 官方 model 名是 deepseek-v4-flash / deepseek-v4-pro (2026/07/24 起 deepseek-chat/reasoner 弃用). 配置时不要用老名字.

演进至今 (2026-06-12) 关键 milestone

时间Milestonecommit
Phase 15-17 (2026-04)ES 真接通 + 安全边界确立—
Phase 32-37 (2026-05)LLM 加层 + 多轮排障 + 业务影响 + 跨告警关联—
Phase 49 (2026-05)按线索路径基础 (15 步 deterministic plan + LLM enrich)—
R10-R28 (2026-06 早)phase67 8 件出口字面 caveat 补丁堆积, P0 总数持平 (反例)—
R28-R37 (2026-06-11/12)phase68 6 件 source-fix lineage 改源头, P0 -1 总分 +304b11fa0 收口
R1 (2026-06-12)按线索 phase69 A-F 6 commit 真凶 5 层修源头, 老师 case 1 真凶 100% 匹配04a8d4c 收口
当前双主线技术阶段全收口, 运维试用决策窗口—

详见 08-version-history.md.

已知局限 (诚实标)

局限影响状态
DHCP business_impact.asset_context.matched=False 持续DHCP 端报告业务影响段为空已知遗留 (phase69.G 候选), 试用反馈决定起不起
LLM C endpoint rank1 翻车率 71%DHCP 单工具诊断的根因排序不稳定LLM 非确定性本质, 试用前必须明示运维 “rank1 是参考不是确定”
168h (7 天) 聚合性能未真验老师真问 7 天大窗口可能超 backend 180s timeouthard cap 168h 已加, 等老师真示例验
ES 数据源抖动时 fallback 到 2012 演示样本报告基于历史数据, 不反映当下phase69.B data_freshness_warning critical banner 真告知 + frontend phase69.E 真渲染
真后端 fixture 35 个 (主动) + 5 个 (按线索), 覆盖率不广极端场景可能没覆盖鼓励试用期间累积新场景入库

详见 08-version-history.md §已知遗留.


下一步: 02-architecture.md (部署架构 + 组件清单 + 端口表)

Thanks for reading.

写作、创造,以及生活中的小发现。

系列:网安日志助手·白皮书 ↗

邮件交流 ↗ 回到开头 ↑