首页 > 其他分享 >prometheus学习笔记之prometheus存储系统

prometheus学习笔记之prometheus存储系统

时间:2024-09-26 12:51:28浏览次数:9  
标签:vmstorage -- 存储系统 笔记 victoria prometheus systemctl root

一、prometheus本地存储系统

1.本地存储架构

prometheus学习笔记之prometheus存储系统_vim

默认情况下, prometheus 将采集到的数据存储在本地的 TSDB 数据库中, 路径默认为 prometheus 安装目录的 data 目录, 数据写入过程为先把数据写入 wal 日志并放在内存, 然后 2 小时后将内存数据保存至一个
新的 block 块, 同时再把新采集的数据写入内存并在 2 小时后再保存至一个新的 block 块, 以此类推。

prometheus学习笔记之prometheus存储系统_vim_02

2. block简介

每个 block 为一个 data 目录中以 01 开头的存储目录, 如下:
[root@k8s-master prometheus]# ll /data/prometheus/
total 9
drwxr-xr-x 3 root root    68 Sep 24 07:00 01J8GHT1AQ6CA1V206XYHYECWT
drwxr-xr-x 3 root root    68 Sep 24 11:00 01J8GZHF3N69JKR6AAG8H84RT7
drwxr-xr-x 3 root root    68 Sep 24 13:00 01J8H6D6BJHK2V77BH7A70R3WS
drwxr-xr-x 3 root root    68 Sep 24 13:00 01J8H6D6F09Y4XZ4A4JQ652STX
drwxr-xr-x 3 root root    68 Sep 24 15:00 01J8HD8XKHBFVB768R40NAY9F0
drwxr-xr-x 2 root root    48 Sep 24 16:00 chunks_head
-rw-r--r-- 1 root root     0 Sep 24 15:41 lock
-rw-r--r-- 1 root root 20001 Sep 24 16:31 queries.active
drwxr-xr-x 3 root root  4096 Sep 24 15:41 wal

prometheus学习笔记之prometheus存储系统_数据源_03

3.block 的特性

block 会压缩、 合并历史数据块, 以及删除过期的块, 随着压缩、 合并, block 的数量会减少, 在压缩过程中会发生三件事: 定期执行压缩、 合并小的 block 到大的 block、 清理过期的块。

每个块有 4 部分组成,如下:

tree 01J8GHT1AQ6CA1V206XYHYECWT
01J8GHT1AQ6CA1V206XYHYECWT
├── chunks
│   └── 000001 #数据目录,每个大小为 512MB 超过会被切分为多个
├── index      #索引文件, 记录存储的数据的索引信息, 通过文件内的几个表来查找时序数据
├── meta.json  #block 元数据信息, 包含了样本数、 采集数据数据的起始时间、 压缩历史
└── tombstones #逻辑数据, 主要记载删除记录和标记要删除的内容, 删除标记, 可在查询块时排除样本

4.本地存储配置参数

--config.file="prometheus.yml" #指定配置文件
--web.listen-address="0.0.0.0:9090" #指定监听地址
--storage.tsdb.path="data/" #指定数存储目录
--storage.tsdb.retention.size=B, KB, MB, GB, TB, PB, EB #指定 chunk 大小, 默认 512MB
--storage.tsdb.retention.time= #数据保存时长, 默认 15 天
--query.timeout=2m #最大查询超时时间
-query.max-concurrency=20 #最大查询并发数
--web.read-timeout=5m #最大空闲超时时间
--web.max-connections=512 #最大并发连接数
--web.enable-lifecycle #启用 API 动态加载配置功能

二、远端存储之victoriametrics(单机)

项目地址:https://github.com/VictoriaMetrics/VictoriaMetrics

官方文档:https://docs.victoriametrics.com/single-server-victoriametrics/

1.单机部署victoriametrics

wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.88.0/victoria-metrics-linux-amd64-v1.88.0.tar.gz
tar xf victoria-metrics-linux-amd64-v1.88.0.tar.gz
mv victoria-metrics-prod /usr/bin/
victoria-metrics-prod -h

vim /etc/systemd/system/victoria-metrics.service
[Unit]
Description=For Victoria-metrics Service
After=network.target
[Service]
ExecStart=/usr/bin/victoria-metrics-prod -httpListenAddr=0.0.0.0:8428 -storageDataPath=/data/victoria -retentionPeriod=3 #保留3个月 如果不写单位则为m(月)
[Install]
WantedBy=multi-user.targ

#启动参数简介
-httpListenAddr=0.0.0.0:8428 #监听地址及端口
-storageDataPath #VictoriaMetrics 将所有数据存储在此目录中, 默认为执行启动 victoria 的当前目录下的 victoria-metrics-data 目录中。
-retentionPeriod #存储数据的保留, 较旧的数据会自动删除, 默认保留期为 1 个月, 默认单位为 m(月),支持的单位有 h (hour), d (day), w (week), y (year)


systemctl daemon-reload && systemctl restart victoria-metrics.service
systemctl status victoria-metrics.service

web端验证

prometheus学习笔记之prometheus存储系统_vim_04

2.配置prometheus写入 victoriametrics

参考文档:https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write

vim prometheus.yml
#只添加该2行即可,其他参考文档按实际需要添加
remote_write:
  - url: http://192.168.100.135:8428/api/v1/write 

systemctl restart prometheus

3.web端验证

访问victoriametrics UI界面

prometheus学习笔记之prometheus存储系统_vim_05

prometheus学习笔记之prometheus存储系统_数据源_06

可以看到 victoriametrics已经可以看到,并可以查询(语法与PQL一致)

4.配置grafana读取victoriametrics

添加数据源,类型依然为prometheus

prometheus学习笔记之prometheus存储系统_数据_07

配置连接信息

prometheus学习笔记之prometheus存储系统_vim_08

保存并测试连接

prometheus学习笔记之prometheus存储系统_数据源_09

创建dashboard,导入ID为1860的模板

prometheus学习笔记之prometheus存储系统_数据源_10

prometheus学习笔记之prometheus存储系统_数据_11

如图,dashboard可以正常展示 

三、远端存储之victoriametrics(集群)

1.集群组件简介

必须组件:
1.vminsert #写入组件(写), vminsert 负责接收数据写入并根据对度量名称及其所有标签的一致 hash 结果将数据分散写入不同的后端 vmstorage 节点之间 vmstorage, vminsert 默认端口 8480
2.vmstorage #(存)存储原始数据并返回给定时间范围内给定标签过滤器的查询数据, 默认端口 8482
3.vmselect #查询组件(读), 连接 vmstorage , 默认端口 8481

其它可选组件:
1.vmagent #是一个很小但功能强大的代理, 它可以从 node_exporter 各种来源收集度量数据, 并将它们存储在 VictoriaMetrics 或任何其他支持远程写入协议的与 prometheus 兼容的存储系统中, 有替代prometheus server 的意向
2.vmalert: 替换 prometheus server, 以 VictoriaMetrics 为数据源, 基于兼容 prometheus 的告警规则, 判断数据是否异常, 并将产生的通知发送给 alertermanager
3.Vmgateway: 读写 VictoriaMetrics 数据的代理网关, 可实现限速和访问控制等功能, 目前为企业版组件
4.vmctl: VictoriaMetrics 的命令行工具, 目前主要用于将 prometheus、 opentsdb 等数据源的数据迁移到VictoriaMetrics。

2.部署vmstorage 

#清理上一步的操作,避免对后面的实验产生影响
#集群需要先安装vmstorage ,应为vmstorage 被其他两个组件依赖
#在集群中每台服务器上都执行以下操作  当前集群机器为 100.131 100.132 100.133

wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.88.0/victoria-metrics-linux-amd64-v1.88.0-cluster.tar.gz  #注意下载的为cluster版本
tar xf victoria-metrics-linux-amd64-v1.88.0-cluster.tar.gz
mv vm* /usr/bin/


vim /etc/systemd/system/vmstorage.service
[Unit]
Description=Vmstorage Server
After=network.target
[Service]
Restart=on-failure
WorkingDirectory=/tmp
ExecStart=/usr/bin/vmstorage-prod -loggerTimezone Asia/Shanghai -storageDataPath /data/vmstorage-data -httpListenAddr :8482 -vminsertAddr :8400 -vmselectAddr :8401
[Install]
WantedBy=multi-user.target

#启动参数介绍
-httpListenAddr vmstorage web页面监听端口-vminsertAddr vminsert服务写入时连接的端口-vmselectAddr vmselect服务查询时连接的端口

systemctl restart vmstorage.service && systemctl enable vmstorage.service && systemctl status vmstorage.service
netstat -tnlp

3.部署vminsert组件

vim /etc/systemd/system/vminsert.service
[Unit]
Description=Vminsert Server
After=network.target
[Service]
Restart=on-failure
WorkingDirectory=/tmp
ExecStart=/usr/bin/vminsert-prod -httpListenAddr :8480 -storageNode=192.168.100.131:8400,192.168.100.132:8400,192.168.100.133:8400 #注意该值为vmstorage节点的vmimsertAddr参数指定的端口
[Install]
WantedBy=multi-user.target


systemctl daemon-reload && systemctl restart vminsert && systemctl enable vminsert && systemctl status vminsert
netstat -tnlp

4.部署 vmselect组件

vim /etc/systemd/system/vmselect.service
[Unit]
Description=Vminsert Server
After=network.target
[Service]
Restart=on-failure
WorkingDirectory=/tmp
ExecStart=/usr/bin/vmselect-prod -httpListenAddr :8481 -storageNode=192.168.100.131:8401,192.168.100.132:8401,192.168.100.133:8401 #注意该值为vmstorage节点的vmselectAddr参数指定的端口
[Install]
WantedBy=multi-user.target

systemctl daemon-reload && systemctl restart vmselect && systemctl enable vmselect && systemctl status vmselect
netstat -tnlp

5.配置prometheu远程写入

#仅在prometheus或联邦中prometheus 中心server上配置

vim prometheus.yml
remote_write:
  - url: http://192.168.100.131:8480/insert/0/prometheus   #vminsert服务监听端口 /insert 为固定路径  /0/prometheus为自定义路径,其中/0的值不能为字符串
  - url: http://192.168.100.132:8480/insert/0/prometheus
  - url: http://192.168.100.133:8480/insert/0/prometheus

curl -X POST http://127.0.0.1:9090/-/reload

5.配置grafana 数据源及dashboard

数据源类型prometheus

prometheus学习笔记之prometheus存储系统_数据源_12

prometheus学习笔记之prometheus存储系统_vim_13

确保测试通过

prometheus学习笔记之prometheus存储系统_数据_14

导入1860模板查看数据

prometheus学习笔记之prometheus存储系统_数据_15

查看数据

prometheus学习笔记之prometheus存储系统_数据源_16

 

 

"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少



标签:vmstorage,--,存储系统,笔记,victoria,prometheus,systemctl,root
From: https://blog.51cto.com/u_8901540/12118334

相关文章

  • 【GiraKoo】PowerShell美化笔记
    【GiraKoo】PowerShell美化笔记oh-my-poshinitpwsh--config"$env:POSH_THEMES_PATH/powerlevel10k_lean.omp.json"|Invoke-Expression#-------------------------------ps-read-line-------------------------------#引入ps-read-lineImport-ModulePSReadLi......
  • LDAP学习笔记之五:LDAP客户端实现系统帐号验证
    一、创建LDAP认证用户及权限1.控制台修改密码的存储格式(因为从NIS迁移来的账号密码是cyrpt,ldap默认SSHA格式)2.控制台创建一个用户,并给该用户指定ACI权限,用于linux客户端连接ldapserver(默认使用匿名用户)3.给client-root用户添加权限  设置ACI名称及选择需要绑定的用户取消默......
  • LDAP学习笔记之八:openLDAP sudo权限
    一、openLDAPsudo权限常见属性sudoCommand:可执行的二进制命令,如useradd、userdel、mount、umount等。sudoHost:可在哪些机器上执行sudoCommand定义的BASH命令。sudoNotAfter:起始时间sudo规则匹配。sudoNotBefore:结束时间sudo规则匹配。sudoOption:定义超过自身权限及切换至......
  • 笔记--(2)Linux基础命令(2)
    一、cat-查看文件内容命令cat[选项]文件名#查看1这个文件的内容[root@localhost~]#cat1hello#//输出结果为hello二、压缩文件命令1、gzip命令2、bzip2命令#用gzip压缩文件gzip文件名#用gzip解压文件gzip-dgzip格式的压缩文件#用bzip2压缩文件bz......
  • Windows使用使用旧版有道云客户端导出所有笔记
    使用旧版有道云笔记客户端导出所有笔记最近在复习之前的笔记,边复习边整理,准备把之前在有道云笔记的文档全部整理导出,原因你懂得(有道云笔记是越做越烂了!!!),有道云笔记新版本的客户端不支持导出所有笔记。依稀记得老版本好像是支持全部导出的,我找到了2年前保存的旧版本的客户......
  • 子集反演 & sos dp 学习笔记
    子集反演&sosdp学习笔记子集反演设\(g(S)\)表示集合\(S\)的答案,\(f(S)\)为\(S\)的子集的答案和。根据定义:\[f(S)=\sum_{T\inS}g(T)\]子集反演就是:\[g(S)=\sum_{T\inS}(-1)^{|S|-|T|}f(T)\]本质上就是容斥原理,可感性理解,证明略(给你你也记不住)。于是便可以通......
  • 2024.9 做题笔记
    CF1575IIllusionsoftheDesert看这个边权这么复杂,猜测其必然有一些性质。对\(a_u,a_v\)的正负分讨易得\(\max(|a_u+a_v|,|a_u-a_v|)=|a_u|+|a_v|\),树剖树状数组单点修改链求和即可。ABC177FIhateShortestPathProblem考虑dp,设\(f_{i,j}\)表示到达第\(i\)行第\(......
  • 备战软考04——存储系统
    9:019月25日周三2.计算机组成与结构.pdf3存储系统文老师软考教育CPU内部通用寄存器Cache主存储器联机磁盘存储器脱机光盘、磁盘存储器◆计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。◆两级存储:Cache-主存、主存-辅存(虚拟存储体系)◆局部性......
  • ZooKeeper 学习笔记
    概述ZooKeeper是一个分布式协调服务,其设计初衷是为分布式软件提供一致性服务。ZooKeeper提供了一个类似Linux文件系统的树形结构,ZooKeeper的每个节点既可以是目录,也可以是数据,同时ZooKeeper提供了对每个节点的监控与通知机制。基于ZooKeeper的一致性服务,可以方便地实现......
  • 文献阅读笔记|合成医学图像数据综述|Generating Synthetic Data for Medical Imaging
    论文链接:https://doi.org/10.1148/radiol.232471论文信息:GeneratingSyntheticDataforMedicalImaging,综述,2023年9月14日投稿,2024年3月1日接收,2024年9月10日发表于Radiology蓝色字体标注对我而言的新知识目录绪论需求决定合成数据的应用合成数据应具备的特点合成图像的应用1......