VictoriaMetrics | 云原生监控新宠: 10倍性能碾压Prometheus?单机一键部署实战

VictoriaMetrics | 云原生监控新宠: 10倍性能碾压Prometheus?单机一键部署实战

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]

📢 大家好,我是 WeiyiGeek,一名深耕安全运维开发(SecOpsDev)领域的技术从业者,致力于探索DevOps与安全的融合(DevSecOps),自动化运维工具开发与实践,企业网络安全防护,欢迎各位道友一起学习交流、一起进步 🚀,若此文对你有帮助,一定记得倒点个关注⭐与小红星❤️,收藏学习不迷路 😋 。

0x00 前言简述

描述:查看过我前面文章的道友应该知道,在云原生时代传统的监控采集方式已经不能满足当下需求,作者在《1.企业可观测性监控三大支柱及开源方案的横评对比》文章中,介绍从传统的 zabbix 到云原生 prometheus 再到云原生新宠 victoriametrics,指标采集和监控方式在不断的进化,并结合一些开源方案,组合成一套完整的监控体系,例如:云原生领域中指标保留、采集存储、到可视化展示,再到监控告警,这套 
exporter + Promethues + Grafana + Alertmanager
 组合拳,已经成为了云原生监控领域的标配。

但是,随着微服务架构的流行,单体应用逐渐被拆分成多个微服务,每个服务的监控数据都需要被单独采集、存储和分析,便导致采集的指标数量急剧增加;此外在使用 Promethues 时序数据库时,将会发现三个特别突出的问题,那就是指标数据的存储和查询效率问题,以及高可用性较差(不支持集群化部署),就是在这样的背景下 VictoriaMetrics 应运而生,提供了高性能的时序数据库,解决了 Promethues 的存储占用高和查询效率慢问题,以及高可用问题, 从而在云原生监控领域中崭露头角。

温馨提示:若文章代码块中存在乱码或不能复制,请联系作者,也可通过文末的阅读原文链接,加入知识星球中阅读,原文链接:hhttps://articles.zsxq.com/id_n0eg5m1h3x1w.html

VictoriaMetrics 简介

描述:VictoriaMetrics 是一个开源的高性能、开源时间序列数据库和监控解决方案,它可以实现简单、可靠、高效的监控,帮助用户收集、存储和分析大规模的时序数据,使之更好地了解系统的运行状况,并在问题成为主要问题之前发现问题,适用于各种规模的系统、业务监控需求。

另外,它在单实例部署环境下每秒可存储百万个时间序列(数据点),性能杠杠好,并且完美支持(兼容)Prometheus 生态(数据模型、查询语言)使之无缝衔接,可作为 Promethues 指标数据长期存储,与现有 Promethe 解决方案
相比,其存储资源占用更低,查询效率更高(介绍文档说是 10 倍及以上,经过作者测试同等条件下确实更优),并且支持集群化部署,提高了系统的可用性和可靠性。

官方网站:https://victoriametrics.com/products/open-source/

温馨提示:VictoriaMetrics 在基础开源(社区)版本以上也有企业版,提供额外的功能和支持服务。

VictoriaMetrics 特点

高性能:VictoriaMetrics 提供了高效的存储和查询性能,可以处理大规模的时序数据。

兼容性:VictoriaMetrics 支持 Prometheus 的数据模型和 PromQL 查询语言,以及支持 InfluxDB,Graphite,OpenTSDB和CSV协议中的指标。。

灵活的存储选项:VictoriaMetrics 支持多种数据存储后端,包括本地磁盘、远程网络、对象存储和云存储。

多平台支持:VictoriaMetrics 支持多种操作系统和平台,包括 Linux、Windows 和 macOS。

多部署方式:包括二进制文件(由一个没有外部依赖的小可执行文件组成)、Docker 容器和 Kubernetes Operator 等,易于安装和操作。

高可用性:VictoriaMetrics 支持集群化部署,提高了系统的可用性和可靠性。

VictoriaMetrics | 云原生监控新宠: 10倍性能碾压Prometheus?单机一键部署实战

官方文档:https://docs.victoriametrics.com/victoriametrics/

VictoriaMetrics 组件

描述:在 VictoriaMetrics 生态系统中还包含以下几个组件:

vminsert, vmselect, vmstorage 组件:VictoriaMetrics 集群的三个主要组件,分别用于接收指标数据、查询和存储,单实例部署时,这三个组件合并为一个二进制文件。

vmbackup, vmrestore, vmbackupmanager 组件:用于创建备份和从备份中恢复备份数据的工具。

vmagent:轻量级 Agent,用于收集指标数据并将其发送到 VictoriaMetrics 时序数据库中。

vmalert: 专用告警组件,用于处理 Prometheus 的 Alertmanager 兼容的警告规则。

vmalert-tool: 验证告警组件,用于验证警报和记录规则的工具。

vmauth: 认证负载组件,用于授权代理身份证和负载均衡器的工具。作者在前面的文章提及实践过可参考《运维噩梦:日志泄露!VictoriaLogs 如何用 vmauth 实现安全访问控制,告别裸奔?》

vmgateway: 网关组件,用于授权代理身份证和限制能力。

vmctl: 客户端组件,用于在不同存储系统之间迁移和复制数据的工具。

vmui: 用户界面组件,用于可视化 VictoriaMetrics 数据。

VictoriaLogs:日志组件,一个存储、查询效率高的日志存储解决方案,用于存储和分析大规模日志数据。作者已经实践过,这里就不赘述了,感兴趣的看友可参考作者文章自行食用《比Loki更轻量、更高效!VictoriaLogs日志系统初识与二进制部署指南》

VictoriaMetrics | 云原生监控新宠: 10倍性能碾压Prometheus?单机一键部署实战

前面提到 VictoriaMetrics 还支持集群化部署,以提高系统的可用性(HA)和可靠性,其核心组件及架构如下图所示:


vmstorage
 – 存储时间序列数据(TSDB),有状态


vminsert
 – 接收 Remote Write 请求,分发到 vmstorage,无状态


vmselect
 – 处理 PromQL 查询,聚合 vmstorage 数据,无状态 (注:包含 vmui 组件,用于可视化 VictoriaMetrics 数据))

VictoriaMetrics | 云原生监控新宠: 10倍性能碾压Prometheus?单机一键部署实战

特别注意:尽管 vmselect 是无状态的,但它仍然需要一些磁盘空间(几GB)用于临时缓存。

VictoriaMetrics 使用场景

VictoriaMetrics 非常适合解决IT基础设施、APM、Kubernetes、物联网传感器、汽车、工业遥测、财务数据和各种其他业务级工作负载的大量时间序列数据的用例。

当然,若有具有大量指标和严格的延迟要求,以最经济高效的方式长期存储数据,需要在一个地方查询从多个来源收集的数据,替代现有的 Promethues 生态,VictoriaMetrics 绝对是一个很好的选择。


0x01 VictoriaMetrics 安装部署

描述:作者将以二进制部署方式,以及在 Kubernetes 集群中进行容器化部署单实例的 VictoriaMetrics ,并在国产操作系统中 
openEuler 24.03 LTS-SP1
 进行演示配置及其使用。

温馨提示:作者已针对 openEuler 24.03 LTS-SP1 进行安全加固,满足等保2.0要求,若需要加固脚本请访问【OpenEuler 24.03系统主机安全加固及配置优化实践指南】专栏获取。

二进制方式单机部署

官方提到,对于低于每秒一百万个数据点的摄取速率,建议使用单节点版本而不是群集版本, 单节点版本可根据CPU内核、RAM和可用存储空间的数量进行完美扩展,并可设置为高可用性模式, 与集群版本相比,单节点版本更易于配置和操作

操作步骤

作者简单整理了 VictoriaMetrics 单机二进制部署的脚本,看友可直接复制到 Linux 终端执行,如下所示:



# 固定版本(2025年11月6日 11:03:32 最新版本)VERSION=v1.129.1
# 最新版本LAST_VERSION=$(curl -s "https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/tags" | grep '"name":' | grep -v 'beta|alpha|rc' | head -n 1 | awk -F '"' '{print $4}')
# 若未获取到最新版本,则使用固定版本VM_VERSION=${LAST_VERSION:-$VERSION}
# 下载解压wget -L "https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/${VM_VERSION}/victoria-metrics-linux-amd64-${VM_VERSION}.tar.gz"tar -zxvf victoria-metrics-linux-amd64-${VERSION}.tar.gz -C /usr/local/bin
# 创建 VictoriaMetrics 用户sudo useradd -M -U -s /usr/sbin/nologin victoriametrics 
# 创建 VictoriaMetrics 数据目录sudo mkdir -p /var/lib/victoria-metrics && sudo chown -R victoriametrics:victoriametrics /var/lib/victoria-metrics
# 创建 VictoriaMetrics 服务文件sudo bash -c 'cat <<END >/etc/systemd/system/victoriametrics.service[Unit]Description=VictoriaMetrics serviceAfter=network.target[Service]Type=simpleUser=victoriametricsGroup=victoriametricsExecStart=/usr/local/bin/victoria-metrics-prod -storageDataPath=/var/lib/victoria-metrics -httpListenAddr=:8428 -retentionPeriod=7d -selfScrapeInterval=30s -httpAuth.username=metrics -httpAuth.password=weiyigeek.top -vmui.defaultTimezone=LocalSyslogIdentifier=victoriametricsRestart=alwaysPrivateTmp=yesProtectHome=yesNoNewPrivileges=yesProtectSystem=full[Install]WantedBy=multi-user.targetEND'# 参数说明:# -storageDataPath   # 数据存储目录# -httpListenAddr    # 服务监听端口# -retentionPeriod   # 数据保留时间# -selfScrapeInterval # 自动采集自身指标的时间间隔# -vmui.defaultTimezone=Local # 设置默认时区为本地时间# -httpAuth.username   # 设置auth用户名# -httpAuth.password   # 设置auth密码
# 启动并自启用服务,并检查服务是否已成功启动sudo systemctl daemon-reload && sudo systemctl enable --now victoriametrics.service           sudo systemctl status victoriametrics.service

VictoriaMetrics | 云原生监控新宠: 10倍性能碾压Prometheus?单机一键部署实战

在 VictoriaMetrics 处于 Running 状态后,我们可使用浏览器访问 VictoriaMetrics 的内置 UI。默认情况下,VictoriaMetrics 监听端口8428上的HTTP请求,请求地址 
http//<ip_or_hostname>:8428/vmui
,输入 auth
认证许可后,便可执行 
{job="victoria-metrics"}
 查询指标将显示如下界面。

VictoriaMetrics | 云原生监控新宠: 10倍性能碾压Prometheus?单机一键部署实战

至此,单机版 VictoriaMetrics 已部署完成,接下来同样以二进制方式部署 VictoriaMetrics 集群。

VictoriaMetrics | 云原生监控新宠: 10倍性能碾压Prometheus?单机一键部署实战

END

加入:作者【全栈工程师修炼指南】知识星球

『 全栈工程师修炼指南』星球,主要涉及全栈工程师(Full Stack Development)实践文章,包括但不限于企业SecDevOps和网络安全等保合规、安全渗透测试、编程开发、云原生(Cloud Native)、物联网工业控制(IOT)、人工智能Ai,从业书籍笔记,人生职场认识等方面资料或文章。

Q: 加入作者【全栈工程师修炼指南】星球后有啥好处?

✅ 将获得作者最新工作学习实践文章以及网盘资源。

✅ 将获得作者珍藏多年的全栈学习笔记(需连续两年及以上老星球友,也可单次购买) 

✅ 将获得作者专门答疑学习交流群,解决在工作学习中的问题。

✅ 将获得作者远程支持(在作者能力范围内且合规)。

VictoriaMetrics | 云原生监控新宠: 10倍性能碾压Prometheus?单机一键部署实战

获取:作者工作学习全栈笔记

作者整理了10年的工作学习笔记(涉及网络、安全、运维、开发),需要学习实践笔记的看友,可添加作者微信或者回复【工作学习实践笔记】,当前价格¥299,除了获得从业笔记的同时还可进行问题答疑以及每月远程技术支持,希望大家多多支持,收获定大于付出!

VictoriaMetrics | 云原生监控新宠: 10倍性能碾压Prometheus?单机一键部署实战

 知识推荐 往期文章

🔥【最新】DBA | 告别数据泵!Oracle 推荐的物理备份神器 RMAN 快速入门指南

🔥【最新】DBA | Oracle RMAN 实战:物理备份与数据恢复全解析

🔥【最新】DBA | Oracle 数据备份迁移之数据泵 expdp/impdp 工具实战指南

🔥【最新】DBA | Oracle 数据备份迁移之传统 exp/imp 工具实战指南

💡【相关】无缝迁徙:从 Prometheus 到 VictoriaMetrics 的零停机数据迁移指南

💡【相关】告别杂乱Windows安全日志!VictoriaLogs+Grafana构建企业级审计日志分析平台实战

💡【相关】告别Nginx原始日志!VictoriaLogs+Grafana构建企业级应用日志分析平台实战

💡【相关】等保合规 | Rsyslog 高阶玩法:审计日志平移直通 VictoriaLogs 实践指南

💡【相关】运维噩梦:日志泄露!VictoriaLogs 如何用 vmauth 实现安全访问控制,告别裸奔?

若文章对你有帮助,请将它转发给更多的看友,若有疑问的小伙伴,可在评论区留言你想法哟 💬!

VictoriaMetrics | 云原生监控新宠: 10倍性能碾压Prometheus?单机一键部署实战

© 版权声明

相关文章

暂无评论

none
暂无评论...