AI运维接入Prometheus——理论可行性的分析
AI 运维自动化方案分析报告
基于现有 Prometheus + Grafana + Node Exporter 监控栈的 AI 接入方案
目录
一、背景与现状
1.1 现有监控栈
当前机房运维环境部署了成熟的监控体系:
| 组件 | 用途 | 状态 |
|---|---|---|
| Node Exporter | 采集各服务器硬件/OS 指标 | 已运行 |
| Prometheus | 指标存储与告警规则引擎 | 已运行 |
| Grafana | 指标可视化仪表盘 | 已运行 |
| Alertmanager | 告警路由与通知管理 | 已运行 |
| wechat_webhook.py | 告警推送至企业微信 | 已运行 |
1.2 现存痛点
痛点一:告警处于"传统推送"阶段
-
企业微信收到的告警仅为原始文本,如
CPU 使用率超阈值,主机:10.x.x.x -
不含趋势分析,不含根因推断,不含处置建议
-
运维人员需要自行登录 Grafana 查看上下文,效率低
痛点二:巡检依赖人工,效率极低
-
目前巡检流程:登录 Grafana → 手动翻看各仪表盘 → 逐项对照巡检表 → 手动填写
-
全程人工,无自动化,重复劳动占据大量时间
-
巡检表(日巡检/月巡检)需人工填写约 20~30 个条目
痛点三:无法自然语言交互查询
-
如需查询"今天哪些主机 CPU 超 80%",必须去 Grafana 拼 PromQL 或翻仪表盘
-
无对话式接口,排查效率受限于运维人员的 PromQL 熟悉程度
二、核心思路与目标
2.1 本质思路
不推翻现有监控栈,而是在其上层加一层 AI 理解与执行层。
现有的 Prometheus + Grafana 体系数据采集是完整的,问题在于"数据到人"这一段全靠人工中转。AI 的引入,本质上是把这段中转自动化、智能化:
原来:数据 → Grafana 仪表盘 → 人眼看 → 人工判断 → 人工记录 目标:数据 → AI Agent 分析 → 自然语言结论 → 自动记录/推送
2.2 三个核心目标
| 目标 | 当前状态 | 目标状态 |
|---|---|---|
| 告警质量 | 推送原始告警文本 | 推送含根因分析和处置建议的智能告警 |
| 巡检效率 | 人工翻 Grafana 逐项填写 | AI 自动查询、自动填写巡检表 |
| 数据查询 | 需要手写 PromQL | 自然语言对话即可查询 |
三、三大场景分析
场景一:智能对话巡检
描述
在企业微信或本地 Web 界面中,运维人员用自然语言提问,AI 自动翻译成 PromQL 查询 Prometheus,返回格式化结果。
交互示例
运维:今天 CPU 超过 80% 的主机有哪些? AI:截至当前,以下主机 CPU 使用率超过 80%: - h800-gpu-master-13 → 87.3%(持续 23 分钟) - 10.10.110.5 → 82.1%(持续 5 分钟) 建议优先排查 master-13,持续时间较长。 运维:master-13 内存和磁盘呢? AI:h800-gpu-master-13 当前状态: - 内存使用率:91.2%(15.4 GB / 16 GB) - 根分区使用率:73.5%,剩余空间 约 106 GB - 内存使用率偏高,建议检查是否有内存泄漏进程。
底层逻辑
-
用户问题 → AI Agent 接收
-
Agent 理解意图,判断需要调用 Prometheus 查询工具
-
Agent 自动生成 PromQL(如
100 - avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m]))*100 > 80) -
通过 Prometheus HTTP API
GET /api/v1/query获取结果 -
AI 将 JSON 数据解析为自然语言,返回给用户
价值
-
不需要懂 PromQL,任意运维人员都能查
-
支持多轮追问,不用反复切换页面
-
可在告警发生时快速追查上下文
场景二:自动填写巡检表
描述
每天定时(如每天 08:00)自动从 Prometheus 拉取各项巡检指标,按巡检表模板格式写入 xlsx 文件,生成当日巡检记录,异常项自动标红,末尾自动生成巡检总结段落。
巡检条目与数据来源映射
根据现有巡检表(日巡检表 )分析,线上巡检段共 9 个条目,自动化覆盖率分析如下:
| 巡检条目 | 数据来源 | 自动化可行性 |
|---|---|---|
| 监控系统是否有新增异常数据 | Alertmanager API /api/v2/alerts |
✅ 完全自动 |
| 是否有设备宕机掉线 | up{job="node"} == 0 |
✅ 完全自动 |
| 根分区使用率是否高于 80% | node_filesystem_* |
✅ 完全自动 |
| 控制设备资源(CPU/内存/IO/硬盘) | node_cpu_*/node_memory_* |
✅ 完全自动 |
| 算力设备资源(GPU 指标) | DCGM_FI_DEV_*(需 DCGM Exporter) |
✅ 有 DCGM 则自动 |
| 存储设备资源 | node_disk_* |
✅ 完全自动 |
| 是否有掉盘/硬盘异常 | node_disk_io_time_seconds_total |
✅ 基本自动 |
| 设备温度异常(CPU/GPU/硬盘) | node_hwmon_temp_celsius / DCGM |
✅ 需 hwmon 采集 |
| 是否有掉卡(显卡配置丢失) | DCGM_FI_DEV_COUNT 变化检测 |
✅ 有 DCGM 则自动 |
网络巡检段(带宽/延时):
| 巡检条目 | 数据来源 | 自动化可行性 |
|---|---|---|
| 主线路延时与丢包 | Blackbox Exporter(需新增) | ⚠️ 需新增组件 |
| 备用线路延时与丢包 | Blackbox Exporter(需新增) | ⚠️ 需新增组件 |
| 带宽上下行占用 | node_network_transmit/receive_bytes_total |
✅ 完全自动 |
现场巡检段(现场物理巡检,不可自动化):
| 巡检条目 | 说明 |
|---|---|
| 服务器设备电源/电压/功耗 | 需人工现场核查 |
| 指示灯状态 | 需人工现场核查 |
| 设备数量与资产表一致性 | 需人工核对 |
| 室内温度/湿度 | 需温湿度探针(BMC/IPMI 可获取,可选接入) |
总结:线上巡检条目约 80% 可完全自动化,剩余 20% 为需人工的现场巡检项。
输出示例
自动生成的巡检表文件(巡检记录表_20260519.xlsx)中:
-
日期、时间、编号自动填入
-
□正常 □异常的选项自动勾选,异常项单元格背景标红 -
有数值的条目(延时、带宽、温度)直接填写具体数字
-
末尾"今日巡检总结"段落由 AI 自动生成一段自然语言描述
场景三:智能告警增强
描述
改造现有告警推送链路,在 Alertmanager 触发 webhook 后,不直接推送原始告警,而是先调用 AI Agent 分析告警上下文,再将"增强版告警"推送至企业微信。
告警内容对比
改造前(当前):
【告警】CPUHighUsage 主机:10.10.110.5 当前值:87.3% 触发时间:2026-05-19 08:32:14
改造后(目标):
【P1 告警】CPU 持续高负载 主机:10.10.110.5(h800-gpu-node-03) 当前值:87.3%,已持续 38 分钟 📊 AI 上下文分析: · CPU 使用率自 07:54 开始攀升,当前仍在上升趋势 · 同期内存使用率为 78.2%,压力也较大 · 磁盘 I/O 正常,排除磁盘导致 CPU 挂起的可能性 · 同集群其他节点 CPU 正常(均低于 40%) 💡 处置建议: 1. 优先 SSH 登录该节点,运行 top 查看占用 CPU 的进程 2. 检查是否有 GPU 训练任务异常占用 CPU 3. 如进程异常,考虑 kill 或迁移任务
技术实现
告警推送链路改造为:
Alertmanager → webhook → 中间层 Python 服务 → 调用 Prometheus API 查询上下文指标 → 调用 AI Agent API 生成分析和建议 → 格式化消息 → 推送企业微信
改造点仅在 wechat_webhook.py 中新增约 30 行代码,不影响 Alertmanager 配置。
四、整体架构设计
4.1 架构层次划分
┌─────────────────────────────────────────────────────────┐ │ 交互入口层 │ │ 企业微信机器人 Web 聊天界面 定时 cron 任务 │ └───────────────────────┬─────────────────────────────────┘ │ ┌───────────────────────▼─────────────────────────────────┐ │ AI Agent 中枢层(新增) │ │ Dify 平台 ←→ LLM(DeepSeek API) │ │ 工具调度 / 上下文管理 / 多轮对话 / 结果格式化 │ └────────────┬───────────────────┬────────────────────────┘ │ │ ┌────────────▼──────┐ ┌─────────▼──────────────────────┐ │ 工具层(新增) │ │ 执行层(新增) │ │ · Prometheus 查询 │ │ · SSH 远程命令执行 │ │ · Alertmanager 查 │ │ · openpyxl 巡检表写入 │ │ · 网络探测工具 │ │ · 企业微信消息推送 │ └────────────┬──────┘ └─────────┬──────────────────────┘ │ │ ┌────────────▼───────────────────▼──────────────────────┐ │ 现有基础设施层(不改动) │ │ Node Exporter → Prometheus → Alertmanager → Grafana │ │ H800 GPU 集群各节点(Ubuntu) │ └────────────────────────────────────────────────────────┘
4.2 数据流向
对话查询流:
用户问题(微信/Web) → Dify Agent API → 解析意图,生成 PromQL → Prometheus HTTP API(:9090) → 返回 JSON 指标数据 → AI 格式化为自然语言 → 推送/显示给用户
自动巡检流:
cron 触发(每天 08:00) → Python 巡检脚本 → 批量调用 Prometheus API(20+ 条 PromQL) → 汇总结果,判断正常/异常 → (可选)调用 AI 生成巡检总结段落 → openpyxl 写入巡检表模板 → 保存为日期命名 xlsx 文件 → 推送企业微信通知"今日巡检已完成"
告警增强流:
Prometheus 触发告警规则 → Alertmanager 路由 → webhook 调用 Python 告警处理服务 → 查询告警主机最近 15min 上下文指标 → 调用 AI Agent API 分析 → 生成增强告警消息 → 推送企业微信
五、新增组件清单
5.1 必选组件(核心功能依赖)
| 组件 | 类型 | 用途 | 部署方式 |
|---|---|---|---|
| Dify | 开源 AI Agent 平台 | Agent 宿主、工具调度、对话管理 | Docker Compose,部署在运维主机 |
| DeepSeek API | 云端 LLM 服务 | 自然语言理解与生成(大脑) | 直接调用 API,无需部署 |
| Prometheus 查询中间层 | Python 工具服务 | 封装 PromQL 供 Agent 调用 | 写入 Dify 自定义工具配置 |
| 巡检自动填表脚本 | Python 脚本 | 定时查询指标,写入 xlsx | 部署在运维主机,cron 定时运行 |
| 告警增强服务 | Python 脚本改造 | 拦截告警,调 AI 增强后推送 | 改造现有 wechat_webhook.py |
5.2 可选组件(增强功能)
| 组件 | 用途 | 新增原因 |
|---|---|---|
| Blackbox Exporter | 网络延时/丢包探测 | 巡检表中网络延时条目需要此数据 |
| DCGM Exporter | GPU 温度/掉卡监控 | H800 GPU 相关巡检条目需要此数据 |
| smartctl_exporter | 硬盘 SMART 健康状态 | 硬盘异常检测更精确 |
| Ollama 本地模型 | 内网隔离时替代 DeepSeek | 如环境无外网或有数据保密要求 |
5.3 改动组件(现有组件的改造)
| 组件 | 改动内容 | 改动量 |
|---|---|---|
wechat_webhook.py |
新增 AI 分析调用逻辑,增强告警内容 | +30 行代码 |
| Alertmanager 配置 | webhook URL 改为指向新的增强服务 | 改 1 行配置 |
5.4 无需改动的组件
-
Node Exporter(所有已部署节点)
-
Prometheus 服务本身
-
Grafana 仪表盘
-
现有告警规则(.rules 文件)
六、可行性分析
6.1 技术可行性
对话查询(可行性:高)
-
Prometheus 具备完整的 HTTP API,
/api/v1/query接口可程序化调用,无需任何额外配置 -
Dify 已成熟支持自定义工具(HTTP 工具),直接填写 OpenAPI Schema 即可
-
DeepSeek 对中文运维场景理解能力强,PromQL 生成准确率高
-
唯一风险:AI 生成 PromQL 存在偶发错误,需在系统提示词中预置常用查询模板约束输出
自动填表(可行性:高)
-
已验证巡检表 xlsx 结构(3 个 Sheet,28~29 行),
openpyxl库完全支持读写操作 -
Prometheus 中已采集了巡检表约 80% 条目所需的指标
-
纯 Python 脚本,无复杂依赖,cron 定时触发成熟可靠
-
唯一风险:如 Prometheus 未采集某些指标(如 GPU 温度),对应条目需降级为"待人工确认"
告警增强(可行性:高)
-
改造量极小,仅改
wechat_webhook.py,不动 Alertmanager 配置 -
AI 分析调用可设置超时(如 5 秒),超时则降级回原始告警推送,不影响告警可用性
-
唯一风险:AI API 调用增加了约 1~3 秒延迟,对告警实时性有轻微影响(可接受)
6.2 资源可行性
| 资源 | 需求 | 现状评估 |
|---|---|---|
| 服务器资源 | Dify 需 2 核 4G 内存 | 运维主机或任意管理节点可承载 |
| 网络 | DeepSeek API 需出口外网 | 机房需有外网访问(备选内网 Ollama) |
| 费用 | DeepSeek API 约 ¥1/百万 Token | 巡检和告警场景月费用预计低于 ¥50 |
| 人力 | 脚本开发 + Dify 配置 | 3~5 天可完成核心功能 |
6.3 风险评估
| 风险点 | 影响程度 | 应对策略 |
|---|---|---|
| AI API 调用失败/超时 | 中 | 设置超时降级,降级时推送原始告警 |
| LLM 生成 PromQL 有误 | 低 | 预置常用查询模板,限制 Agent 行为范围 |
| 某些指标未采集 | 低 | 对应巡检条目标注"数据缺失,待人工",不中断流程 |
| 外网访问受限 | 中 | 备选方案:部署 Ollama + Qwen/DeepSeek 本地模型 |
| 巡检表模板变更 | 低 | 填表脚本按 Sheet 名 + 行关键字匹配,鲁棒性较强 |
七、实施后效果预期
7.1 效率提升量化
| 工作内容 | 现在耗时 | AI 接入后耗时 | 节省 |
|---|---|---|---|
| 每日巡检(线上部分) | 30~45 分钟 | 0 分钟(全自动) | ~35 分钟/天 |
| 填写日巡检表 | 15~20 分钟 | 0 分钟(全自动) | ~18 分钟/天 |
| 告警响应(查上下文) | 5~10 分钟/次 | 1 分钟/次(AI 已给分析) | ~8 分钟/次 |
| 临时查询(如 CPU 异常主机) | 3~5 分钟 | 10 秒 | ~4 分钟/次 |
每月累计节省时间预估:
-
每日巡检填表:18 分钟 × 30 天 = 540 分钟(9 小时)
-
告警响应提速:假设每月 30 次告警 × 8 分钟 = 240 分钟(4 小时)
-
临时查询:假设每月 50 次 × 4 分钟 = 200 分钟(3.3 小时)
-
合计:约 16 小时/月的重复性工作被自动化
7.2 质量提升
-
巡检表填写消除人为漏项和填写错误,数值精确到小数点
-
告警消息从信息传递升级为决策辅助,运维人员看到告警就知道该怎么做
-
历史巡检数据格式统一,便于后续做趋势分析
7.3 运维能力升级路径
当前阶段:被动响应(出问题了人去看) ↓ 接入 AI 后 第一阶段:主动推送 + 对话查询(AI 告诉你出了什么问题) ↓ 后续延伸 第二阶段:异常预测(AI 通过趋势预判将要出问题的节点) ↓ 第三阶段:自动修复(AI 判断后自动执行修复动作,如重启服务)
本次方案落地第一阶段,为后续演进打好基础。
八、风险与注意事项
8.1 数据安全
-
DeepSeek API 调用会将指标数据和主机信息发送至外部服务
-
建议:不在提示词中包含完整 IP 段、密码等敏感信息
-
如有严格数据合规要求,使用 Ollama 本地模型替代,数据不出内网
8.2 告警可靠性保障
-
AI 增强环节必须设置超时保护(建议 5 秒)
-
超时或 AI 服务不可用时,自动降级为原始告警格式推送,绝不因 AI 故障导致告警丢失
8.3 巡检表的局限性
-
线上巡检条目 AI 自动填写,但现场物理巡检(灰尘、线缆、指示灯)仍需人工
-
自动生成的巡检表建议人工复核后签字,而非完全无人工审查
8.4 LLM 幻觉问题
-
AI 回答运维问题时,存在极低概率的"编造数据"风险
-
应对策略:关键数值类回答必须附带原始 PromQL 和数据来源,让运维人员可验证
九、实施建议路线
阶段划分
Phase 1(第 1~2 天):基础设施搭建 · 部署 Dify(Docker Compose) · 配置 DeepSeek API Key · 验证 Prometheus HTTP API 可访问 Phase 2(第 3~4 天):自动填表落地 · 编写 Python 巡检填表脚本 · 确定各巡检条目的 PromQL 映射 · 测试并与现有巡检表模板对齐 · 配置 cron 定时任务 Phase 3(第 5~7 天):对话巡检接入 · 在 Dify 中创建 Prometheus 查询工具 · 编写 Agent 系统提示词 · 发布为 API,接入企业微信机器人 Phase 4(第 8~10 天):告警增强改造 · 改造 wechat_webhook.py · 测试告警增强全链路 · 上线,观察 1 周效果
优先级建议
| 优先级 | 场景 | 原因 |
|---|---|---|
| P0(最高) | 自动巡检填表 | 最快落地,不依赖 Dify,直接 Python 脚本,1~2 天可用 |
| P1 | 智能对话查询 | 依赖 Dify 部署,但使用频率最高,长期价值最大 |
| P2 | 告警增强 | 改造量小,但对运维处置效率提升明显 |
附录:涉及的关键技术接口
Prometheus HTTP API
# 即时查询 GET http://<prometheus>:9090/api/v1/query?query=<PromQL> # 区间查询(用于趋势分析) GET http://<prometheus>:9090/api/v1/query_range?query=<PromQL>&start=<ts>&end=<ts>&step=<interval>
Alertmanager API
# 获取当前所有活跃告警 GET http://<alertmanager>:9093/api/v2/alerts
Dify Agent API
# 向 Agent 发送对话消息
POST http://<dify>:80/v1/chat-messages
Authorization: Bearer <api-key>
Body: {
"inputs": {},
"query": "用户问题",
"response_mode": "blocking",
"user": "ops-user"
}
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)