在云原生时代,指标采集是可观测性体系中的关键一环。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。它可能就是你监控架构升级的关键一步。



暂无评论内容