版权声明 本文为原创内容,著作权归[Jevanshy]所有。 未经授权禁止转载。如需引用或二次创作,请遵守以下规则:
- 清晰标注原文标题、作者及原始链接
- 禁止商业用途(包括但不限于付费专栏、培训材料)
- 禁止洗稿(修改关键代码/截图后伪装原创) 违反者将追究责任。 原文永久地址:github.com/JevanShy/pu…
本文将详细拆解一个基于 n8n、Elasticsearch 和 DeepSeek-V3 构建的自动化分析链路。该链路能够每周自动锁定 Top 5 故障应用,并针对高频错误进行根因分析。
一、 前置准备:让数据与算力就绪
在实现自动化分析之前,需要确保以下基础设施已落地:
-
日志基座 (ELK/EFK) :
- 生产环境日志已统一接入 Elasticsearch。
- 日志包含标准字段:
app.keyword(应用标识)、level.keyword(日志等级)、msg.keyword(错误消息摘要)以及stackTrace(异常堆栈)。
-
低代码引擎 (n8n) :用于串联 ES 查询、数据清洗、AI 调用及消息通知的完整流转。
-
大模型算力 (DeepSeek-V3) :具备较强逻辑推理能力的 LLM,通过 API 接入,负责对清洗后的日志进行 SRE 维度的深度解读。
-
推送终端:企业微信机器人的 Webhook Key。
二、 核心链路:四步走实现智能分析
整个 AIOps 链路设计思路清晰,采用“由大到小、由浅入深”的过滤策略:
第一步:锁定“故障大户” (App-Level Aggregation)
流程启动后,首先通过 httpRequest 对 ES 发起第一次聚合查询。
- 过滤条件:限定过去 7 天内
level: ERROR的数据。 - 核心逻辑:通过
terms聚合对app.keyword字段进行计数排名,筛选出报错总数最高的前 5 个应用。 - 目的:解决“看哪里”的问题,确保精力聚焦在核心矛盾上。
第二步:精准捕获高频异常 (Message-Level Aggregation)
锁定 Top 5 应用后,流程会为每个应用分别发起第二次精准查询。
- 操作逻辑:针对特定
appName,通过msg.keyword字段进行二次聚合。 - 核心产出:获取该应用下出现频次最高的 Top 1 错误消息,并利用
top_hits抽样获取该错误对应的完整stackTrace和method信息。 - 目的:解决“什么错最严重”的问题,为 AI 分析提供高质量的输入样本。
第三步:AI 辅助根因定位 (Data Cleaning & AI Agent)
原始堆栈通常包含大量冗余信息,直接发送会消耗大量 Token 且干扰 AI 判断。
- 堆栈脱水:利用自定义 JS 脚本,通过正则匹配提取
Caused by:根因链,并对每一层级进行截断,只保留最有价值的代码调用行。 - 智能诊断:将清洗后的数据喂给 AI Agent。并为 DeepSeek 注入了 SRE 专家指令,要求其严禁猜测,必须基于
method和stackTrace给出具体的优化建议(如:修改连接池参数、增加空闲检查、优化业务判空逻辑等)。
第四步:多维度结果触达 (Multi-Channel Output)
分析完成后,流程通过企业微信进行双向反馈:
- 即时摘要:在群聊中推送 Markdown 格式的汇总数据,罗列 Top 5 应用及其报错总数,便于快速概览。
- 详细副本:将 DeepSeek 生成的深度报告转换为 HTML 格式文件并上传。方便研发人员对报告进行下载预览,查看详细的故障分析和操作建议。