)
【书生·浦语】internlm2-chat-1.8b实战教程Ollama模型监控PrometheusGrafana想让你的大模型服务跑得又快又稳吗光会部署可不够你得知道它“身体”好不好。今天我们就来聊聊怎么给部署在Ollama上的InternLM2-Chat-1.8B模型装上一套“心电图”和“仪表盘”——也就是用Prometheus和Grafana来监控它。想象一下你正在用这个模型处理一个重要的对话任务突然响应变慢了或者干脆没反应了。你该怎么办是模型本身的问题还是服务器资源不够了有了这套监控系统你就能像看汽车仪表盘一样实时看到模型的CPU、内存使用情况、请求响应时间、错误率等关键指标问题出在哪一目了然。这篇文章我就手把手带你从零开始搭建一套专为Ollama部署的InternLM2-Chat-1.8B模型设计的监控方案。即使你之前没接触过Prometheus和Grafana跟着步骤走也能轻松搞定。1. 监控方案概览为什么需要以及它能做什么在深入动手之前我们先花几分钟搞清楚我们到底要建一个什么东西以及它能给我们带来什么好处。1.1 为什么需要监控Ollama模型你可能觉得模型部署好了能跑起来不就行了但对于一个需要持续提供服务的应用来说这远远不够。监控能帮你解决以下几个核心问题问题定位与排障当用户反馈“模型回答慢”或“出错了”你可以立刻查看监控图表判断是模型推理耗时激增还是服务器内存不足导致了OOM内存溢出或是网络出现了波动。这能极大缩短排查时间。性能优化依据通过观察历史趋势你可以了解模型的典型负载模式。比如发现每天下午3点CPU使用率都会飙升这可能意味着那个时段有定时任务或访问高峰你可以据此考虑优化或扩容。资源规划与成本控制监控数据能告诉你运行这个模型到底需要多少CPU和内存资源。这为你选择更合适的云服务器规格提供了数据支撑避免资源浪费或不足。服务可用性保障你可以设置告警规则当关键指标如服务不可用、错误率过高异常时通过邮件、钉钉、微信等渠道及时通知你实现主动运维防患于未然。1.2 技术栈介绍Prometheus Grafana我们选择的方案是业界最流行的开源监控组合Prometheus普罗米修斯它相当于一个高性能的“时间序列数据库”和“数据抓取器”。它的工作方式是主动去各个目标这里就是Ollama服务上“拉取”Pull监控指标数据然后存储起来。它自带一套强大的查询语言PromQL可以用来灵活地查询和分析这些时序数据。Grafana格拉法纳它是一个功能强大的“数据可视化”平台。它本身不存储数据而是作为一个华丽的“仪表盘”从各种数据源这里就是Prometheus读取数据然后以精美的图表形式展示出来。你可以自由地拖拽组件定制属于自己的监控视图。它们如何协作简单来说Ollama服务从某个版本开始会暴露一个包含自身运行指标的HTTP端点比如http://localhost:11434/api/health或专门的/metrics端点。Prometheus定期去这个端点抓取数据并存起来。Grafana则连接到Prometheus将存储的数据画成我们看得懂的图表。接下来我们就开始一步步搭建这个系统。2. 环境准备与组件部署我们的操作将在同一个Linux服务器或虚拟机上进行。假设你已经按照常规方式安装并运行了Ollama并且通过它成功加载了internlm2:1.8b模型。2.1 确认Ollama指标端点首先我们需要确认你的Ollama版本是否支持暴露监控指标。较新版本的Ollama通常会提供健康检查或指标端点。打开终端使用curl命令测试一下# 测试Ollama服务是否健康常用端点 curl http://localhost:11434/api/health # 尝试访问可能的指标端点如果存在 curl http://localhost:11434/metrics如果/metrics端点返回一堆以# HELP和# TYPE开头后面跟着类似ollama_http_request_duration_seconds这样的数据那么恭喜你Ollama已经内置了指标暴露功能。如果返回404你可能需要查阅Ollama官方文档确认如何启用或寻找替代的监控方法例如通过cAdvisor监控容器资源。假设我们确认http://localhost:11434/metrics有数据输出记下这个地址后面Prometheus会用到。2.2 安装与配置Prometheus下载Prometheus 访问 Prometheus官网下载页选择适合你系统通常是Linux的版本。我们以使用wget下载最新稳定版为例。# 进入一个工作目录例如 /opt cd /opt # 下载Prometheus版本号请替换为最新 wget https://github.com/prometheus/prometheus/releases/download/v2.48.0/prometheus-2.48.0.linux-amd64.tar.gz # 解压 tar xvf prometheus-2.48.0.linux-amd64.tar.gz # 创建一个软链接或重命名方便使用 ln -s prometheus-2.48.0.linux-amd64 prometheus cd prometheus配置Prometheus Prometheus的主配置文件是prometheus.yml。我们需要修改它告诉它去抓取Ollama的指标。# 备份原始配置文件 cp prometheus.yml prometheus.yml.bak # 使用vim或nano编辑配置文件 vim prometheus.yml在scrape_configs:部分添加一个新的抓取任务job。找到类似下面的部分进行修改# 默认配置后添加你的ollama job scrape_configs: # 默认的抓取自身指标的job - job_name: prometheus static_configs: - targets: [localhost:9090] # 新增抓取Ollama指标的job - job_name: ollama static_configs: - targets: [localhost:11434] # Ollama服务的地址和端口 metrics_path: /metrics # 指标暴露的路径 scrape_interval: 15s # 每15秒抓取一次可根据需要调整保存并退出编辑器。启动Prometheus 我们可以以后台服务的方式启动这里先用简单的前台启动方式测试。# 在前台启动方便看日志 ./prometheus --config.fileprometheus.yml如果看到类似Server is ready to receive web requests.的日志说明启动成功。默认情况下Prometheus的Web界面运行在http://localhost:9090。你可以打开浏览器访问这个地址。验证Prometheus是否抓取到数据 在Prometheus的Web界面http://服务器IP:9090中点击顶部菜单栏的“Status” - “Targets”。 你应该能看到两个目标Targetsprometheus状态为UPollama状态也应为UP。如果ollama是DOWN请检查Ollama服务是否运行以及prometheus.yml中的targets地址是否正确。在“Graph”页面的查询框里输入up并执行应该能看到两条记录jobprometheus和jobollama的值都为1这表示抓取成功。2.3 安装与配置Grafana安装Grafana 根据你的Linux发行版安装方式不同。以Ubuntu/Debian为例可以使用官方仓库安装。# 安装依赖 sudo apt-get install -y software-properties-common wget # 添加Grafana仓库密钥 wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - # 添加稳定版仓库 echo deb https://packages.grafana.com/oss/deb stable main | sudo tee -a /etc/apt/sources.list.d/grafana.list # 更新并安装 sudo apt-get update sudo apt-get install -y grafana启动并设置开机自启# 启动Grafana服务 sudo systemctl start grafana-server # 设置开机自启 sudo systemctl enable grafana-server # 查看服务状态 sudo systemctl status grafana-server登录并添加数据源打开浏览器访问http://服务器IP:3000Grafana默认端口3000。首次登录默认用户名和密码都是admin。登录后会要求修改密码。进入主页后点击左侧导航栏的“Connections” - “Data sources”。点击“Add data source”选择“Prometheus”。在配置页面只需要填写一个关键项URL。设置为http://localhost:9090如果Grafana和Prometheus安装在同一台机器。其他设置可以保持默认。滚动到页面底部点击“Save test”。如果显示 “Data source is working”恭喜你数据源配置成功至此我们的监控基础设施就全部搭建完成了。Prometheus在默默地抓取Ollama的指标Grafana也准备好了展示这些数据。接下来就是最有趣的部分——创建炫酷的监控仪表盘。3. 创建Ollama模型监控仪表盘现在我们让Grafana把Prometheus里的数据变成直观的图表。3.1 导入现成的仪表盘模板推荐Grafana社区有大量用户贡献的仪表盘模板我们可以直接导入一个适用于通用HTTP服务或Go应用Ollama是Go写的的模板然后稍作修改。在Grafana首页点击左侧“Dashboards” - “New” - “Import”。在“Import via grafana.com”输入框中输入一个流行的通用模板ID例如11074这是一个基础的“Node Exporter Full”仪表盘但包含了很多系统指标我们可以借鉴其面板。或者你可以搜索“Ollama”看看是否有专属模板。这里我们以自定义创建为例因为更贴合需求。3.2 手动创建仪表盘更灵活我们来创建一个全新的仪表盘专注于Ollama和InternLM2模型的核心指标。新建仪表盘点击“Dashboards” - “New” - “New Dashboard”。添加第一个面板模型服务健康状态。点击“Add visualization”。数据源选择我们刚配置好的 “Prometheus”。在“Metrics browser”中输入up{jobollama}。这个查询会返回Ollama服务的状态1为健康0为异常。在右侧“Visualization”下拉菜单中选择“Stat”状态图。在“Standard options”里可以设置单位Unit为“none”并设置阈值Thresholds比如当值小于1时显示为红色警告。给面板起个名字比如“Ollama Service Status”。点击右上角“Apply”保存面板。添加第二个面板HTTP请求速率。在仪表盘页面点击右上角的“Add panel”图标一个带加号的图表然后选择“Add a new panel”。输入查询语句rate(ollama_http_request_duration_seconds_count[5m])。这会计算Ollama每秒处理的HTTP请求数量基于最近5分钟的数据。可视化类型选择“Time series”时间序列图。在右侧“Standard options” - “Legend”可以设置为{{method}}来按HTTP方法GET/POST等区分线条。标题设为“Request Rate (req/s)”。“Apply”保存。添加第三个面板请求延迟分布平均响应时间。新建面板。输入查询rate(ollama_http_request_duration_seconds_sum[5m]) / rate(ollama_http_request_duration_seconds_count[5m])。这个PromQL公式计算的是平均请求持续时间。可视化类型选择“Time series”。在“Standard options” - “Unit”中选择“seconds (s)”或“milliseconds (ms)”。可以添加多条查询用{methodPOST}等条件来区分不同接口的延迟。标题设为“Average Response Time”。“Apply”保存。添加第四个面板系统资源使用率CPU、内存。要监控服务器本身的资源你需要安装node_exporter这是另一个Prometheus的组件用于暴露主机指标。安装步骤类似下载解压后运行即可。这里假设你已经安装并配置Prometheus抓取了node_exporterjob_name: ‘node’。CPU使用率查询100 - (avg by (instance) (rate(node_cpu_seconds_total{modeidle}[5m])) * 100)。内存使用率查询(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100。可以将这两个查询放在同一个“Time series”面板中用不同颜色表示。标题设为“Host Resource Usage (%)”。调整布局与保存拖动每个面板的角落调整它们的大小和位置排列成一个整洁的仪表盘。最后点击仪表盘顶部的“Save dashboard”图标软盘形状给你的仪表盘起个名字比如“Ollama InternLM2-1.8B Monitoring”然后保存。现在你的专属模型监控仪表盘就创建好了你可以实时看到模型的请求压力、响应速度以及所在服务器的资源消耗情况。4. 设置告警规则监控的可视化是“眼睛”告警则是“闹钟”。我们不能一直盯着仪表盘需要让系统在异常时主动通知我们。告警可以在Prometheus或Grafana中设置。这里我们介绍在Grafana中设置相对直观。进入告警设置在Grafana中打开你刚创建的仪表盘。点击顶部导航栏的“Alerting”铃铛图标-“Alert rules”-“Create alert rule”。设置告警规则Rule name:Ollama Service DownData source: 选择你的Prometheus数据源。Query:A: 输入up{jobollama”}Reduce function: 选择Last取最新值。Conditions:WHENlast()OFAIS BELOW1这表示当up值低于1即服务异常时触发告警。Evaluation interval: 设置检查频率例如1m。配置告警通知渠道在触发告警前你需要先配置一个“Contact point”通知渠道。点击“Alerting” - “Contact points” - “Add contact point”。你可以选择多种方式如Email、DingTalk钉钉、Slack、Webhook等。根据提示填写相应的配置信息如邮箱地址、钉钉机器人Webhook地址等。保存联系点后回到告警规则编辑页面在“Notifications”部分选择你刚创建的联系点。保存告警规则填写完所有信息后点击“Save rule”。这样当你的Ollama服务停止或无法访问时Prometheus抓取失败up值会变为0随后就会触发你在Grafana中设置的告警并通过你配置的渠道发送通知。5. 总结通过以上步骤我们成功为Ollama部署的InternLM2-Chat-1.8B模型搭建了一套从数据采集、存储、可视化到告警的完整监控体系。让我们回顾一下关键收获监控价值我们明确了监控对于模型服务运维的重要性它不仅是“看板”更是问题排查、性能优化和保障稳定性的基石。技术栈落地我们实践了Prometheus和Grafana这两个核心工具的组合。Prometheus负责精准抓取和存储Ollama暴露的时序指标数据Grafana则将这些数据转化为直观、可定制的监控仪表盘。实战操作从环境检查、组件安装配置到仪表盘的创建与美化我们完成了一次完整的动手实践。你不仅学会了如何部署这些工具更掌握了如何利用PromQL查询语言去获取关心的指标如请求率、延迟、服务状态。主动运维通过设置告警规则我们将监控从被动查看升级为主动通知。一旦服务出现异常系统能第一时间通知负责人大大提升了运维响应速度。这套监控方案是通用的你可以轻松地将它复用到其他由Ollama管理的模型甚至是其他任何能暴露Prometheus格式指标的服务上。下一步你可以探索更深入的监控维度例如监控GPU使用情况如果服务器有GPU。分析不同模型如internlm2:1.8b与llama2:7b在相同请求下的资源消耗对比。设置更复杂的告警规则比如“5分钟内平均响应时间超过2秒”或“内存使用率持续超过80%”。希望这篇教程能帮助你更好地管理和洞察你的大模型服务让它运行得更加稳健、高效。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。