Linux部署Victoria-Metrics集群版环境

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副本;
  • 相关文档
    • Cluster version · VictoriaMetrics
    • VictoriaMetrics集群原理 - SegmentFault 思否
一、下载安装集群服务
  1. 下载服务

    下载地址:https://github.com/VictoriaMetrics/VictoriaMetrics/releases
    例如CentOS: victoria-metrics-amd64-v1.77.2-cluster.tar.gz
    
  2. 安装

    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
    #  即上面脚本中的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://:8480/insert//"
        write_relabel_configs:
          - source_labels: [__name__]
            regex: 'go_.*'
            action: drop
    
  • 更新grafana数据源

    启动grafana服务并登录
    点击
    设置->data source -> add data source
    url为:http://:8481/select//prometheus
    本例:http://192.168.137.101:8481/select/0/prometheus
    
四、数据测试
  • 启动node exporter等数据采集服务
  • grafana画图,数据源选择上面更新的数据源
  • 数据展示
  • 结束
参考案例:
  • 安装部署 - 使用VictoriaMetrics作为时序库 - 《夜莺(Nightingale)v5.1 使用手册》 - 书栈网 · BookStack

你可能感兴趣的:(APM-应用性能监控,linux,运维,centos)