运维八一 运维八一
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)

运维八一

运维,运维!
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)
  • Devops笔记

  • Kubernetes

  • 运维监控系统

  • go分布式爬虫

  • Linux性能优化

  • 夜莺(nightingale)开源观测平台

    • 夜莺(nightingale)介绍
    • n9e 部署
    • Categraf 采集器部署
    • VictoriaMetrics 时序库部署
      • helm方式
      • 二进制方式
      • FAQ
      • 相关资料
    • 夜莺功能介绍
  • kubernetes-network-policy-recipes

  • 专栏
  • 夜莺(nightingale)开源观测平台
lyndon
2023-05-06
目录

VictoriaMetrics 时序库部署

# helm方式

git clone https://github.com/VictoriaMetrics/helm-charts.git
helm install victoria-metrics vm/victoria-metrics-cluster -f values.yaml -n NAMESPACE
1
2

# 二进制方式

1、 去 vm release (opens new window) 下载编译好的二进制版本,比如我们选择下载 v1.69.0 amd64 (opens new window)。

2、 解压缩后得到:

$ ls -l vm*-prod
-rwxr-xr-x 1 work work 10946416 Nov  8 22:03 vminsert-prod*
-rwxr-xr-x 1 work work 13000624 Nov  8 22:03 vmselect-prod*
-rwxr-xr-x 1 work work 11476736 Nov  8 22:03 vmstorage-prod*
1
2
3
4

3、 启动三个 vmstorage 实例(可以用下面的脚本快速生成不同实例的启动命令)

#!/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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

也可以输入以下命令行启动三个实例:

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 &
1
2
3

4、 启动一个 vminsert 实例:

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

5、 启动一个 vmselect 实例:

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

6、 查看 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 
1
2
3
4
5

7、 n9e-server 通过 remote write 协议写入时序库,VictoriaMetrics 作为时序库的一个选择,其 remote write 接口地址为:http://127.0.0.1:8480/insert/0/prometheus/api/v1/write 把这个地址配置到 server.conf 当中,配置完了重启 n9e-server

# Reader部分修改Url
[Reader]
Url = "http://172.21.0.8:8481/select/0/prometheus"

# Writers部分修改Url
[[Writers]]
Url = "http://172.21.0.8:8480/insert/0/prometheus/api/v1/write"
1
2
3
4
5
6
7

8、 修改 n9e-webapi 的配置文件 ./etc/webapi.conf 如下:

[[Clusters]]
# Prometheus cluster name
Name = "Default"
# Prometheus APIs base url
Prom = "http://127.0.0.1:8481/select/0/prometheus"
1
2
3
4
5

然后,重启 n9e-webapi,这样夜莺就可以查询到 VictoriaMetrics 集群的数据了。

如果您使用的是 VictoriaMetrics 单机版,端口是 8428,故而 Nightingale 的配置文件需要做如下调整:

# server.conf
# Reader部分修改为:
[Reader]
Url = "http://127.0.0.1:8428"

# Writers部分修改为:
[[Writers]]
Url = "http://127.0.0.1:8428/api/v1/write"
# webapi.conf
# Clusters部分修改为:
[[Clusters]]
Name = "Default"
Prom = "http://127.0.0.1:8428"
1
2
3
4
5
6
7
8
9
10
11
12
13

# FAQ

VictoriaMetrics 单机版本如何保障数据的可靠性?

vm 针对磁盘IO有针对性的优化,单机版可以考虑将数据的可靠性保障交给 EBS 等云盘来保证。

VictoriaMetrics 如何评估容量?

参考vm的官方文档 (opens new window)。

VictoriaMetrics 集群版本增加或者删除 vmstorage node 的时候,数据如何再平衡?

vm 不支持扩缩容节点时,对数据进行自动的再平衡。

VictoriaMetrics 的数据大小如何查看?

可以通过 vmstorage 实例暴露的 /metrics 接口来获取到相应的统计数据,譬如:

$ curl http://127.0.0.1:8482/metrics |grep -i data_size
vm_data_size_bytes{type="indexdb"} 609291
vm_data_size_bytes{type="storage/big"} 0
vm_data_size_bytes{type="storage/small"} 8749893
1
2
3
4

vminsert 在将数据写入多个 vmstorage node的时候,是按照什么规则将数据写入到不同的 node 上的?

采用 jump consistent hash 对数据进行分片,写入到相应的 storage node 上。

vmselect 在接到查询请求的时候,如何定位到请求的数据是在哪个 storage node上的?

vmselect 并不知道每个 metrics 对应的数据分布的 storage node,vmselect 会对所有的 storage node 发起查询请求,最后进行数据合并,并返回。

VictoriaMetrics 和 M3db 的对比和选择?

m3db 架构设计上更高级,实现难度高,m3db 在时序数据功能之后,重点解决了自动扩缩容,数据自动平衡等运维难题。但是因此也更复杂,可靠性也更难保证。VictoriaMetrics 架构设计上更倾向于简单可靠,重点优化了单机版的性能,强调垂直扩展,同时和 prometheus 生态做到兼容,甚至于在很多的点上做到了加强。但是 VictoriaMetrics 对于时序数据 downsample,节点的自动扩缩容,数据自动再平衡等高级功能和分布式能力,是有缺失的。

# 相关资料

  • 使用 Docker Compose 快速部署 VictoriaMetrics (opens new window)
  • 使用 Helm Chart 快速在 Kubernetes中部署 VictoriaMetrics (opens new window)
  • 使用 VictoriaMetrics Operator 在 Kubernetes中部署 VictoriaMetrics (opens new window)
上次更新: 2023/05/06, 16:27:35
Categraf 采集器部署
夜莺功能介绍

← Categraf 采集器部署 夜莺功能介绍→

最近更新
01
ctr和crictl显示镜像不一致
03-13
02
alpine镜像集成常用数据库客户端
03-13
03
create-cluster
02-26
更多文章>
Theme by Vdoing | Copyright © 2015-2024 op81.com
苏ICP备18041258号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式