从告警泛滥到高效定位:MCP 异常分析实践
背景 为提高后台整体质量,目前大部分后台系统都接入了 Error 日志监控告警,接入初期产生了非常多的告警,消耗了我们大量的时间去排查。当前线上异常日志排查主要存在以下痛点: 服务链路复杂,定位困难: 后台系统通常由众多服务构成(包括上下游依赖),排查一个问题往往需要跨多个监控平台应用、多个集群日志、多个服务进行搜索,并定位代码才能准确定位根源。 告警噪音干扰严重: 存在大量 Error 级别的告警日志并非真正的系统异常(例如预期的业务校验失败、可忽略的第三方短暂异常),而是需要调整日志级别或优化处理逻辑。识别此类“非问题”告警并推动修改,同样耗费大量时间。 跨团队协作成本高: 当排查指向下游服务或需要其他团队协助时,需耗费大量时间手动整理详细的异常上下文信息(如时间戳、TraceID、关键参数、异常堆栈)并转交给相关方。 缺乏智能化辅助: 大部分异常的分析本质上是梳理代码执行链路和业务逻辑。此过程高度依赖人工经验,若能借助 AI 能力智能推导出完整的调用链路、关键变量状态及潜在逻辑缺陷,将极大提升排查效率,甚至在部分场景下自动修复代码解决。 目标 建立自动化异常日志分析系统: 构建智能化的日志处理与分析平台,减少人工介入。 实现日志到代码的快速精准定位: 将异常日志信息快速关联到对应的代码仓库、文件乃至代码行。 显著提升异常排查效率: 缩短单个异常的平均排查时间(MTTR),释放开发运维人力。 构建可复用的异常分析知识库: 积累处理经验,形成可检索的知识沉淀,辅助未来同类问题的解决。 方案 1、人工 OR 自动 AI 辅助我们排查问题,主要有两种方式: 方案 优点 缺点 方案一:开发MCP Server,人工将企业 IM 群内的报错信息发给 AI Client,AI 结合接收到的日志内容、关联的代码仓库信息,进行代码定位与异常链路分析,并输出报告。 1. 可控性强: 人工筛选关键告警触发分析,避免无效请求。2. 利用成熟能力: 可集成现有 MCP 平台及 Cursor AI 强大的代码分析能力。3. 易于初期试点: 实施复杂度相对较低。 1. 依赖人工介入: 仍需人工识别并转发告警信息,无法实现全流程自动化。2. 响应有时延: 依赖于人工操作,响应速度不如自动触发快。3. 上下文可能不全: 人工转发可能遗漏关联日志或上下文信息,影响分析准确性。 方案二:开发 AI 服务,将Error日志直接上报到AI 服务,利用 AI 自动化分析并输出报告 1. 自动化程度高: 无需人工干预,实现告警到分析的自动闭环。 1. 初期处理压力大: 线上错误日志量大且繁杂,直接全量上报会造成 AI 服务巨大吞吐压力与分析资源浪费。2. 需完善过滤机制: 必须设计高效的过滤规则,避免无效分析。 总结:方案一适合初期试点、或处理复杂低频、需要人工确认的高优先级问题。其优势在于风险可控,能充分利用现有工具链。所以我们可以先采取方案一,人工根据严重程度和优先级识别筛选问题,并发给 AI 分析,后续再使用自动化的方式帮助我们过滤或标注出需要重点关注的Error 异常问题。根据两种方式使用不同的大模型来控制成本。 ...