搬瓦工部署 Grafana Mimir 指标存储平台教程
Grafana Mimir 是 Grafana Labs 开发的高性能、高可用的 Prometheus 长期存储解决方案。它解决了 Prometheus 在大规模和长期存储场景下的瓶颈问题,支持多租户、全局视图查询和无限制的指标保留时间。Mimir 兼容 Prometheus 的远程写入协议和 PromQL 查询语言,可以无缝集成到现有的 Prometheus + Grafana 监控体系中。本文将介绍如何在搬瓦工 VPS 上部署 Grafana Mimir。部署前请确保已安装 Docker 和 Docker Compose。
一、为什么需要 Mimir
- 长期存储:Prometheus 本地存储通常只保留 15-30 天数据,Mimir 可保留数年。
- 全局查询:聚合多个 Prometheus 实例的指标数据,提供统一视图。
- 多租户:支持多个团队或项目共享同一个 Mimir 集群。
- 水平扩展:各组件可独立扩展,应对不断增长的指标量。
- 高可用:数据自动复制,单节点故障不影响服务。
二、系统要求
- 操作系统:Ubuntu 20.04+ 或 Debian 11+。
- 内存:至少 2GB,推荐 4GB。
- 磁盘:至少 20GB 可用空间(取决于指标数据量)。
- Docker:已安装 Docker 和 Docker Compose。
选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买入口:bwh81.net。
三、创建项目目录
mkdir -p /opt/mimir/{config,data} && cd /opt/mimir
四、编写 Mimir 配置文件
使用单体模式(monolithic mode),适合中小规模场景:
cat > /opt/mimir/config/mimir.yaml <<'EOF'
target: all
multitenancy_enabled: false
server:
http_listen_port: 9009
grpc_listen_port: 9095
ingester:
ring:
replication_factor: 1
instance_addr: 127.0.0.1
kvstore:
store: memberlist
blocks_storage:
backend: filesystem
filesystem:
dir: /data/mimir/blocks
tsdb:
dir: /data/mimir/tsdb
bucket_store:
sync_dir: /data/mimir/bucket-sync
compactor:
data_dir: /data/mimir/compactor
sharding_ring:
kvstore:
store: memberlist
store_gateway:
sharding_ring:
replication_factor: 1
kvstore:
store: memberlist
ruler_storage:
backend: filesystem
filesystem:
dir: /data/mimir/rules
limits:
max_global_series_per_user: 1500000
ingestion_rate: 50000
ingestion_burst_size: 100000
EOF
五、编写 Docker Compose 配置
cat > /opt/mimir/docker-compose.yml <<'EOF'
version: '3.8'
services:
mimir:
image: grafana/mimir:latest
restart: always
command: ["-config.file=/etc/mimir/mimir.yaml"]
ports:
- "9009:9009"
volumes:
- ./config/mimir.yaml:/etc/mimir/mimir.yaml:ro
- mimir_data:/data/mimir
volumes:
mimir_data:
EOF
六、启动服务
cd /opt/mimir
docker compose up -d
验证服务状态:
curl http://localhost:9009/ready
七、配置 Prometheus 远程写入
在 Prometheus 的配置文件中添加远程写入目标:
# prometheus.yml
remote_write:
- url: http://mimir-host:9009/api/v1/push
headers:
X-Scope-OrgID: anonymous
重新加载 Prometheus 配置后,指标数据将同时写入 Mimir。
八、在 Grafana 中使用 Mimir
在 Grafana 中添加 Prometheus 类型的数据源,URL 填写 Mimir 的地址:
URL: http://mimir-host:9009/prometheus
HTTP Headers:
X-Scope-OrgID: anonymous
之后可以使用标准 PromQL 查询 Mimir 中存储的指标数据,在 Grafana 仪表板中展示长期趋势。
九、数据保留策略
通过 Compactor 配置数据保留时间:
compactor:
data_dir: /data/mimir/compactor
sharding_ring:
kvstore:
store: memberlist
limits:
compactor_blocks_retention_period: 365d
十、常见问题
写入被限流
调整 limits 配置中的 ingestion_rate 和 ingestion_burst_size 参数。
磁盘空间增长过快
检查数据保留策略,确保 Compactor 正常运行以合并和清理旧数据块。
总结
Grafana Mimir 是 Prometheus 生态中最佳的长期存储方案,适合需要保留数月或数年指标数据的场景。配合 Grafana 仪表板,你可以轻松查看历史趋势和长期性能数据。如需分布式追踪能力,可参考 Grafana Tempo。选购搬瓦工 VPS 使用优惠码 NODESEEK2026 可享 6.77% 折扣。