Milvus 监控与运维工具(Prometheus + Grafana)
**Prometheus + Grafana** 是业界主流的开源监控解决方案,可用于 **收集 Milvus 指标、分析查询性能、监控系统健康状态**,并通过 **可视化仪表盘** 提供实时告警和故障排查能力。本篇文章将介绍 **如何使用 Prometheus + Grafana 监控 Milvus 集群**,并提供完整的 **安装、配置、使用指南**,帮助开发者构建 **高效的 Milvus
1. 引言
Milvus 作为一款高性能的 开源向量数据库,被广泛应用于 AI 搜索、推荐系统、计算机视觉、自然语言处理(NLP) 等领域。为了确保 Milvus 在生产环境中的稳定运行,需要对其进行 实时监控与运维,防止 查询延迟、存储瓶颈、节点崩溃 等问题影响业务。
Prometheus + Grafana 是业界主流的开源监控解决方案,可用于 收集 Milvus 指标、分析查询性能、监控系统健康状态,并通过 可视化仪表盘 提供实时告警和故障排查能力。本篇文章将介绍 如何使用 Prometheus + Grafana 监控 Milvus 集群,并提供完整的 安装、配置、使用指南,帮助开发者构建 高效的 Milvus 监控体系。
2. 为什么需要 Milvus 监控?
在 生产环境 中,Milvus 需要处理 亿级向量数据 和 高并发查询,如果没有有效的监控手段,可能会面临以下问题:
2.1 关键监控指标
监控维度 | 关键指标 | 问题排查 |
---|---|---|
系统资源 | CPU、内存、磁盘、网络 | 监控资源占用,防止系统崩溃 |
查询性能 | QPS、查询延迟 | 识别慢查询,优化索引策略 |
数据存储 | 向量数量、存储大小 | 监测数据增长,优化存储方案 |
节点状态 | QueryNode、DataNode 负载 | 发现节点故障,进行自动恢复 |
日志分析 | WAL 日志、错误日志 | 识别异常行为,及时修复 |
通过 Prometheus + Grafana,可以 实时监测 Milvus 运行状态,并在发生异常时 触发告警,保障业务稳定运行。
3. Milvus 监控架构(Prometheus + Grafana)
3.1 监控架构概览
+-------------------------------------+
| 用户查询 (Query) |
+-------------------------------------+
|
+----------------------------+
| Milvus 集群 (Proxy / QueryNode / DataNode) |
+----------------------------+
|
+----------------------------+
| Milvus Exporter (提供监控数据) |
+----------------------------+
|
+----------------------------+
| Prometheus (存储指标数据) |
+----------------------------+
|
+----------------------------+
| Grafana (可视化仪表盘) |
+----------------------------+
- Milvus Exporter:提供 Milvus 内部状态的监控数据(HTTP API)。
- Prometheus:定期抓取 Milvus Exporter 提供的指标,存储到时间序列数据库。
- Grafana:基于 Prometheus 数据,提供 可视化监控面板,并设置告警规则。
4. 安装与配置 Prometheus + Grafana 监控 Milvus
4.1 安装 Milvus
如果还未安装 Milvus,可以使用 Docker 方式部署:
docker run -d --name milvus-standalone \
-p 19530:19530 \
milvusdb/milvus:latest
4.2 安装 Prometheus
Prometheus 负责 收集和存储 Milvus 监控指标。
(1)下载 Prometheus 并解压
wget https://github.com/prometheus/prometheus/releases/download/v2.41.0/prometheus-2.41.0.linux-amd64.tar.gz
tar -xvzf prometheus-2.41.0.linux-amd64.tar.gz
cd prometheus-2.41.0.linux-amd64
(2)配置 Prometheus 抓取 Milvus 监控数据
编辑 prometheus.yml:
global:
scrape_interval: 15s # 每 15 秒抓取一次数据
scrape_configs:
- job_name: "milvus"
static_configs:
- targets: ["localhost:9091"] # Milvus Exporter 地址
(3)启动 Prometheus
./prometheus --config.file=prometheus.yml
验证 Prometheus 是否运行:
http://localhost:9090
4.3 安装 Milvus Exporter
Milvus 提供 Exporter 用于向 Prometheus 暴露监控数据。
(1)下载 Milvus Exporter
git clone https://github.com/milvus-io/milvus-exporter.git
cd milvus-exporter
(2)配置 Milvus Exporter
修改 config.yaml:
milvus_addr: "localhost:19530"
listen_port: 9091 # 监控数据端口
(3)运行 Milvus Exporter
python3 main.py
检查 Exporter 是否运行:
curl http://localhost:9091/metrics
4.4 安装 Grafana
Grafana 负责 可视化 Prometheus 数据。
(1)安装 Grafana
docker run -d --name=grafana -p 3000:3000 grafana/grafana
访问 **http://localhost:3000**,默认账号密码:
Username: admin
Password: admin
(2)配置数据源
-
进入 Grafana 管理界面,点击 Configuration > Data Sources。
-
添加数据源,选择 Prometheus,并填入:
URL: http://localhost:9090
4.5 创建 Milvus 监控仪表盘
在 Grafana 中导入 Milvus 监控面板(Dashboard),可以使用官方 Dashboard ID 15109:
https://grafana.com/grafana/dashboards/15109
关键监控项:
- 查询性能:QPS(Queries Per Second)、查询延迟(Latency)。
- 存储情况:向量数据大小、索引占用情况。
- 系统资源:CPU / 内存 / 磁盘使用率。
- 集群状态:Proxy、QueryNode、DataNode 负载情况。
5. 设置告警(Alert)
在 Grafana > Alerting > Create Alert Rule 中,设置 告警规则,例如:
示例 1:查询延迟过高
Metric: milvus_query_latency_seconds
Condition: 当查询延迟 > 500ms 持续 1 分钟
Action: 发送 Email / Slack / PagerDuty 告警
示例 2:存储容量不足
Metric: milvus_storage_used_bytes
Condition: 当存储空间使用超过 80% 持续 5 分钟
Action: 发送告警通知
6. 总结
监控内容 | Prometheus + Grafana 提供的功能 |
---|---|
查询性能 | 实时监控 QPS、查询延迟 |
存储管理 | 监测数据量、索引存储占用 |
系统健康状态 | 监控 CPU、内存、磁盘占用 |
节点负载均衡 | 观察 QueryNode / DataNode 负载 |
故障告警 | 发生异常时触发 Email/Slack/PagerDuty 告警 |
✅ 生产环境推荐方案:
- Prometheus 采集 Milvus 指标,存储时间序列数据。
- Grafana 可视化 Milvus 查询性能、存储、节点状态。
- 设置告警规则,自动发现异常并通知运维团队。
🚀 **通过 Prometheus + Grafana 监控 Milvus,可以确保 AI 搜索系统高效、稳定运行!**🚀
📌 有什么问题和经验想分享?欢迎在评论区交流、点赞、收藏、关注! 🎯
更多推荐
所有评论(0)