搭建私有AI监控助手:Grafana MCP + 阿里云百炼完整部署指南

AI 时代程序员必备技能

Claude Code 完整实战,MCP 与子代理工程化落地,让 AI 接管脏活累活

引言

作为一名运维开发者,我每天都需要频繁查看Grafana监控面板,排查告警、分析日志、追踪性能指标。当集群规模扩大后,这种“人肉巡检”方式变得愈发低效——我需要一个能听懂人话的AI助手,帮我查仪表盘、分析PromQL、定位异常。

经过一番调研与实践,我利用MCP(模型上下文协议)打通了Grafana与AI大模型,成功搭建了一套私有的AI监控对话系统。本文将完整记录从0到1的部署过程,希望能帮你避开我踩过的坑。

资源链接:


一、核心概念:MCP是什么?

MCP(Model Context Protocol)是由Anthropic提出的开放标准协议,可以理解为AI世界的“USB-C接口”。它让AI模型能够通过统一的方式调用外部工具和数据源。

在我们这套架构中:

  • MCP服务(grafana/mcp-grafana)扮演“桥梁”角色,将Grafana的API封装成标准化的工具
  • AI模型(通义千问)作为“大脑”,理解用户意图并决定调用哪些工具
  • 客户端(Cherry Studio)提供对话界面,连接AI模型和MCP服务

简单来说:用户提问 → AI理解并决策 → 通过MCP调用Grafana → 返回数据 → AI整理回复。


二、架构总览

┌─────────────────────────────────────────────────────────────────┐
│  用户 (对话界面)                                               │
│  └── Cherry Studio / Open WebUI                               │
│       │                                                       │
│       ▼                                                       │
│  AI模型 (阿里云百炼 Qwen)                                     │
│  └── 理解意图,决策调用哪些工具                                │
│       │                                                       │
│       ▼                                                       │
│  MCP协议 (HTTP/HTTPS)                                        │
│  └── 标准化的工具调用请求                                      │
│       │                                                       │
│       ▼                                                       │
│  Grafana MCP 服务 (grafana/mcp-grafana)                      │
│  └── 封装Grafana API为65+工具 (查询仪表盘/PromQL/告警等)      │
│       │                                                       │
│       ▼                                                       │
│  Grafana 实例 (数据源)                                        │
│  └── 返回监控数据                                             │
└─────────────────────────────────────────────────────────────────┘

三、前期准备

3.1 环境信息

  • 操作系统:RHEL 9 / CentOS 9 (内核 5.14)
  • Grafana:服务器上已提前运行grafana 10.2.6 开源版,运行在 http://localhost:38002
  • AI模型:阿里云百炼 Qwen3.6 (通过API调用)
  • MCP服务:grafana/mcp-grafana (Docker部署)
  • 客户端:Cherry Studio (桌面客户端)

3.2 需要的凭证

  1. Grafana 服务账户令牌:用于MCP服务访问Grafana
  2. 阿里云百炼 API Key:用于调用Qwen模型

四、第一步:创建Grafana服务账户令牌

  1. 登录Grafana → 管理服务账户
  2. 点击 新建服务账户
    • 名称:mcp-server
    • 角色:Viewer(只读)或 Editor(可读写)
  3. 点击 生成令牌立即复制保存(关闭后不可见)
  4. 令牌格式示例:glsa_xxxxxx
    在这里插入图片描述

五、第二步:部署Grafana MCP服务

5.1 使用Docker部署(streamable-http模式)

docker run -d \
  --name mcp-grafana \
  --restart unless-stopped \
  --add-host host.docker.internal:host-gateway \
  -p 8000:8000 \
  -e GRAFANA_URL="https://你的grafana地址" \
  -e GRAFANA_SERVICE_ACCOUNT_TOKEN="glsa_你的令牌" \
  grafana/mcp-grafana -t streamable-http

关键参数说明:

  • -t streamable-http:使用HTTP流式传输模式,支持远程客户端连接
  • --add-host host.docker.internal:host-gateway:让容器能访问宿主机服务
  • -p 8000:8000:暴露服务端口

5.2 验证服务是否正常

# 检查容器状态
docker ps | grep mcp-grafana

# 测试MCP服务(应返回JSON响应)
curl -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"0.1.0","capabilities":{}},"id":1}'

成功会返回包含 "protocolVersion":"2025-11-25" 和工具列表的JSON。


六、第三步:配置Nginx反向代理(解决公网访问问题)

6.1 为什么需要Nginx?

grafana/mcp-grafana 出于安全考虑,默认只允许 localhost 的请求。通过Nginx代理,可以将外部请求的 Host 头重写为 localhost,从而绕过限制。

6.2 Nginx配置文件

# /etc/nginx/conf.d/mcp-proxy.conf

# HTTP 重定向到 HTTPS
server {
    listen 80;
    server_name gra-mcp.exmaple.com;
    return 301 https://$server_name$request_uri;
}

# HTTPS 配置
server {
    listen 443 ssl;
    http2 on;
    server_name gra-mcp.exmaple.com;

    ssl_certificate /etc/nginx/ssl/exmaple.com.pem;
    ssl_certificate_key /etc/nginx/ssl/exmaple.com.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location /mcp {
        # IP白名单(可选,增强安全)
        allow xx.xx.xx.xx/32;
        deny all;

        # X-API-Key认证(可选)
        if ($http_x_api_key != "你的强密码") {
            return 403;
        }

        proxy_pass http://127.0.0.1:8000/mcp;
        proxy_set_header Host localhost:8000;  # 关键:重写Host头
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
}

6.3 启动Nginx

nginx -t && systemctl reload nginx

6.4 验证代理是否生效

curl -X POST https://gra-mcp.exmaple.com/mcp \
  -H "Content-Type: application/json" \
  -H "X-API-Key: 你的强密码" \
  -d '{"jsonrpc":"2.0","method":"initialize","params":{},"id":1}'

七、第四步:配置Cherry Studio客户端

7.1 安装Cherry Studio

从官网下载对应平台的安装包,安装后打开。

7.2 配置阿里云百炼模型

  1. 点击左下角 设置模型服务
  2. 找到 阿里云百炼,填入 DASHSCOPE_API_KEY
  3. 添加模型:qwen-plusqwen-max
    在这里插入图片描述
    在这里插入图片描述

7.3 配置MCP服务器

  1. 进入 设置MCP服务器
  2. 点击 添加服务器
    • 名称grafana-mcp
    • 类型streamable-httpsse
    • URLhttps://gra-mcp.exmaple.com/mcp
    • 请求头X-API-Key: 你的强密码
  3. 保存,等待状态变为 已连接
    在这里插入图片描述
    在这里插入图片描述

7.4 开始对话

  1. 新建对话,选择阿里云百炼模型
  2. 在输入框下方开启MCP开关,勾选 grafana-mcp
  3. 输入测试指令:
    • 帮我列出所有Grafana仪表盘
    • 查询当前有哪些告警规则
    • 过去一小时CPU使用率最高的服务是什么
      在这里插入图片描述
      在这里插入图片描述

八、安全加固建议

8.1 IP白名单

在Nginx中添加 allow 规则,只允许特定IP访问。

8.2 API Key认证

通过 X-API-Key 请求头验证客户端身份。

8.3 只读模式

启动MCP服务时添加 --disable-write 参数,禁止写操作。

docker run ... grafana/mcp-grafana -t streamable-http --disable-write

8.4 升级MCP版本

确保 grafana/mcp-grafana 版本 ≥ 0.17.1,以修复已知SSRF漏洞。


九、常见问题排查

问题原因解决方法
host not allowedMCP服务拒绝非localhost请求通过Nginx代理,重写Host
403 Forbidden缺少或错误的认证头检查X-API-Key是否正确
MCP连接失败端口未开放或防火墙限制检查8000/443端口,放行安全组
工具列表为空客户端未正确加载MCP工具确保对话中MCP开关已开启

十、总结

至此,你已经拥有了一套完整的AI监控助手:

  • 数据层:Grafana存储监控数据
  • 桥梁层:MCP服务封装65+工具
  • 智能层:通义千问模型理解意图
  • 交互层:Cherry Studio提供对话界面

整个方案的亮点:

  1. 私有化部署:所有组件自托管,数据不出内网
  2. 标准化协议:MCP让AI与监控系统无缝对接
  3. 低成本高回报:用对话替代点按,运维效率大幅提升

下一步,你可以探索:

  • 将MCP接入Open WebUI,提供团队协作界面
  • 部署Qwen3.6-27B本地模型,摆脱API依赖
  • 对接Prometheus/Loki等更多数据源

AI 时代程序员必备技能

Claude Code 完整实战,MCP 与子代理工程化落地,让 AI 接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值