VictoriaMetrics 单机部署方案(适用于小中型数据量)
适用场景:
- 适合 小型生产环境 或 中等规模业务
- 数据量 ≤ 100M 时间序列,写入速率 ≤ 500K 数据点/s
- 查询并发 低到中等
- 需要简单、易维护的部署方案
1. 机器配置建议
| 资源 | 配置建议 |
|---|---|
| CPU | 16-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 可视化
-
安装 Grafana
-
添加 VictoriaMetrics 数据源
URL: http://<victoria-metrics-ip>:8428- 选择 Prometheus 兼容模式
-
开始创建仪表盘 🎉
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 |
这个方案 易于部署、性能优秀,适合 中小型业务,如果数据量和负载进一步增长,可以考虑 迁移到集群模式。🚀