PrometheusMCP+WorkBuddy实现自然语言驱动的AIOps巡检,架构与部署详解

本文介绍一种基于 Prometheus MCP 协议与 WorkBuddy 智能体构建的 AIOps 方案:通过 Docker Compose 部署 Prometheus、Node Exporter ...

人工智能

在运维自动化向智能化演进的过程中,AIOps(人工智能运维)正从概念走向实际部署。近期,一套以 Prometheus MCP(Model Context Protocol)为核心、结合 WorkBuddy 智能体的轻量级 AIOps 架构引发关注——它不依赖复杂模型微调或私有大模型训练,而是通过标准化工具协议桥接现有监控系统与大语言模型能力,实现“自然语言查指标、自动出报告”的闭环。

该方案的核心价值在于其极低的部署门槛与强实用性。整个系统仅需三台容器即可运行:Node Exporter 负责采集 Linux 主机基础指标(CPU、内存、磁盘、网络、负载),Prometheus 负责拉取并存储时序数据,而 Prometheus MCP Server 则将 Prometheus 的 HTTP API 封装为符合 MCP 规范的可调用工具接口。WorkBuddy 作为前端智能体,接收自然语言指令(如“过去一小时 CPU 使用率最高的节点”),调用该工具获取 PromQL 查询结果,再对数据进行分析、组织并生成结构化 HTML 报告。

图中清晰展示了数据流路径:Linux 宿主机 → Node Exporter → Prometheus 存储 → MCP Server 封装 → WorkBuddy 调用 → 分析生成 HTML 报告。其中,MCP 协议是关键中间层,它定义了 AI 智能体如何发现、描述与调用外部工具(如数据库查询、API 请求、文件操作等),从而避免每个应用重复开发工具集成逻辑。在本例中,MCP Server 仅需暴露 /tools 接口供 WorkBuddy 发现,并响应标准格式的调用请求,即可完成从自然语言到 PromQL 的转换与执行。

部署层面,方案采用 Docker Compose 统一编排,配置简洁且易于复现。用户只需在一台具备 Docker 环境的 Linux 云服务器上创建 prometheus.yml 与 compose.yaml 文件,指定目标 IP 与端口映射(如 Prometheus 外部访问端口设为 19090,MCP Server 为 8080),即可一键启动整套服务。值得注意的是,Node Exporter 在容器内挂载宿主机 /proc、/sys 和 / 根目录,确保采集数据真实反映主机状态;而 Prometheus 的抓取配置中通过 labels: instance: '203.0.113.10' 显式标注实例标识,便于后续多节点扩展时做区分。

WorkBuddy + Prometheus MCP 智能运维架构图

实际运行后,运维工程师可在 WorkBuddy 界面直接输入中文问题,例如:“请生成今日凌晨 2 点至 4 点的磁盘 I/O 峰值报告”,系统将自动构造 PromQL 查询(如 rate(node_disk_io_time_seconds_total{instance="203.0.113.10"}[5m])),提取时间窗口内最大值,并整合为含 KPI 卡片与趋势图的可视化报告。图1所示即为典型巡检看板:顶部展示关键性能指标(KPI 卡片),如 CPU 使用率 2.4%、内存使用率 45.0%、磁盘读写速率等;下方则为实时时间序列图表,支持按步长(如 60s)动态刷新。

这一模式区别于传统脚本化巡检或静态仪表盘,其优势体现在三方面:一是交互方式自然,降低非专业人员使用门槛;二是报告生成动态化,可按需定制查询范围与维度;三是工具链解耦,MCP Server 可复用于其他监控系统(如 Grafana Loki、VictoriaMetrics),无需重写智能体逻辑。

文章配图

WorkBuddy 本身作为开源智能体框架,支持插件化扩展。在界面中,用户可通过“专家技能连接器”添加各类 MCP 工具,包括腾讯会议、钉钉、企业微信、CNB 数据库等,形成跨系统协同能力。

值得注意的是,该方案并非孤立存在,而是当前 AI Agent 工具调用范式落地的一个缩影。MCP 协议由 GitHub 社区推动,旨在统一 LLM 与外部服务的交互标准;类似思路也出现在 Playwright MCP、Chrome DevTools MCP 等 Web 自动化场景中。但相比后者常面临的“元素定位失败”“视觉模型延迟高”等问题(如用户反馈中提及的“猜测 ID 导致重试耗时”),Prometheus 场景具有显著优势:指标数据结构稳定、查询语义明确、无 DOM 动态变化干扰,因此任务成功率与响应速度更高。

从代码结构看,该方案后端由 server.py(MCP 工具定义与执行器)、client.py(大模型对话管理与工具调度)、api.py(FastAPI 接口层)组成;前端则包含 app.py(启动脚本)、index.html(页面骨架)及 app.js(负责 SSE 流式输出、Markdown 渲染与语音交互)。

这种前后端分离、模块职责清晰的设计,使得开发者可快速替换底层模型(如接入本地 Qwen、Llama 3)或扩展新工具(如对接 Zabbix、ELK),而不影响核心流程。WorkBuddy 甚至提供“自定义连接器”功能,允许用户自行注册新 MCP 服务,进一步提升灵活性。

WorkBuddy 连接器管理界面

在实际测试中,该系统可在 3 秒内完成一次完整巡检报告生成:从接收自然语言指令,到调用 PromQL 查询、解析 JSON 响应、组织数据、渲染 HTML 页面并返回给用户。对于中小规模集群(≤10 节点),单机部署即可满足日常巡检需求;若需支持更大规模,可将 Prometheus 改为联邦集群模式,MCP Server 亦可水平扩展。

需要指出的是,当前方案仍属“辅助型 AIOps”——它强化了数据获取与呈现环节,但异常根因分析、自动修复等高级能力尚未内置。未来可结合日志分析(如接入 Loki + LogQL)、拓扑关联(如 Service Mesh 指标)与因果推理模型,逐步向预测性运维演进。

目前,该方案已在多个技术社区公开演示,相关代码与部署文档已开源。其意义不仅在于提供一个可用的 AIOps 示例,更在于验证了“标准化工具协议 + 现有监控栈 + 轻量智能体”这一路径的可行性:无需重造轮子,即可让传统运维体系快速具备自然语言交互能力。对于希望低成本试水 AIOps 的团队而言,这是一条值得优先考虑的技术路线。