Linux部署Victoria-Metrics集群版环境
写在前面
- Victoria-Metrics集群简介
- VictoriaMetrics是一个快速、高效和可扩展的时序数据库,支持PromQL查询语言,也支持Influxdb行协议,可作为prometheus的长期存储(long-term storage)。
- 单实例的victoriametric只有一个进程。
- 集群版的victoriametrics有3类进程,即3类微服务组成:
- vmstorage: 数据存储节点,负责存储时序数据;
- vmselect: 数据查询节点,负责接收用户查询请求,向vmstorage查询时序数据;
- vminsert: 数据插入节点,负责接收用户插入请求,向vmstorage写入时序数据;
- 集群中vmselect、vminsert节点都是无状态的,唯一有状态的是vmstorage。
- 按需部署
- 若数据量比较大,部署较多的vmstorage副本;
- 若查询请求比较多,部署较多的vmselect副本;
- 若插入请求比较多,部署较多的vminsert副本;
- 相关文档
一、下载安装集群服务
-
下载服务
下载地址:https://github.com/VictoriaMetrics/VictoriaMetrics/releases 例如CentOS: victoria-metrics-amd64-v1.77.2-cluster.tar.gz
-
安装
1、解压步骤1下载的文件 tar xf victoria-metrics-amd64-v1.77.2-cluster.tar.gz 得到三个文件 vminsert-prod vmselect-prod vmstorage-prod 2、将三个文件移动到创建的自定义路径
二、更新集群服务启动配置
-
脚本部署【由于条件有限,本例全部部署在】
准备环境 1、创建目录 mkdir -vp /usr/local/server-path/vm-cluster/{bin,conf,data} 2、将脚本初始化,命名为:vm-cluster.sh 3、将下载的二进制文件移动到bin目录下 如下:vm-cluster.sh drwxr-xr-x. 2 root root 6 6月 10 11:50 bin drwxr-xr-x. 2 root root 6 6月 10 11:50 conf drwxr-xr-x. 2 root root 6 6月 10 11:50 data drwxr-xr-x. 2 root root 6 6月 10 11:50 log -rwxr-xr-x. 1 root root 947 6月 10 11:27 vm-cluster.sh
#!/bin/bash #vm-cluster.sh:自定义路径并启动实例 victoria_home="/usr/local/server-path/vm-cluster" #部署路径 bin=${victoria_home}/bin conf=${victoria_home}/conf data=${victoria_home}/data log=${victoria_home}/log LOG_LEVEL=INFO TIMEZONE="Asia/Shanghai" cd ${victoria_home} # nodeIP: 对应服务所处节点的ip如果三个服务同一节点,则是该节点ip # IPn:对应服务所处节点的ip ${bin}/vmstorage-prod \ -httpListenAddr "192.168.137.101:8482" \ -storageDataPath ${data} \ -retentionPeriod 30d \ -vminsertAddr "192.168.137.101:8400" \ # insert 端口,由 vminsert 连接 -vmselectAddr "192.168.137.101:8401" \ # select 端口,由 vmselect 连接 -loggerTimezone ${TIMEZONE} \ -loggerLevel ${LOG_LEVEL} &> ${log}/storage.log & ${bin}/vminsert-prod \ -httpListenAddr "192.168.137.101:8480" \ -storageNode 192.168.137.101:8400 \ -loggerTimezone ${TIMEZONE} \ -loggerLevel ${LOG_LEVEL} &> ${log}/insert.log & ${bin}/vmselect-prod \ -httpListenAddr "192.168.137.101:8481" \ -selectNode 192.168.137.101:8481 \ -storageNode 192.168.137.101:8401 \ -loggerTimezone ${TIMEZONE} \ -loggerLevel ${LOG_LEVEL} &> ${log}/select.log &
-
验证:
1、脚本运行正常 2、浏览器访问: (1)http://192.168.137.101:8480/ (2)http://192.168.137.101:8481/ (3)http://192.168.137.101:8482/ 分别显示: (2)vminsert - a component of VictoriaMetrics cluster. See docs at https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html (2)vmselect - a component of VictoriaMetrics cluster (3)vmstorage - a component of VictoriaMetrics cluster. See docs at https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html
三、对接Prometheus、grafana
-
更新Prometheus配置
#在配置文件最后新增 # prometheus.yml # <vminsert> 即上面脚本中的vmselect-prod的httpListenAddr # accountID 默认为 0 # suffix 可以为 `prometheus` 或 `prometheus/api/v1/write` # 本例为:http://192.168.137.101:8480/insert/0/prometheus/api/v1/write remote_write: - url: "http://<vminsert>:8480/insert/<accountID>/<suffix>" write_relabel_configs: - source_labels: [__name__] regex: 'go_.*' action: drop
-
更新grafana数据源
启动grafana服务并登录 点击 设置->data source -> add data source url为:http://<vmselect>:8481/select/<accountID>/prometheus 本例:http://192.168.137.101:8481/select/0/prometheus
四、数据测试
- 启动node exporter等数据采集服务
- grafana画图,数据源选择上面更新的数据源
- 数据展示
- 结束