01
简介
VictoriaMetrics集群方案,除了有单节点方案的优点以外,还可以做到水平扩容,当有大量数据存储时,VictoriaMetrics集群方案是个不错的选择。
官方建议是100w/s以下的数据点抓取,使用单节点版,单节点版可以省更多的CPU、内存、磁盘资源。
但是,当遇到如下问题可以考虑集群方案:
抓取数据点过高:大于100w/s数据点抓取(如果lable内容过多,会低于这个值)
海量数据存储:单机磁盘容量已经满足不了,更长时间的存储、海量数据存储需求
要更高性能:要求更高的写入和查询性能
原生高可用:VictoriaMetrics集群方案,原生支持高可用
多租户:想要数据多租户管理
注意:下面无特殊声明统一把VictoriaMetrics简写成VM。
相对于Thanos,VictoriaMetrics主要是一个可水平扩容的本地全量持久化存储方案。
下面简单介绍一下VM集群版各个组件功能,通过这些组件才可以完成VM集群方案。
VM集群版官方架构图:
组件服务和作用:
组件服务 | 作用 | 默认端口 | 其它说明 |
vmstorage | 数据存储,以及查询结果返回 | 8482 | |
vminsert | 数据录入,可实现类似分片、副本功能 | 8480 | |
vmselect | 数据查询,汇总和排重数据 | 8481 | |
vmagent | 数据指标抓取,并支持多种后端存储 | 8429 | 会占用本地磁盘缓存 |
vmalert | 告警规则相关 | 8880 | 如不需要告警功能可不使用此组件服务 |
vmauth | 账号认证相关 | 8427 | 不建议用,而且用户名是路由 |
关于启动参数:
vmstorage、vminsert、vmselect这三个组件关键启动参数要关注的不多,之后内容会对关键参数进行说明。
02
多租户
VM集群版支持多租户概念,可以把不类型的数据,分别放到不同的租户(命名空间)里,每个租户通过 accountID 或 accountID:projectID,在请求的url里做区分。其中:
accountID和projectID:是[0 .. 2^32)的任意整数,projectID可不写,默认0
创建时间:在首次对某个租户录入数据时,自动创建
性能:租户的数量不影响性能,主要取决于所有租户的活跃总时间序列,