VictoriaMetrics 中文教程(10)集群版介绍

VictoriaMetrics

VictoriaMetrics 中文教程系列文章:

  • VictoriaMetrics 中文教程(01)简介
  • VictoriaMetrics 中文教程(02)安装
  • VictoriaMetrics 中文教程(03)如何配置 Prometheus 使其把数据远程写入 VictoriaMetrics
  • VictoriaMetrics 中文教程(04)对接 Grafana 同时介绍 vmui
  • VictoriaMetrics 中文教程(05)对接各类监控数据采集器
  • VictoriaMetrics 中文教程(06)容量规划
  • VictoriaMetrics 中文教程(07)高可用(High availability)方案
  • VictoriaMetrics 中文教程(08)VictoriaMetrics 的存储
  • VictoriaMetrics 中文教程(09)VictoriaMetrics 18 条 Troubleshooting 建议和提示

集群版简介

VictoriaMetrics 集群版也是开源的,但是维护更复杂,毕竟组件更多。如果数据量低于每秒​​一百万个数据点,建议使用单节点版本,而不是集群版本。单节点版本可以完美地适应 CPU 核心数、RAM 和可用存储空间。与集群版本相比,单节点版本更易于配置和操作,因此在选择集群版本之前请三思。

突出的功能

  • 支持单节点版本的所有功能。
  • 性能和容量水平扩展。
  • 支持时间序列数据的多个独立命名空间(又称多租户)。
  • 支持复制 replication。

VictoriaMetrics 架构概览

VictoriaMetrics 集群由以下服务组成:

  • vmstorage - 存储原始数据并返回给定标签过滤器在给定时间范围内的查询数据
  • vminsert - 接受提取的数据并根据指标名称及其所有标签的一致性哈希将其分布在 vmstorage 节点之间
  • vmselect - 通过从所有配置的 vmstorage 节点获取所需数据来执行查询

每个服务都可以独立扩展,并且可以在最合适的硬件上运行。vmstorage 节点彼此不了解,彼此不通信,也不共享任何数据。这是一个无共享架构。它提高了集群可用性,并简化了集群维护以及集群扩展。

VictoriaMetrics-集群架构

请注意,尽管 vmselect 是无状态的,但仍需要一些磁盘空间(几 GB)用于临时缓存。有关更多详细信息,请参阅 -cacheDataPath 命令行标志。

多租户

VictoriaMetrics 集群支持多个相互隔离的租户(又称命名空间)。租户通过 accountID 或 accountID:projectID 进行标识,这些标识放在写入和读取的请求 URL 中。有关 VictoriaMetrics 租户的一些事实:

  • 每个 accountID 和 projectID 都由 [0 .. 2^32) 范围内的任意 32 位整数标识。如果缺少 projectID,则自动将其分配为 0。预计有关租户的其他信息(例如身份验证令牌、租户名称、限制、会计等)将存储在单独的关系数据库中。此数据库必须由位于 VictoriaMetrics 集群前面的单独服务(例如 vmauth 或 vmgateway)管理。
  • 当第一个数据点写入给定租户时,会自动创建租户。
  • 所有租户的数据均匀分布在可用的 vmstorage 节点上。当不同租户的数据量和查询负载不同时,这可保证 vmstorage 节点之间的负载均匀。
  • 数据库性能和资源使用情况与租户数量无关。它主要取决于所有租户中活跃时间序列的总数。如果某个时间序列在过去一小时内至少收到一个样本,或者在过去一小时内受到查询的影响,则该时间序列被视为活跃时间序列。
  • 可以通过 http://<vmselect>:8481/admin/tenants url获取已注册租户列表。
  • VictoriaMetrics 通过指标公开各个租户统计数据。

很多人知道,集群版本的读写地址是:

  • 读:http://{vmselect}:8481/select/0/<suffix>,比如 http://{vmselect}:8481/select/0/prometheus/api/v1/query
  • 写:http://{vminsert}:8480/insert/0/<suffix>,比如 http://{vminsert}:8480/insert/0/prometheus/api/v1/write

这里的 0 是 accountID,<suffix> 是具体的路径。0 表示 accountID 为 0,projectID 也为 0,即默认租户。

集群版启动

最小集群必须包含以下节点:

  • 具有 -retentionPeriod-storageDataPath 命令行参数的单个 vmstorage 节点
  • 带有 -storageNode=<vmstorage_host> 的单个 vminsert 节点
  • 带有 -storageNode=<vmstorage_host> 的单个 vmselect 节点

为了实现高可用性,建议为每个服务运行至少两个节点。在这种情况下,当单个节点暂时不可用时,集群将继续工作,其余节点可以处理增加的工作负载。当底层硬件发生故障、软件升级、迁移或其他维护任务期间,该节点可能会暂时不可用。

最好运行许多小型 vmstorage 节点而不是少数大型 vmstorage 节点,因为当某些 vmstorage 节点暂时不可用时,这可以减少剩余 vmstorage 节点上的工作负载增加。

必须在 vminsert 和 vmselect 节点前放置一个 http 负载均衡器,例如 vmauth 或 nginx。它必须根据 url 格式包含以下路由配置:

  • /insert 开头的请求必须路由到 vminsert 节点上的端口 8480。
  • /select 开头的请求必须路由到 vmselect 节点上的端口 8481。

可以通过在相应节点上设置 -httpListenAddr 来改变端口。

只读模式

-storageDataPath 指向的目录包含的可用空间少于 -storage.minFreeDiskSpaceBytes 时,vmstorage 节点会自动切换到只读模式。vminsert 节点停止向此类节点发送数据,并开始将数据重新路由到剩余的 vmstorage 节点。

当 vmstorage 进入只读模式时,它会将 http://vmstorage:8482/metrics 上的 vm_storage_is_read_only 指标设置为 1。当 vmstorage 未处于只读模式时,该指标设置为 0。

Replication 和数据安全

默认情况下,VictoriaMetrics 建议用户把 -storageDataPath 指向的高可用的底层存储(例如 Google 计算持久磁盘),从而保证数据的持久性。如果由于某种原因无法使用复制的持久持久磁盘,VictoriaMetrics 支持应用程序级复制。

可以通过将 -replicationFactor=N 命令行标志传递给 vminsert 来启用复制。这将指示 vminsert 在 N 个不同的 vmstorage 节点上存储每个摄取样本的 N 个副本。这保证了如果最多 N-1 个 vmstorage 节点不可用,所有存储的数据仍然可供查询。

-replicationFactor=N 命令行标志传递给 vmselect,指示它如果在查询期间少于 -replicationFactor 的 vmstorage 节点不可用,则不要将响应标记为部分。

集群必须包含至少 2*N-1 个 vmstorage 节点,其中 N 是复制因子,以便在 N-1 个存储节点不可用时维持新提取数据的给定复制因子。

VictoriaMetrics 以毫秒精度存储时间戳,因此在启用复制时必须将 -dedup.minScrapeInterval=1ms 命令行标志传递给 vmselect 节点,以便它们可以在查询期间对从不同 vmstorage 节点获得的重复样本进行去重。如果从配置相同的 vmagent 实例或 Prometheus 实例将重复数据推送到 VictoriaMetrics,则必须根据去重文档将 -dedup.minScrapeInterval 设置为 scrape 配置中的 scrape_interval

请注意,复制无法避免灾难,因此建议定期进行备份。

请注意,复制会增加资源使用率(CPU、RAM、磁盘空间、网络带宽),最多可增加 -replicationFactor=N 倍,因为 vminsert 将传入数据的 N 份副本存储到不同的 vmstorage 节点,而 vmselect 需要在查询期间对从 vmstorage 节点获得的复制数据进行重复数据删除。因此,把复制交由 -storageDataPath 指向的底层复制持久存储(如 Google Compute Engine 持久磁盘)更具成本效益,这样可以防止数据丢失和数据损坏。它还提供一致的高性能,并且可以在不停机的情况下调整大小。基于 HDD 的持久磁盘应该足以满足大多数用例。建议在 Kubernetes 中使用持久的复制持久卷。

Deduplication

VictoriaMetrics 的集群版本以与单节点版本相同的方式支持数据重复数据删除。唯一的区别是,当同一时间序列的样本和样本重复最终位于不同的 vmstorage 节点上时,无法保证重复数据删除。这可能发生在以下情况下:

  • 当添加/删除 vmstorage 节点时,时间序列的新样本将被重新路由到另一个 vmstorage 节点;
  • 当 vmstorage 节点暂时不可用时(例如,在重新启动期间)。然后新的样本被重新路由到剩余的可用 vmstorage 节点;
  • 当 vmstorage 节点没有足够的容量来处理传入的数据流时,vminsert 会将新样本重新路由到其他 vmstorage 节点。

建议为 vmselect 和 vmstorage 节点设置相同的 -dedup.minScrapeInterval 命令行标志值,以确保查询结果的一致性,即使存储层尚未完成重复数据删除。

总结

VictoriaMetrics 集群版相比单机版,更适合大规模的监控数据存储和查询。但是,集群版的维护和运维成本更高,需要更多的硬件资源。在选择集群版之前,请三思。VictoriaMetrics 支持 replication,挂掉部分节点不影响数据安全,不过,建议不要开启,而是交由云盘等底层存储来保证数据的持久性。如果没有条件使用云存储,再考虑开启 replication。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/58234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习(五):语音处理领域的创新引擎(5/10)

一、深度学习在语音处理中的崛起 在语音处理领域&#xff0c;传统方法如谱减法、维纳滤波等在处理复杂语音信号时存在诸多局限性。这些方法通常假设噪声是平稳的&#xff0c;但实际噪声往往是非平稳的&#xff0c;导致噪声估计不准确。同时&#xff0c;为了去除噪声&#xff0…

https和http的区别,及HTTPS的工作流程

HTTP&#xff08;HyperText Transfer Protocol&#xff09;和HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;都是超文本传输协议&#xff0c;但它们之间的关键区别在于安全性。 安全性&#xff1a; HTTP&#xff1a;数据以明文传输&#xff0c;没有加密&…

阿里云 SAE 应用引擎可观测性最佳实践

SAE 简介 Serverless 应用引擎 SAE&#xff08;Serverless App Engine&#xff09;是一款零代码改造、极简易用、自适应弹性的应用全托管平台。SAE 能够让用户免运维 IaaS 和 Kubernetes&#xff0c;秒级完成从源代码、代码包、Docker 镜像部署任意语言的在线应用&#xff08;…

Windows环境 ffmpeg 命令使用介绍

记录一下纯命令操作ffmpeg的用法&#xff01; 目录 一、FFmpeg查询命令帮助文档 1.ffmpeg、ffplay、ffprobe的区别 2.ffmpeg命令查看帮助文档 3.ffplay命令查看帮助文档 4.ffprobe命令查看帮助文档 二、FFmpeg音视频处理流程 三、FFmpeg命令分类查询 1.命令参数 2.查看…

深入理解Java虚拟机(五)

介绍垃圾收集器的算法及引用详解 1、引用计数器 引用计数器在对象中添加一个引用计数器&#xff0c;当一个地方引用的时候&#xff0c;计数器1&#xff0c;当引用失效时&#xff0c;计数器值就-1。 但是在Java里面存在对象循环引用&#xff1a;objA 和 objB都有字段instance…

Linux系统操作篇 one -文件指令及文件知识铺垫

Linux操作系统入门-系统篇 前言 Linux操作系统与Windows和MacOS这些系统不同&#xff0c;Linux是黑屏的操作系统&#xff0c;操作方式使用的是指令和代码行来进行&#xff0c;因此相对于Windows和MacOS这些带有图形化界面的系统&#xff0c;Linux的入门门槛和上手程度要更高&…

PostgreSQL的奥秘:表结构、TOAST与大对象

PostgreSQL&#xff08;以下简称PSQL&#xff09;因其灵活性和强大的功能深受欢迎。本文将详细介绍PSQL的内部结构&#xff0c;特别是页面缓冲机制&#xff0c;包括表结构、TOAST技术、大对象&#xff08;BLOB/CLOB&#xff09;&#xff0c;以及页面缓冲表的工作原理。同时&…

SQL Server 可观测最佳实践

SQL Server 简介 SQL Server 是微软公司开发的一款关系数据库管理系统&#xff0c;支持企业 IT 环境中的各种事务处理、商业智能和分析应用程序。它支持多种操作系统平台&#xff0c;而无论是物理还是虚拟形式&#xff0c;自建部署环境还是在云环境中&#xff0c;运行的操作系…

MySQL8 安装配置及卸载教程

MySQL8 安装配置及卸载教程 0 卸载 MySQL 如果之前没安过 MySQL &#xff0c;或者卸载干净了不用看这个。 如果安装中出现以下问题&#xff0c;有可能是为之前安装 MySQL 不成功&#xff0c;有残留的安装程序等文件程序或者是卸载 MySQL 不成功。 0.1 停止服务 首先进入服务…

大数据-194 数据挖掘 机器学习理论 有监督、无监督、半监督、强化学习

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

Java最全面试题->数据库/中间件->KafKa面试题

文章目录 KafKaKafka中的ISR、AR代表什么?ISR的伸缩指什么?kafka中的broker 是干什么的?kafka中的 zookeeper 起到什么作用?kafka follower如何与leader同步数据?kafka 为什么那么快?kafka producer如何优化打入速度?kafka producer发送数据,ack为0,1,-1分别是什么意…

兼容Lodash的真正替代者

大家好&#xff0c;我是农村程序员&#xff0c;独立开发者&#xff0c;前端之虎陈随易。 这是我的个人网站&#xff1a;https://chensuiyi.me&#xff0c;欢迎一起交朋友~ 今天给大家分享一个前端工具库 Lodash 的替代品 es-toolkit。 仓库地址&#xff1a;https://github.com…

鼠标增强工具 MousePlus v5.3.9.0 中文绿色版

MousePlus 是一款功能强大的鼠标增强工具&#xff0c;它可以帮助用户提高鼠标操作效率和精准度。该软件可以自定义鼠标的各种功能和行为&#xff0c;让用户根据自己的习惯和需求来调整鼠标的表现。 详细功能 自定义鼠标按钮功能&#xff1a;可以为鼠标的各个按钮设置不同的功能…

基于SpringBoot+Vue+MySQL的中药材进存销管理系统

系统展示 系统背景 中药材在医疗保健领域具有重要地位&#xff0c;随着中药材市场的不断发展&#xff0c;对中药材的进存销管理提出了更高的要求。传统的管理方式效率低下&#xff0c;容易出现错误和漏洞&#xff0c;无法满足快速发展的市场需求。因此&#xff0c;开发一套集成…

Nginx+Tomcat 动静分离

1. NginxTomcat 环境 Nginx 处理静态资源的优势同样可以应用在 Tomcat 环境中 。从实现方法上来说&#xff0c;NginxTomcat 环境的搭建思路与前面完成的 NginxApache 环境是完全相同的&#xff0c;只需要将 Nginx 与 Tomcat 的站点文档目录配置到同一目录下&#xff0c;利用 N…

npm安装过程的问题

报错信息C:\Users\lyyds>npm list -global npm error code ENOENT npm error syscall lstat npm error path D:\nodejs\node_global npm error errno -4058 npm error enoent ENOENT: no such file or directory, lstat D:\nodejs\node_global npm error enoent This is rel…

数通自学——VLAN虚拟局域网,eNSP实验讲解

VLAN虚拟局域网&#xff0c;eNSP实验讲解 一、概念二、eNSP仿真实验1、实验一&#xff1a;vlan演示&#xff08;交换机端口access模式&#xff09;2、实验二&#xff1a;vlan演示&#xff08;交换机端口trunk模式&#xff09; 一、概念 VLAN&#xff08;Virtual Local Area Ne…

SQL-lab靶场less1-4

说明&#xff1a;部分内容来源于网络&#xff0c;如有侵权联系删除 前情提要&#xff1a;搭建sql-lab本地靶场的时候发现一些致命的报错&#xff1a; 这个程序只能在php 5.x上运行&#xff0c;在php 7及更高版本上&#xff0c;函数“mysql_query”和一些相关函数被删除&#xf…

java中的二叉树

二叉树 树型结构概念相关概念树的表示形式树的应用 二叉树概念两种特殊的二叉树二叉树的性质二叉树的存储二叉树的基本操作前置说明二叉树的遍历二叉树的基本操作 二叉树相关OJ题 树型结构 概念 树是一种非线性的的数据结构&#xff0c;它是由n(n>0)个有限结点组成一个具有…

贵州鑫宏远农业-始终致力于推动现代农业的科技创新与发展

贵州鑫宏远农业科技有限公司&#xff0c;是一家在高科技农业领域深耕细作、锐意进取的企业。自成立以来&#xff0c;我们始终致力于推动现代农业的科技创新与发展&#xff0c;业务全面覆盖农业科学研发、组织培养生产、专业育苗培植、半成品及成品精细化养护、市场销售以及全方…