扛住百万指标采集压力:我们用 vmagent 集群彻底替换了 Prometheus

在云原生时代,指标采集是可观测性体系中的关键一环。Prometheus 作为事实上的监控标准,其单点架构和本地存储限制了其在大规模场景下的扩展性。而 VictoriaMetrics(简称 VM)作为高性能、低成本、兼容 Prometheus 协议的时序数据库,正被越来越多企业用于生产环境。

其中,vmagent 是 VictoriaMetrics 生态中一个轻量级、高性能的指标采集器,它不仅兼容 Prometheus 的服务发现和 scrape 配置,还支持远程写入(remote_write)到多个后端(如 VM、Prometheus、InfluxDB 等),并具备数据去重、压缩、缓冲等企业级特性。

1. 为什么我们要替换 Prometheus?

在过去的几年里,Prometheus 凭借其简洁的模型和强大的生态,成为监控领域的“事实标准”。然而,随着业务规模扩大,我们逐渐遇到了它的“天花板”:

  • 单点架构:Prometheus 本身无集群能力,水平扩展困难;
  • 内存爆炸:采集目标超过 10 万时,内存占用飙升,GC 频繁;
  • 远程写入不稳定:高负载下 remote_write 易丢数据;
  • 无内置去重/缓冲:网络抖动或后端故障会导致指标丢失。

为了解决这些问题,我们评估了多个方案,最终选择 VictoriaMetrics 生态中的 vmagent 作为新一代指标采集器,并在生产环境中全面落地。

2. 实战: 部署高可用vmagent集群

(1) 创建vmagent根目录复制

sudo mkdir -p /app/vmagent/{bin,tmp}
sudo chown -R ops. /app/vmagent1.2.

(2) 下载vmagent命令复制

$ wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.128.0/vmutils-linux-amd64-v1.128.0.tar.gz
$ tar xf vmutils-linux-amd64-v1.128.0.tar.gz -C /tmp/
$ cp /tmp/vmagent-prod /app/vmagent/bin/1.2.3.

(3) 抓取metrics配置文件复制

cat <<'EOF' | tee /app/vmagent/scrape.yml > /dev/null
global:
  scrape_interval: 15s

scrape_configs:
- job_name: vmagent
  metrics_path: /metrics
  static_configs:
  - targets:
    - 172.139.20.181:8429
EOF1.2.3.4.5.6.7.8.9.10.11.

(4) systemd配置复制

cat <<'EOF' | sudo tee /lib/systemd/system/vmagent.service > /dev/null
[Unit]
Descriptinotallow=VictoriaMetrics vmagent service
After=network.target

[Service]
Type=simple
User=ops
Restart=always
ExecStart=/app/vmagent/bin/vmagent-prod -httpListenAddr=:8429 -promscrape.cnotallow=/app/vmagent/scrape.yml -remoteWrite.tmpDataPath=/app/vmagent/tmp -remoteWrite.url=http://172.139.20.200:18480/insert/0/prometheus
PrivateTmp=yes
ProtectHome=yes
NoNewPrivileges=yes
ProtectSystem=full

[Install]
WantedBy=multi-user.target
EOF1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.

(5) 启动服务复制

$ sudo systemctl daemon-reload
$ sudo systemctl enable vmagent --now1.2.

3. 验证采集情况

确认数据没有重复,例如查看30s数据,配置15s抓取一次。那么正常是有两个数据的。

Tip:验证正常,数据无重复。

4. 结语

我们并非否定 Prometheus 的价值——它仍是学习和小规模场景的绝佳工具。但在企业级、大规模、高可靠的生产环境中,vmagent + VictoriaMetrics 的组合提供了更优的性能、更低的成本和更强的韧性。

如果你也在被 Prometheus 的扩展性困扰,不妨试试 vmagent。它可能就是你监控架构升级的关键一步。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容