VictoriaMetrics如何运用?

本文介绍了VictoriaMetrics作为时序数据库和监控解决方案的特点与应用场景。探讨了其与Prometheus的不同之处,并详细解析了VictoriaMetrics的组件及其集群架构。此外,还提供了安装过程中的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上次说到我们不用docker,而是使用containerd作为CRI了。没想到,连监控告警这一块也换了。以前我们使用的prometheus进行监控数据的采集、存储和提供查询,alertmanager进行告警推送,同时使用了grafana做数据展示。那么现在呢,我们选择使用OpenTelemetry和VictoriaMetrics。那么这两者究竟是何方神圣呢?请允许我慢慢道来。考虑到我也是刚接触,所以今天先给大家介绍一下VictoriaMetrics。OpenTelemetry后续再做介绍。

上次说到我们不用docker,而是使用containerd作为CRI了。没想到,连监控告警这一块也换了。以前我们使用的prometheus进行监控数据的采集、存储和提供查询,alertmanager进行告警推送,同时使用了grafana做数据展示。那么现在呢,我们选择使用OpenTelemetry和VictoriaMetrics。那么这两者究竟是何方神圣呢?请允许我慢慢道来。考虑到我也是刚接触,所以今天先给大家介绍一下VictoriaMetrics。OpenTelemetry后续再做介绍。

注:后续VictoriaMetrics简称为vm

什么是VM

这里我们看官网的描述。如下:

  1. VictoriaMetrics is a fast, cost-effective and scalable monitoring solution
  2. and time series database

翻译过来就是说,vm是一个快速、实用和可扩展的监控方案和时序数据库。思考一下:prometheus也是时序数据库,两者会不会有什么不一样呢?

VM特性

要说vm的特性,可太多了。举几个例子:

  1. 可以作为prometheus长期存储的一个方案。我们知道prometheus默认只会保留最近15天的数据,如果要保留更长时间的数据,需要把数据写到远端存储中去
  2. 当使用grafana时,可以把其数据源prometheus可以被替换为vm,因为vm也支持prometheus查询APi
  3. 它实现了基于PromQL的查询语言,即MetricsQL,并且在PromQL基础上做了改进
  4. 在处理百万比别数据时,使用内存资源比Thanos、Promtheus更少
  5. ...

VM组件

那么vm有哪些组件呢,(cluster)架构又是怎么样的呢?

主要组件说明:

  • vmstorage负责存储时序数据以及提供查询
  • vmselect从vmstorage获取数据返回给查询数据的客户端,支持PromeQL
  • vminsert通过remote write API将数据存储到vmstorage

其他组件说明:

  • vmui提供了一个UI供查询数据和问题排查
  • vmalert用户告警
  • vmagent用户数据采集
  • vmbackup用于数据备份
  • vmrestore用于数据恢复
  • ...

VM安装注意事项

vm可以通过多种方式安装,如二进制、docker镜像以及源码。可根据场景进行选择。如果在k8s中进行安装,我们可以直接使用operator来进行安装。下面重点说一下安装过程中的一些注意事项。

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

  • 一个vmstorage单节点,另外要指定-retentionPeriod和-storageDataPath两个参数
  • 一个vminsert单节点,要指定-storageNode=
  • 一个vmselect单节点,要指定-storageNode=

注:高可用情况下,建议每个服务至少有个两个节点

在vmselect和vminsert前面需要一个负载均衡,比如vmauth、nginx,同时要求:

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

注:各服务的端口可以通过-httpListenAddr进行指定

建议为集群安装监控

如果是在一个主机上进行安装测试集群,vminsert、vmselect和vmstorage各自的-httpListenAddr参数必须唯一,vmstorage的-storageDataPath、-vminsertAddr、-vmselectAddr这几个参数必须有唯一的值。

当vmstorage通过-storageDataPath目录大小小于通过-storage.minFreeDiskSpaceBytes指定的可用空间时,会切换到只读模式;vminsert停止向这类节点发送数据,转而将数据发送到其他可用vmstorage节点。

 

### VictoriaMetrics 介绍 VictoriaMetrics 是一款支持高可用、经济高效且可扩展的时间序列数据库和监控解决方案[^4]。该工具专为处理大规模时间序列数据而设计,适用于 Prometheus 监控系统的长期远程存储需求。VictoriaMetrics 的架构简洁可靠,在性能、成本效益以及横向扩展能力等方面表现优异,并与 Prometheus 生态紧密结合,能够有效解决单机版 Prometheus 存储容量不足的问题[^5]。 ### 安装与配置 为了安装 VictoriaMetrics,可以从官方 GitHub 发布页面获取最新版本的二进制文件[^2]: ```bash wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.70.0/victoriametrics-linux-amd64.tar.gz tar -xzvf victoriametrics-linux-amd64.tar.gz cd victoriametrics-linux-amd64/ ./victoriametrics --httpListenAddr=0.0.0.0:8428 & ``` 上述命令下载并解压了 Linux AMD64 平台上的 VictoriaMetrics 可执行文件,并启动服务监听于指定端口。 ### 配合 Grafana 实现可视化 Grafana 是一个流行的开源平台,用于查询、可视化、通知及探索指标数据。它能很好地同 VictoriaMetrics 结合工作,从而提供直观的数据展示界面和支持丰富的图表类型[^1]。要使两者协同运作,需先在 Grafana 中添加 VictoriaMetrics 数据源: 1. 登录到 Grafana Web 控制面板; 2. 导航至 "Configuration" -> "Data Sources"; 3. 点击 “Add data source”,选择 "Prometheus" 类型; 4. 输入 VictoriaMetrics HTTP API 地址 (例如 `http://localhost:8428`); 5. 测试连接成功后保存设置; 完成以上操作之后即可利用 Grafana 创建仪表板来查看来自 VictoriaMetrics 的实时监控信息。 ### 组件特性概述 vmagent 是 VictoriaMetrics 提供的一个轻量级代理组件,负责收集目标主机或应用程序产生的遥测数据并向远端服务器发送报告。其主要特点包括但不限于低资源占用率、多协议兼容性和灵活的目标发现机制等[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值