资讯动态

【Prometheus 联邦集群与 VictoriaMetrics 远程存储实战】

发布时间:2026/8/5 12:07:14 来源:尧图企业网站定制
提示本文原创作品良心制作干货为主简洁清晰一看就会文章目录前言一、Prometheus联邦Federation1.1 什么是Prometheus联邦1.2 Prometheus联邦实战联邦节点配置配置prometheus主节点二、Prometheus数据存储2.1 存储原理2.2 本地存储2.3 远程存储实验环境安装VictoriaMetrics配置Prometheus前言为解决多节点监控数据聚合汇总问题Prometheus提供联邦集群架构可实现多Prometheus节点数据统一采集、集中管理适配分布式监控场景。同时Prometheus原生本地存储存在容量受限通过部署VictoriaMetrics高性能时序数据库完成Prometheus远程持久化存储改造解决传统监控系统的数据存储痛点搭建一套聚合能力强、存储时效久、性能稳定的监控架构。一、Prometheus联邦Federation1.1 什么是Prometheus联邦Prometheus联邦采用分层架构下级Prometheus分片采集各类节点监控指标上级总Prometheus统一拉取汇总既能分散采集压力、避免单实例负载过高实现多机房、多集群运维隔离还可适配网络隔离环境、按需分层筛选指标减轻顶层存储与查询开销适合大规模多集群监控场景1.2 Prometheus联邦实战主机名IP作用prometheus-master192.168.13.141联邦顶层主节点汇总拉取所有子联邦节点指标统一查询与告警prometheus-federation1192.168.13.138联邦子节点 1采集 ubuntu1 的 Node Exporter 指标并向上汇聚prometheus-federation2192.168.13.139联邦子节点 2采集 ubuntu2 的 Node Exporter 指标并向上汇聚ubuntu1192.168.13.140被监控业务主机运行 Node Exporter 暴露系统指标ubuntu2192.168.13.142被监控业务主机运行 Node Exporter 暴露系统指标我已经在 prometheus-master、prometheus-federation1、prometheus-federation2 节点部署 Prometheus 服务并在各被监控主机部署了 Exporter本次采用 node-exporter。部署步骤可参考这篇文章本文重点讲解 Prometheus 联邦集群搭建流程Prometheusnode exporter安装https://blog.csdn.net/m0_63756214/article/details/161196428联邦节点配置rootprometheus-federation1:~# vim /opt/prometheus/prometheus/prometheus.ymlscrape_configs:......-job_name:node-exporterstatic_configs:-targets:[192.168.13.140:9100]labels:instance:ubuntu1rootprometheus-federation1:~# curl -X POST http://localhost:9090/-/reload浏览器访问prometheus-federation1 ip:9090rootprometheus-federation2:~# vim /opt/prometheus/prometheus/prometheus.ymlscrape_configs:......-job_name:node-exporterstatic_configs:-targets:[192.168.13.142:9100]labels:instance:ubuntu2rootprometheus-federation2:~# curl -X POST http://localhost:9090/-/reload浏览器访问prometheus-federation2 ip:9090配置prometheus主节点配置prometheus主节点管理prometheus 联邦节点scrape_configs:......-job_name:federatescrape_interval:15shonor_labels:truemetrics_path:/federate# 指定采集端点路径默认为/federatestatic_configs:-targets:[192.168.13.138:9090]# 指定联邦节点Prometheus节点地址如果在k8s集群内需要指定k8s的svc nodeport-targets:[192.168.13.139:9090]params:match[]:-{job~prometheus|node-exporter}# 指定采集联邦节点的job名称如果不匹配则不会采集浏览器访问192.168.13.141:9090查询指标可以看到收集了两个联邦节点的数据当前 Prometheus 联邦集群基础架构已部署完成如果发现 Master 依然因为数据量过大而卡顿应该在联邦节点138/139上做“预聚合”而不是在 Master 上直接拉原始数据在 138 和 139 的 Prometheus 中配置 Recording Rules记录规则将 5 分钟的 CPU、内存等高频指标聚合成每分钟的均值。然后 Master 的 match[] 只拉取这些聚合后的新指标如 job“aggregated”。此时 Master 的数据量将减少 90% 以上这才是真正的压力卸载二、Prometheus数据存储2.1 存储原理prometheus TSDB 写入存储原理核心组件分工Head内存活跃块指标样本(t,v)先进Head内存默认留存2小时配套两套机制M-map内存映射只存文件引用按需把磁盘chunk载入内存节省内存WAL预写日志保证写入可靠Block磁盘持久块Head里的数据老化满2小时后刷入磁盘生成只读Block老Block会持续合并超数据保留周期后自动删除WAL预写日志机制写入规则先写WAL日志再操作磁盘Block保障写入原子性、宕机可重试恢复文件结构WAL切分单个最大128MB段文件存于wal目录checkpoint文件记录日志截断位置并同步落盘保障可靠性完整写入流程指标样本 → Head内存同步写WAL防丢失→ 留存2小时后刷盘生成Block → 老Block持续合并过期删除2.2 本地存储我的prometheus是下载的tar包然后安装在/opt/prometheus/下rootprometheus:~# ls /opt/prometheus/prometheus/alert.yml data LICENSE NOTICE prometheus prometheus.yml promtool rootprometheus:~# ls /opt/prometheus/prometheus/data/01KYHCV0DA2906BJWNS5M05Z1Y 01KZ5J98CPMFDRNRMG2J4R373Q chunks_head queries.active 01KZ5C14G4REHBGBYCBRM8ANBA 01KZ5J98PVVEQVZ71T8DZ3X899 lock walPrometheus TSDB本地数据默认存放于./data在./data/目录下类似如01KYHCV0DA2…形式的目录为2小时块Block目录Block目录内包含4类核心文件chunks存放时序原始数据单个chunk上限512MBindex索引根据指标名、标签定位时序数据tombstones软删除标记不直接清理数据查询时过滤已删内容meta.jsonBlock元数据支撑块合并、删除管理如下图2.3 远程存储Prometheus本地存储存在单点故障、性能瓶颈可通过远程存储解决。VictoriaMetricsVM是 Go 语言开发的高性能时序数据库主打 Prometheus 远程长期存储专为海量监控时序数据设计VictoriaMetrics核心优势1兼容PromQL、Prometheus/Graphite API可直接替代Prometheus、Graphite做Grafana数据源,2高性能读写吞吐远超InfluxDB、TimescaleDB适配云低IO/HDD存储3易扩展部署单节点可替代中小型监控集群提供开源集群版适配K8s、工业、物联网等海量时序场景实验环境主机名IP用途prometheus192.168.13.141监控采集服务定时抓取被监控主机系统指标通过remote_write将采集到的指标远程推送至VictoriaMetrics做长期持久化存储victoriametrics192.168.13.139接收Prometheus远程上报的监控指标并长期存储提供Prometheus兼容API可对接Grafana可视化ubuntu1192.168.13.140被监控业务主机部署Node Exporterubuntu2192.168.13.142被监控业务主机部署Node Exporter这是我目前Prometheus所监控的设备安装VictoriaMetricsGithub下载VictoriaMetricshttps://github.com/VictoriaMetrics/VictoriaMetrics/releases注意:不要下载enterpise版本此版本需要授权许可我这里演示的是单机模式victoriametrics还有集群模式后期会出教程## 1. 下载tar包rootvictoriametrics:~# wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.145.0/victoria-metrics-linux-amd64-v1.145.0.tar.gzrootvictoriametrics:~# lsvictoria-metrics-linux-amd64-v1.145.0.tar.gz rootvictoriametrics:~# tar xf victoria-metrics-linux-amd64-v1.145.0.tar.gzrootvictoriametrics:~# mv victoria-metrics-prod /usr/local/bin/## 2. 创建系统后台用户rootvictoriametrics:~# useradd -r -s /sbin/nologin victoriametrics## 3. 创建数据持久化目录rootvictoriametrics:~# mkdir -p /data/victoriametricsrootvictoriametrics:~# chown victoriametrics:victoriametrics /data/victoriametrics## 4. 创建service文件rootvictoriametrics:~# cat /lib/systemd/system/victoriametrics.service EOF[Unit]DescriptionVictoriaMetrics Documentationhttps://docs.victoriametrics.com/Single-server-VictoriaMetrics.html Afternetwork.target[Service]Restarton-failure Uservictoriametrics Groupvictoriametrics ExecStart/usr/local/bin/victoria-metrics-prod-httpListenAddr0.0.0.0:8428-storageDataPath/data/victoriametrics-retentionPeriod12#ExecReload/bin/kill -HUP \$MAINPIDLimitNOFILE65535[Install]WantedBymulti-user.target EOF rootvictoriametrics:~# systemctl daemon-reloadrootvictoriametrics:~# systemctl enable --now victoriametrics.service-httpListenAddr0.0.0.0:8428VM 对外监听端口8428允许任意IP访问-storageDataPath/data/victoriametrics指标数据持久化存储目录-retentionPeriod12数据保留时长12个月LimitNOFILE65535调高进程最大文件句柄数适配海量时序采集场景rootvictoriametrics:~# ls /data/victoriametrics/data flock.lock metadata snapshots tmp rootvictoriametrics:~# tree /data/victoriametrics/配置Prometheusrootprometheus:~# vim /opt/prometheus/prometheus/prometheus.ymlglobal:......remote_write:-url:http://192.168.13.139:8428/api/v1/write......scrape_configs:......-job_name:victoriametricsstatic_configs:-targets:[192.168.13.139:8428]rootprometheus:~# curl -X POST http://localhost:9090/-/reload浏览器访问可视化 Web 管理控制台http://192.168.13.139:8428/vmui可以查看监控指标登录grafana添加victoriametrics数据源添加dashboard可以看到数据从victoriametrics中来到此Prometheus远程存储数据就部署好了注文中若有疏漏欢迎大家指正赐教。本文为100%原创转载请务必标注原创作者尊重劳动成果。求赞、求关注、求评论你的支持是我更新的最大动力评论区等你

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价