VictoriaMetrics:长期指标存储¶
如果需要先理解为什么把指标和日志后端统一到 Victoria 生态,请先阅读 我为什么选择 Victoria 体系。
VictoriaMetrics 是时序数据存储与查询系统,可接收 Prometheus Remote Write,也可配合 vmagent 负责抓取和转发。它解决多集群汇聚、较长保留和更大指标规模问题,但不会自动替你治理高基数、告警质量和容量规划。
组件关系¶
Exporter / Kubernetes
→ vmagent:发现、抓取、Relabel、缓冲、Remote Write
→ VictoriaMetrics:存储与查询
→ vmalert:执行告警/记录规则
→ Alertmanager
→ Grafana / VMUI
Prometheus 也可以保留本地数据并 Remote Write 到 VictoriaMetrics,既作为现场故障时的本地查询入口,又提供集中长期存储。
单机版与集群版¶
| 模式 | 适合 | 特点 |
|---|---|---|
| Single-node | 单集群、中小规模、简单运维 | 一个进程,备份和纵向扩容简单 |
| Cluster | 数据量/租户/写入查询需要横向扩展 | vminsert、vmstorage、vmselect 分工,组件和网络更复杂 |
不要因为“生产”两个字就直接使用集群版。先根据活跃时序、样本写入率、保留时间、查询并发、故障域和运维能力评估。单机版配合可靠磁盘、备份和恢复演练,可能比维护不当的集群更可靠。
Prometheus Remote Write¶
remote_write:
- url: http://victoriametrics:8428/api/v1/write
queue_config:
capacity: 10000
max_shards: 20
Remote Write 需要监控待发送样本、失败、重试、队列长度和最老未发送时间。网络或后端长时间不可用时,本地 WAL/磁盘可能增长;恢复后补发也会形成写入洪峰。
vmagent¶
vmagent 可以使用 Prometheus 风格抓取配置,执行服务发现和 Relabel,并向一个或多个 Remote Write 目标发送数据。边缘站点或多 Kubernetes 集群可本地部署 vmagent,中央部署存储。
关键检查:
查询与 MetricsQL¶
VictoriaMetrics 支持 PromQL 兼容查询并提供 MetricsQL 扩展。迁移时仍要用真实 Dashboard/Rule 验证函数、时间窗口和结果,不要只以语法能执行为标准。
VMUI 适合检查标签、原始序列和查询结果;Grafana 通过 Prometheus 数据源接口连接。慢查询要检查时间范围、正则、聚合前序列数和高基数标签。
保留、容量与备份¶
容量规划至少收集:
- 活跃时序数和每日新增/消失时序。
- 每秒写入样本与峰值。
- 压缩后每日磁盘增长。
- 保留期、复制因子和安全余量。
- 查询并发、最大时间范围及缓存效果。
保留期变长会增加磁盘,但高基数还会增加索引、内存和查询压力。备份需要明确组件/目录、对象存储、保留、加密和恢复步骤,并实际恢复到隔离环境验证。
集群版故障定位¶
写入失败 → vminsert → vmstorage 可达性/容量/只读状态
查询失败 → vmselect → vmstorage → 查询规模与超时
部分数据缺失 → 租户、路由、复制、节点时间和采集端
规则异常 → vmalert 数据源、评估耗时、Remote Write/Alertmanager
扩缩 vmstorage、迁移磁盘和修改复制策略前,必须依据所用版本的官方步骤验证,避免把副本数当成备份。