VictoriaMetrics
快速、经济高效的监控解决方案和时间序列数据库。VictoriaMetrics
可用于 Prometheus
的长期远程存储方案。
优点
- 远程存储:可作为单一或多个Prometheus的远程存储
- 安装简单
- 支持水平扩容和HA
- 支持多租户
- 兼容性:PromQL兼容和增强的MetricsQL,VM可替换Grafana的Prometheus数据源
- 低内存:比Prometheus可以释放7倍左右内存空间
- 高压缩比:比Prometheus减少7倍的存储空间
- 高性能:查询性能比Prometheus更快
- 具有高延迟 IO 和低 IOPS
- 读写性能比 InfluxDB 和 TimescaleDB 高达 20 倍
- 百万时间序列数据下,内存使用比 InfluxDB 少 10 倍,比 Prometheus、Thanos 或 Cortex 少 7 倍
- 数据高压缩,与 Prometheus、Thanos 或 Cortex 相比,所需的存储空间最多可减少 7 倍
组成
参考:
说明:
vmstorage
: 存储原始数据,根据标签过滤器的查询指定时间范围内的数据,支持写入时去重。vmstorage
节点独立运行,彼此之间不通信、不共享任何数据
vminsert
: 根据 度量名称
、标签等
,将接受到的数据采用 hash 分片算法
散列的写入多个 vmstorage
中
vmselect
: 通过从指定的 vmstorage
节点查询所需数据,支持数据合并和去重
vmagent
: 一个小巧但功能强大的代理,可从各种来源收集指标并将它们存储在 VictoriaMetrics
或其他支持 remote_write 协议
存储系统中
vmalert
: 根据警报规则生成告警记录
端口:
- vminsert - 8480
- vmselect - 8481
- vmstorage - 8482
其他地址:
部署模式
支持单节点(single-node)和集群版(cluster)
单机版
架构
Grafana(3000)
|
prometheus -> VictoriaMetrics(8428)
|
node-exporter(9100)
安装
wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.65.0/victoria-metrics-amd64-v1.65.0.tar.gz
mkdir victoria-metrics && tar -xvzf victoria-metrics-amd64-v1.65.0.tar.gz && \
mv victoria-metrics-prod victoria-metrics/victoria-metrics && cd victoria-metrics
nohup ./victoria-metrics -retentionPeriod=30d -storageDataPath=data &
remote_write:
- url: http://<victoriametrics-addr>:8428/api/v1/write
# 多个proemtheus的话,需要配置每个Prometheus的标识符
global:
external_labels:
datacenter: dc-001
kubernetes
helm repo add vm https://victoriametrics.github.io/helm-charts/
helm repo update
# 导出配置
helm show values vm/victoria-metrics-cluster > values.yaml
# 配置检查
helm install victoria-metrics vm/victoria-metrics-cluster -f values.yaml -n victoria-metrics --debug --dry-run
# 部署 victoria-metrics-cluster
helm install victoria-metrics vm/victoria-metrics-cluster -f values.yaml -n victoria-metrics