暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

VictoriaMetrics安装手册

老柴杂货铺 2025-04-04
189

VictoriaMetrics是一个开源的时序数据库和监控系统。它是为大规模的时序数据而设计的,可以扩展到数十亿数据点,具有高可用性和高性能。

一、VictoriaMetrics特性: 

高性能:VictoriaMetrics采用了一些优化技术,如块存储、压缩、索引等,可以在不牺牲查询性能的情况下,大大减少存储空间。 

高可用性:VictoriaMetrics具有多副本的数据复制机制,可以保证数据的可靠性和高可用性。 

易于部署和管理:VictoriaMetrics可以在多种操作系统上运行,支持Docker容器化部署,同时也提供了易于使用的Web界面和API。 

支持多种数据格式和协议:VictoriaMetrics支持多种时序数据格式和协议,如Prometheus、Graphite、InfluxDB等,可以轻松地与其他监控系统集成。 

开源免费:VictoriaMetrics是一个开源项目,可以免费使用和修改。 

总之,VictoriaMetrics是一个快速、可靠、易于部署和管理的时序数据库和监控系统,适用于各种规模的时序数据存储和查询。

二、二进制文件部署:
从github下载二进制文件(https://github.com/VictoriaMetrics/VictoriaMetrics):
    wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.110.4/victoria-metrics-linux-amd64-v1.110.4.tar.gz
    tar xzf victoria-metrics-*.tar.gz
    mv victoria-metrics-prod usr/local/bin/

    服务启动配置

    创建systemd服务文件/etc/systemd/system/vm.service:

      [Unit]
      Description=VictoriaMetrics Time Series Database
      After=network.target
      [Service]
      ExecStart=/usr/bin/victoria-metrics-prod \
        -storageDataPath=/var/lib/victoriametrics \
        -retentionPeriod=12 \
        -httpListenAddr=:8428
      Restart=always
      User=vmuser
      [Install]
      WantedBy=multi-user.target
      执行systemctl daemon-reload && systemctl start vm启动服务。

      三、集群模式部署要点

      节点角色划分

      vminsert:数据写入节点(可水平扩展)

      vmselect:查询处理节点(支持负载均衡)

      vmstorage:数据存储节点(建议3节点起)

      配置示例(vmstorage节点)

        nohup ./vmstorage-prod -loggerTimezone Asia/Shanghai -storageDataPath ./vmstorage-data -httpListenAddr :8482 -vminsertAddr :8400 -vmselectAddr :8401 &> vmstor.log &
        nohup ./vmstorage-prod -loggerTimezone Asia/Shanghai -storageDataPath ./1vmstorage-data -httpListenAddr :18482 -vminsertAddr :18400 -vmselectAddr :18401 &> 1vmstor.log &
        nohup ./vmstorage-prod -loggerTimezone Asia/Shanghai -storageDataPath ./2vmstorage-data -httpListenAddr :28482 -vminsertAddr :28400 -vmselectAddr :28401 &> 2vmstor.log &

        或使用如下脚本:

          #!/bin/bash    


          for i in `seq 0 2`; do  
              if [ $i -eq 0 ]; then
                  i=""   
              fi         


              pp=$i      


              httpListenAddr=${pp}8482
              vminsertAddr=${pp}8400
              vmselectAddr=${pp}8401
              storageDataPath=./${pp}vmstorage-data


              prog="nohup ./vmstorage-prod -loggerTimezone Asia/Shanghai \
                  -storageDataPath $storageDataPath \
                  -httpListenAddr :$httpListenAddr \
                  -vminsertAddr :$vminsertAddr \
                  -vmselectAddr :$vmselectAddr \
                  &> ${pp}vmstor.log &"


              echo $prog 
              (exec "$prog")                                                                                                                   
          done

          启动一个 vminsert 实例:

            nohup ./vminsert-prod -httpListenAddr :8480 -storageNode=127.0.0.1:8400,127.0.0.1:18400,127.0.0.1:28400 &>vminsert.log &

            启动一个 vmselect 实例:

              nohup ./vmselect-prod -httpListenAddr :8481 -storageNode=127.0.0.1:8401,127.0.0.1:18401,127.0.0.1:28401 &>vmselect.log &

              查看 vmstorage,vminsert,vmselect 的 /metrics 接口:

                curl http://127.0.0.1:8482/metrics 
                curl http://127.0.0.1:18482/metrics 
                curl http://127.0.0.1:28482/metrics 
                curl http://127.0.0.1:8481/metrics 
                curl http://127.0.0.1:8480/metrics 

                负载均衡配置

                使用Nginx反向代理vmselect节点

                配置Prometheus的remote_write指向vminsert集群VIP

                四、配置优化建议

                数据存储

                设置-storageDataPath独立磁盘分区

                启用-snapshotAuthKey保护快照操作

                调整-memory.allowedPercent限制内存使用率

                -retentionPeriod:数据的保留时间。历史的数据会被自动清理删除。默认的保留时间是 1 个月。最小的保留时间是 1 天(即 24 小时)

                查询优化

                配置-search.maxQueryDuration防止长查询拖垮系统

                启用-search.trackDoneQueries分析慢查询

                五、运维管理操作

                数据备份恢复

                  # 创建快照
                  curl http://localhost:8428/snapshot/create
                  # 使用vmbackup工具
                  vmbackup -storageDataPath=/var/lib/victoriametrics -dst=gs://backup-bucket/

                  六、故障排查指南

                  常见问题处理

                  启动失败:检查-storageDataPath目录权限(需vmuser用户可写)

                  查询超时:检查-search.maxSeries参数是否过小

                  磁盘爆满:设置-retentionPeriod自动淘汰旧数据

                  监控指标采集

                  建议通过内置的/metrics接口采集:

                  vm_ingested_samples_total 写入速率

                  vm_free_disk_space_bytes 磁盘使用量

                  vm_cache_entries{type="indexdb"} 索引缓存状态

                  VictoriaMetrics 架构设计上更倾向于简单可靠,重点优化了单机版的性能,强调垂直扩展,同时和 prometheus 生态做到兼容,甚至于在很多的点上做到了加强。但是 VictoriaMetrics 对于时序数据 downsample,节点的自动扩缩容,数据自动再平衡等高级功能和分布式能力,是有缺失的

                  文章转载自老柴杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论