VictoriaMetrics 单机部署方案(适用于小中型数据量)

302 阅读2分钟

VictoriaMetrics 单机部署方案(适用于小中型数据量)

适用场景:

  • 适合 小型生产环境中等规模业务
  • 数据量 ≤ 100M 时间序列,写入速率 ≤ 500K 数据点/s
  • 查询并发 低到中等
  • 需要简单、易维护的部署方案

1. 机器配置建议

资源配置建议
CPU16-32 核(Intel Xeon / AMD EPYC)
内存32-128GB
存储1TB-10TB NVMe SSD(高吞吐建议 RAID 0/1)
网络10Gbps
系统Ubuntu 22.04 / CentOS 8 / Debian 11
VictoriaMetrics 版本最新稳定版(单机模式)

2. 安装 VictoriaMetrics

方法 1:直接下载二进制文件

# 创建目录
mkdir -p /opt/victoriametrics && cd /opt/victoriametrics

# 下载最新版本(x86_64)
wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/latest/download/victoria-metrics-linux-amd64 -O victoria-metrics

# 赋予执行权限
chmod +x victoria-metrics

# 启动 VictoriaMetrics
./victoria-metrics -storageDataPath=/var/lib/victoriametrics -retentionPeriod=3

-retentionPeriod=3 表示 保留 3 个月数据,可以根据需求调整。

方法 2:使用 Docker

docker run -d --name victoria-metrics \
  -p 8428:8428 \
  -v /var/lib/victoriametrics:/victoria-metrics-data \
  victoriametrics/victoria-metrics:latest \
  -retentionPeriod=3

3. 配置 VictoriaMetrics

可以通过 命令行参数环境变量 调整 VictoriaMetrics 配置:

./victoria-metrics \
  -storageDataPath=/var/lib/victoriametrics \
  -retentionPeriod=6 \                      # 保留 6 个月数据
  -memory.allowedPercent=75 \               # 限制 VM 使用 75% 内存
  -search.cacheSizeBytes=1073741824 \       # 1GB 查询缓存
  -selfScrapeInterval=10s                   # 10 秒自采集一次数据

或者在 Docker Compose 里配置:

version: '3'
services:
  victoria-metrics:
    image: victoriametrics/victoria-metrics:latest
    container_name: victoria-metrics
    ports:
      - "8428:8428"
    volumes:
      - /var/lib/victoriametrics:/victoria-metrics-data
    command:
      - "-retentionPeriod=6"
      - "-memory.allowedPercent=75"
      - "-search.cacheSizeBytes=1073741824"

4. 数据写入方式

Prometheus Remote Write

如果你使用 Prometheus 采集数据,可以在 prometheus.yml 里配置:

remote_write:
  - url: "http://<vm-server-ip>:8428/api/v1/write"

然后重启 Prometheus,使其将数据写入 VictoriaMetrics。

直接写入(HTTP API)

你可以直接通过 HTTP API 写入数据:

curl -X POST "http://localhost:8428/api/v1/import" -d 'cpu_usage{host="server1"} 0.5 1640995200'

使用 Grafana 可视化

  1. 安装 Grafana

  2. 添加 VictoriaMetrics 数据源

    • URL: http://<victoria-metrics-ip>:8428
    • 选择 Prometheus 兼容模式
  3. 开始创建仪表盘 🎉


5. 监控 VictoriaMetrics 本身

可以让 VictoriaMetrics 自采集自身指标

./victoria-metrics -selfScrapeInterval=10s

然后在 Grafana 上添加以下 PromQL:

rate(vm_rows{type="active"}[5m])

这个查询可以显示当前存储的数据行增长情况。


6. 备份 & 恢复

手动备份

tar -czvf victoria-metrics-backup.tar.gz /var/lib/victoriametrics

恢复数据

tar -xzvf victoria-metrics-backup.tar.gz -C /var/lib/victoriametrics

然后重新启动 VictoriaMetrics。


7. 总结

任务方案
安装方式二进制 / Docker / Docker Compose
数据存储路径/var/lib/victoriametrics
保留时长-retentionPeriod=6(6 个月,可调整)
数据写入Prometheus Remote Write / HTTP API
查询Grafana + PromQL
备份恢复直接压缩存储目录 /var/lib/victoriametrics

这个方案 易于部署、性能优秀,适合 中小型业务,如果数据量和负载进一步增长,可以考虑 迁移到集群模式。🚀