victoriametrics集群由vminsert、vmselect、vmstorage三个组件构成分布式架构,支持高吞吐写入、横向扩展查询与持久化存储;各组件职责明确,需按负载规划部署,推荐ssd多盘配置、专用用户运行及核心连通性验证。

VictoriaMetrics 集群不是单个进程,而是由 vminsert、vmselect 和 vmstorage 三个独立组件协同工作的分布式架构。部署目标是实现高吞吐写入、横向可扩展查询和持久化存储,适用于日均千万级指标写入的生产环境。
集群角色与部署规划
每个组件职责明确,部署数量需按实际负载分配:
-
vmstorage:唯一有状态节点,负责数据落盘;建议用 SSD,每节点挂载多块磁盘(如
/data/disk1、/data/disk2),通过逗号分隔路径启用多盘并行 I/O - vminsert:无状态写入代理,接收远程写入请求并做一致性哈希分片;写入压力大时可水平扩容多个实例,全部指向同一组 vmstorage 地址
- vmselect:无状态查询网关,聚合多个 vmstorage 的响应;查询并发高时增加副本即可,不需共享状态
典型三节点最小集群示例(IP 可复用,但生产建议物理/网络隔离):
| IP | 部署组件 | 关键参数示意 |
|---|---|---|
| 192.168.10.10 | vminsert | -insert.maxQueueDuration=30s -remoteStorage.url=http://192.168.10.11:8400,http://192.168.10.12:8400 |
| 192.168.10.11 | vmstorage | -storageDataPath=/data/vmstorage/disk1,/data/vmstorage/disk2 -retentionPeriod=30d -vminsertAddr=:8400 -vmselectAddr=:8401 |
| 192.168.10.12 | vmstorage | 同上,-httpListenAddr=:8482 避免端口冲突 |
| 192.168.10.13 | vmselect | -storageNode=192.168.10.11:8401 -storageNode=192.168.10.12:8401 -httpListenAddr=:8481 |
二进制安装与服务配置
跳过 Docker 和源码编译,直接使用官方 cluster.tar.gz 包(如 victoria-metrics-linux-amd64-v1.125.1-cluster.tar.gz),解压后仅保留 vminsert-prod、vmselect-prod、vmstorage-prod 三个文件。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 统一创建专用用户:
useradd -r -s /bin/false victoriametrics - 数据目录属主设为该用户:
chown -R victoriametrics:victoriametrics /data/vmstorage - systemd 服务中必须显式设置:
User=victoriametrics、Group=victoriametrics、LimitNOFILE=65536 - vmstorage 启动时加
-storage.minFreeDiskSpaceBytes=50GB防磁盘写满触发只读保护
数据写入与采集对接
VictoriaMetrics 单机版不拉取指标,集群更不支持直接加载 Prometheus 配置。必须部署 vmagent 或使用 vminsert 接收 remote_write:
- Prometheus 侧配置
remote_write指向 vminsert 地址(如http://192.168.10.10:8480/api/v1/write) - 若需重采 Prometheus 目标,单独起 vmagent 实例,用
-promscrape.config加载原prometheus.yml,再通过-remoteWrite.url推给 vminsert - 所有写入路径最终都经 vminsert 分发到 vmstorage,不直连存储节点
验证与基础调优
启动后检查三项核心连通性:
- 访问
http://vmselect-ip:8481/targets查看是否识别到所有 vmstorage 节点 - 调用
curl 'http://vminsert-ip:8480/metrics' | grep vminsert_metrics_read_total确认写入计数增长 - 执行简单 PromQL 查询:
curl 'http://vmselect-ip:8481/api/v1/query?query=count(up)'返回非空结果
关键调优项:
- vmstorage 加
-memory.allowedPercent=75防止 OOM,避免设过高导致系统内存不足 - 所有组件加
-loggerTimezone=Asia/Shanghai统一日志时间 - vmstorage 多盘路径间用英文逗号分隔,不要空格或换行










