
内核崩溃(Crash)诊断是运维领域门槛最高、耗时最长的环节:现场信息分散在 vmcore、dmesg、调用栈、硬件信息各处,人工逐条分析费时费力;故障案例持续积累却难以沉淀复用,同类故障反复排障。
Osclinic 是美团 MTOS 自研运维平台,承载10万+服务器集群,但内核崩溃诊断高度依赖专家经验。为此 OpenAtom openEuler(简称:“openEuler”或“开源欧拉”) 社区与美团联合打造 Witty 智能运维引擎:openEuler 贡献800万条多源内核知识(Linux commit/邮件/Bugzilla、openEuler commit/issue)与 rag_core 核心组件,美团提供十万级集群实战场景与 Osclinic 平台底座。Witty 以「Witty-智能诊断 Agent」驱动内核崩溃智能诊断,让排障不再依赖少数专家。
代码仓链接:
https://atomgit.com/openeuler/witty-agents
Witty-智能诊断 Agent 以「检测→分析→关联→修复→沉淀」为主线,按「数据→知识→推理」三层构建:

多路径日志检测(数据层):指纹匹配、向量检索、规则检测、LLM理解四路并行,20G日志分钟级特征提取(witty-log-detection + crash-feature-matcher 承载)
vmcore-analysis 双轨分析:疑难故障走「vmcore逆向 + 源码正向」交叉验证,22类故障分支定向排查
数据治理与多源检索(知识层):800万条多源知识(Linux commit/邮件/Bugzilla、openEuler commit/issue)分层治理——全量数据可经 grep/egrep、git 命令直接检索;精处理数据入 rag_core(JSON知识库+Document知识库),逻辑过滤+语义混合检索
crash-feature-matcher 分层匹配:L1指纹秒级处理已知故障,L2按崩溃类型自适应检索,支撑90%已知故障拦截与40%未知故障兜底
知识图谱根因融合(推理层):实体抽取→关联发现→一致性验证,结论可解释、高可信
8步闭环:任务启动→本地基线→并行检测→案例检索→根因验证→回流再挖掘→多源融合→报告沉淀
最终产出标准化 JSON 报告(DiagnoseReport),自动渲染为 crash-report.html,通过 Schema 强校验后交付并回写知识库。下面用美团K8s集群一次真实宕机逐章带读。
故障背景:某K8s开发机突发宕机。Agent 端到端自动分析,7步工作流约11分钟,输出完整报告——内核专家做同样的事通常要数天。

只给三样东西:一句人话结论、修复动作、修复状态。
本例结论:采集代理扫描 /proc 时扫到内核线程,内核取地址空间得到空值未拦截,空指针进入加锁访问导致宕机;内核已知缺陷,与业务和硬件无关。
修复状态卡最关键:上游2024年9月已修,openEuler已于2026-08-08回合、自6.6.0-166.0.0起修复——本机内核编译于2026-08-07,恰差一天。动作一目了然:升级内核即根治。展开还附完整补丁diff与回合说明:


崩溃现场压缩为结构化特征:崩溃类型、崩溃点(down_read_killable+0xa)、崩溃指纹 null_pointer::kernel::down_read_killable::0xa。报告入库后同类故障指纹秒级命中,直接复用结论。展开可看逐行◀注释的原始崩溃日志:


一段人话机制概述 + 一张事件时序图(事件标注L1直接证据/L2强推断,图上每步都有实锤)。本例7步因果链:
采集代理遍历 /proc 进入内核线程的映射目录 → 读目录回调按任务取地址空间 → 内核线程本就没有用户地址空间,返回空值 → 判错只认错误码,空值穿透 → 空指针+锁字段偏移0xb0 → 加锁指令对无效地址原子写 → 缺页异常、整机宕机。

全报告最「硬」的部分——结论不是黑盒,而是拆成8问逐条用现场证据回答:崩在哪个函数?0xb0 从哪来?空值取自哪个任务?为何没有地址空间?谁触发的?防线为何失效?影响多大、为何必复发?上游知道吗、本机为何没修?
展开证据卡是完整的 crash 分析原始记录——现场日志、crash> dis反汇编、结构体偏移实测,串成「已知→结论」推导链:


宕机栈、日志明细、命中案例、原始 report.json 全量挂出。两个亮点:内核源码摘录直接标出 fs/proc/base.c 判错缺口(只判错误码、不判空值);Agent工作流真实记录7步每步的观察、判断与工具调用——过程可审计、可回放:


Witty-智能诊断 Agent 赋能 Osclinic 后:单例crash根因定位由1周缩短至20分钟,20G日志分析从数天压缩至5分钟;内部案例库拦截90%已知故障,社区800万条多源知识再提升40%未知故障拦截。普通运维同学也能拿到专家级根因结论,每次诊断自动沉淀案例,越用越智能。
目前 Witty 可通过 MCP 协议、CLI/API 接入各类工作流;核心组件已在 openEuler社区开源。欢迎加入sig-intelligence 共建,探索openEuler 与 AI 智能运维更多可能。
代码仓:
https://atomgit.com/openeuler/witty-agents
开发小组:
sig-intelligence
交流社区:
https://www.openeuler.openatom.cn/zh/sig/sig-intelligence


Witty 是 openEuler 的智能运维入口,支持用户通过自然语言处理各类运维问题,内置日志检测、知识库、集群管理、性能调优等全套运维能力套件。基于上述运维套件,Witty 进一步构建问答、故障诊断、性能调优多类智能 Agent,覆盖单机、集群、超节点多种部署场景。本专项旨在演示 Witty 智能运维入口的基础能力,并深度拆解各类智能体,剖析其内部工作原理。
-END-
供稿 | 赵家麒
编辑 | 丘云
校审 | 郑振宇、刘彦飞

关注我们,了解更多
▼
