大模型服务监控:用 Prometheus 搭建指标采集与告警

大模型服务跑起来之后,很多人只关心能不能出结果,却不知道它什么时候变慢、显存是否吃紧、请求是否堆积。
用 Prometheus 给大模型服务做监控,核心就是让服务把运行指标暴露出来,再由 Prometheus 定时拉取,最后通过告警规则在异常时通知你。
本文以本地部署的 Ollama 和 vLLM 为例,讲清楚从零配置的完整过程。

先确认你的大模型服务是否支持指标暴露

Prometheus 采用拉取模式,需要目标服务提供一个 HTTP 接口,通常路径是 /metrics,返回文本格式的指标数据。
不同大模型框架的支持情况不一样:

  • Ollama 默认不暴露 Prometheus 指标,需要借助中间件或自定义导出器。
  • vLLM 启动时加 --api-key 并访问 /metrics 路径即可获取推理指标,具体以你使用的版本为准。
  • 如果你用的是自己封装的 API 服务,可以在代码里引入 prometheus_client 库手动埋点。

准备条件:一台能运行 Prometheus 的 Linux 主机(建议 2 核 4G 以上)、大模型服务所在机器的 IP 和端口、以及能访问目标端口的网络环境。

安装 Prometheus 并配置第一个采集任务

以下步骤在 Ubuntu 22.04 上演示,其他发行版替换包管理命令即可。

  1. 下载并解压 Prometheus(版本号请以官网最新稳定版为准):
wget https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-amd64.tar.gz
tar xvf prometheus-2.53.0.linux-amd64.tar.gz
cd prometheus-2.53.0.linux-amd64
  1. 编辑 prometheus.yml,在 scrape_configs 下增加大模型服务的采集任务:
scrape_configs:
  - job_name: 'ollama-exporter'
    scrape_interval: 15s
    static_configs:
      - targets: ['192.168.1.100:9101']

这里 9101 是假设的导出器端口,实际端口以你的部署为准。
如果大模型服务直接暴露 /metrics,把 targets 改成服务地址和端口即可。

  1. 启动 Prometheus:
./prometheus --config.file=prometheus.yml

启动后访问 http://你的IP:9090,在顶部菜单的 Status -> Targets 中能看到采集目标状态为 UP,说明配置已生效。

用导出器补齐 Ollama 的运行指标

Ollama 本身不直接提供 /metrics,常见做法是运行一个轻量导出器,把 Ollama 的 API 状态转换成 Prometheus 格式。
你可以用社区维护的导出器,也可以自己写一个简单脚本。
以 Python 为例,用 prometheus_client 起一个 HTTP 服务,定时请求 Ollama 的 /api/tags 并记录响应时间:

from prometheus_client import start_http_server, Gauge
import requests, time

resp_time = Gauge('ollama_api_response_seconds', 'Ollama API response time')

def collect():
    start = time.time()
    requests.get('http://127.0.0.1:11434/api/tags', timeout=5)
    resp_time.set(time.time() - start)

if __name__ == '__main__':
    start_http_server(9101)
    while True:
        collect()
        time.sleep(15)

运行后,Prometheus 就能从 9101 端口拉到 ollama_api_response_seconds 指标。
这个例子只采集了响应时间,你可以按同样方式增加显存、请求数等自定义指标。

配置告警规则并验证触发

监控数据有了,下一步是让异常主动通知你。
在 prometheus.yml 同级目录新建 rules.yml:

groups:
  - name: llm-alerts
    rules:
      - alert: OllamaApiSlow
        expr: ollama_api_response_seconds > 2
        for: 1m
        labels:
          severity: warning
        annotations:
          summary: "Ollama API 响应超过 2 秒"

然后在 prometheus.yml 中引用规则文件:

rule_files:
  - rules.yml

重启 Prometheus 后,在 Alerts 页面能看到规则状态。
为了验证告警链路,可以临时把阈值调低,或者手动制造一次慢请求,观察告警是否从 Inactive 变为 Pending 再到 Firing。
确认无误后记得恢复合理阈值。

避坑与验证清单

配置过程中容易踩的几个坑:

  • 目标端口不通:先在 Prometheus 主机上用 curl http://目标IP:端口/metrics 确认能拿到数据,再检查防火墙和云安全组。
  • 指标名称写错:Prometheus 的表达式对大小写敏感,告警规则里的指标名必须和实际暴露的一致,可以在 Prometheus 的 Graph 页面输入指标名自动补全验证。
  • 时间窗口设得太短:for 设置过小容易产生抖动告警,建议至少 1 分钟,结合业务容忍度调整。
  • 导出器与主服务争抢资源:导出器尽量轻量,避免频繁请求大模型接口影响推理性能。

验证监控是否真正生效,可以按这个顺序检查:Targets 页面状态为 UP、Graph 页面能查到指标曲线、Alerts 页面规则状态正常、模拟异常后告警能触发。
四步都通过,这套大模型 Prometheus 监控才算落地。

如果后续要接入 Grafana 做可视化,只需在 Grafana 中添加 Prometheus 数据源,再导入或自建面板即可。
监控本身不复杂,关键是先把指标暴露和采集链路跑通,再逐步补充告警规则。

分享到:
上一篇
大模型CI/CD流水线配置:从零搭建自动训练与部署流程
下一篇
大模型服务监控:Grafana面板配置实战
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意