10-2 Prometheus本地存储机制,单机远端存储

2023-05-16

文章目录

  • 前言
  • 本地存储机制
  • 存储块block
    • block文件
    • block特性
  • 本地存储
  • 远端存储
    • 单机部署Victoria metrics
    • Prometheus配置
    • Grafana模板

前言

Prometheus有着非常高效的时间序列数据存储方法,每个采样数据仅仅占用3.5byte左右空间,上百万条时间序列,30 秒间隔,保留 60 天,大概 200 多G空间。所以Prometheus非常省空间,存储机制高效快捷,和其它组件构成Prometheus系统。

在这里插入图片描述

Prometheus架构图


本地存储机制

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

  • TSDB:时间序列数据库(Time Series Database),按照时间顺序记录信息的数据库。
  • WAL:预写日志算法(Write-Ahead Logging),在修改数据库之前,先把操作日志保存。

存储块block

Prometheus每两小时将内存数据持久化保存到硬盘上,每个Block实际上是一个目录,里面包含着多个文件。

block文件

列出Prometheus存储路径,01开头的目录就是一个Block:

ll /apps/prometheus/data

drwxr-xr-x. 3 root root  68 111 19:00 01GGSDJQC8MK05KW9R4Z46T9B5
drwxr-xr-x. 3 root root  68 111 19:00 01GGSDJQJKZYVM3X6PG5FK3N51
drwxr-xr-x. 3 root root  68 111 19:00 01GGSDJRQ4X7MMC1W17MAP5SVB

列出一个Block目录,里面包含1个目录,3个文件:

ll 01GGSDJRQ4X7MMC1W17MAP5SVB

drwxr-xr-x. 2 root root   20 111 19:00 chunks
-rw-r--r--. 1 root root 3.1M 111 19:00 index
-rw-r--r--. 1 root root  736 111 19:00 meta.json
-rw-r--r--. 1 root root    9 111 19:00 tombstones
名称内容
chunks目录,内含数据块文件,每个数据块最大512M,超过大小将切分多块。
index索引文件,记录存储的数据的索引信息,通过文件内的几个表来查找时序数据
meta.json元数据信息,包含了样本数、采集数据数据的起始时间、压缩历史
tombstones逻辑数据,主要记载删除记录和标记要删除的内容,删除标记,可在查询块时排除样本。

block特性

block具有3大特性,使得block的数量不断减少,节省磁盘空间。

  1. 压缩:定期执行压缩
  2. 合并:合并小的历史数据块到大的block
  3. 清理:删除过期的块

本地存储

运行Prometheus程序时,可以带上很多参数,下面介绍一下跟存储相关的参数:

# 查看全部可用参数
/apps/prometheus/prometheus --help

--help                     Show context-sensitive help (also try --help-long and --help-man).
--version                  Show application version.
...						   ...
...						   ...
参数含义
–config.fileprometheus.yml配置文件路径
–web.listen-address0.0.0.0:9090监听地址与端口
–storage.tsdb.pathdata/存储路径
–storage.tsdb.retention.size512MB数据块最大值
–storage.tsdb.retention.time15数据保留天数
–query.timeout2m查询超时时间
-query.max-concurrency20最大查询并发数
–web.read-timeout5m空闲超时时间
–web.max-connections512最大并发连接数
–web.enable-lifecycle添加参数即可支持热加载

远端存储

面对更多历史数据的持久化,Prometheus 单纯依靠本地存储远不足以应对,为此引入了远端存储。

Victoria metrics是一个快速的低消耗的,可扩展的监控解决方案和时间序列数据库。

Victoria metrics部署分单机版与集群版,本节我们介绍单机版。

单机部署Victoria metrics

下载二进制文件

# VictoriaMetrics v1.82.0
wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.82.0/victoria-metrics-linux-amd64-v1.82.0.tar.gz

# 解压并移动到bin目录
tar zxvf victoria-metrics-linux-amd64-v1.82.0.tar.gz
mv victoria-metrics-prod /usr/local/bin

创建victoria-metrics服务文件

vim /etc/systemd/system/victoria-metrics-prod.service

[Unit]
Description=For Victoria-metrics-prod Service
After=network.target

[Service]
ExecStart=/usr/local/bin/victoria-metrics-prod \
-httpListenAddr=0.0.0.0:8428 \
-storageDataPath=/data/victoria-metrics-data \
-retentionPeriod=1y

[Install]
WantedBy=multi-user.target
参数含义
httpListenAddr监听端口
storageDataPath数据目录
retentionPeriod保留1年

启动victoria-metrics-prod服务,查看端口,默认为8428

systemctl daemon-reload
systemctl enable --now victoria-metrics-prod.service
systemctl status victoria-metrics-prod.service

netstat -lntp | grep victoria
tcp        0      0 0.0.0.0:8428            0.0.0.0:*               LISTEN      940/victoria-metric

打开首页,发现有多个链接,点击vmui进入图形化界面:

在这里插入图片描述

Prometheus配置

转到Prometheus服务器,在配置文件关联到victoria-metrics服务,并重启Prometheus:

vim /apps/prometheus/prometheus.yml

global:
  scrape_interval: 15s
  evaluation_interval: 15s

# 远程写入数据给victoria存储
remote_write: 
  - url: http://192.168.100.197:8428/api/v1/write

victoria-metrics接收到Prometheus数据,可在vmui页面查看,选择其中一个指标查询:

在这里插入图片描述

Grafana模板

添加数据源,类型为Prometheus,URL为victoria-metrics地址端口:

在这里插入图片描述

导入模板,ID为8919:

在这里插入图片描述

选择数据源为刚刚创建的Victoria-Metrics:

在这里插入图片描述

导入完成,即可进入展示页面:

在这里插入图片描述



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

10-2 Prometheus本地存储机制,单机远端存储 的相关文章

随机推荐

  • ROS环境安装与配置

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 实验环境一 ROS话题二 ROS消息三 C 43 43 编码实现小海龟圆周运动 提示 xff1a 以下是本篇文章正文内容 xff
  • solvepnp参数获取

    1 上参数 xff1a solvePnP 具体参数 xff1a objectPoints xff1a 特征点的世界坐标 xff08 3d点 xff09 xff0c 坐标值需为float型 xff0c 不能为double型 xff0c 可以为
  • 磁力计椭球拟合使用篇 IMU 加速度、电子罗盘校准

    磁力计校准椭球拟合使用篇 xff01 xff01 下方蓝色函数链接 xff01 xff01 matlab 椭球拟合函数链接 串口打印磁力计数据 xff0c 可以选择原始数据不进行任何缩放 xff08 前提是各轴向分辨率一致 xff09 sp
  • 数据结构与算法 — 希尔排序 和 快速排序

    目录 一 希尔排序 1 希尔排序的介绍 1 希尔排序的历史背景 2 插入排序的问题 3 希尔排序的做法 4 选择合适的增量 2 希尔排序的实现 3 希尔排序的效率 1 希尔排序的效率 2 Hibbard 增量序列 3 Sedgewick增量
  • MCU与MPU的区别

    CPU xff08 Central Processing Unit xff0c 中央处理器 xff09 发展出来三个分枝 xff0c 一个是DSP xff08 Digital Signal Processing Processor xff0
  • vue 自定义指令

    指令包含有四个生命周期的钩子函数 xff1a 可以局部注册 xff0c 也可以全局注册 注册一个全局自定义指令 96 v focus 96 Vue directive 39 focus 39 当被绑定的元素插入到 DOM 中时 insert
  • Ubuntu16.04下安装编译gcc10.1.0

    我自己这里有 xff0c 不过我要升级一下 xff0c 参考的这个网站 GCC编译器下载和安装教程 xff08 针对Linux发行版 xff09 首先确定一下自己当前使用的linux是否装有编译器 gcc version 可以看到我这里装了
  • Docker指令报错的解决方法:Got permission denied while trying to connect to the Docker daemon socket at unix:/

    安装完docker xff0c 运行指令时 xff0c 出现了以下错误提示 xff1a Got permission denied while trying to connect to the Docker daemon socket at
  • Ubuntu18.04上安装ROS的详细教程

    镜像下载 域名解析 时间同步请点击 阿里巴巴开源镜像站 前言 最近 xff0c 学习了胡老师的 ROS入门21讲 xff0c 在Ubuntu18 04上安装ROS过程中遇到了一些问题 xff0c 解决这些问题耗费了大半天 xff0c 故通过
  • ubuntu apt-get install xxx报错无法下载的解决方法

    镜像下载 域名解析 时间同步请点击 阿里云开源镜像站 由于我使用ubuntu20 04的火狐浏览器时 xff0c 总是播放不了视频 说是要下载Flash xff0c 但是我顺着网址进去 xff0c 发现并没有linux版本的 xff08 也
  • 【xshell连接不上ubuntu】

    如果xshell连不上ubuntu xff0c 不妨讲虚拟机ubuntu的虚拟网络编辑器还原默认设置 虚拟机 xff1e 编辑 xff1e 虚拟网络编辑器 xff1e 更改设置 xff1e 还原默认设置 记得改完连接xshell时别忘了更改
  • Linux系统上QQ闪退的问题

    Linux版本的QQ在登录后会自动退出登录 通过许多博客和多次实践发现 删除配置文件 config里面关于自己qq的文件夹 xff0c 具体命令如下 rm rf config tencent qq 自己的qq号 例如rm rf config
  • Linux离线安装Kafka(超级精简亲测安装)

    一 环境和安装包准备 首先安装jdk环境 xff0c 通过yum一键安装jdk java version 到官网下载离线安装包 zookeeper https zookeeper apache org releases html kafka
  • linux离线安装Mysql(详细步骤,亲测安装)

    链接 https pan baidu com s 1KtlYGHzKXjaXFqHP2easrQ pwd 61 k4u5 提取码 k4u5 复制这段内容后打开百度网盘手机App xff0c 操作更方便哦 tar xvf mysql 5 7
  • 【Linux面试常用问题】会了这些,去工作完全不用担心了

    Linux操作系统 如何统计一个文件占用大小 如何动态的查看日志文件 Tail f filepath 通常使用的查看日志命令是什么 说出几个常用的linux命令 1 你之前在公司使用linux命令做什么 我们公司之前测试系统搭建在linux
  • zabbix一键部署(亲测实用)

    链接 xff1a https pan baidu com s 1 NPKGDkUPktoGhV1DrrF8A pwd 61 g9p1 提取码 xff1a g9p1 下载安装包 xff0c 按照文件里的操作步骤进行部署 xff0c 非常实用
  • Socket编程-应用编程接口(API)--套接字(及其函数介绍)

    文章目录 Socket编程 应用编程接口 xff08 API xff09 套接字 网络程序设计接口 应用编程接口 API 几种典型的应用编程接口 Socket编程 Socket API概述 Socket API 套接字就像一个插销和插座 例
  • 10-1 基于Prometheus联邦收集Node指标数据

    文章目录 前言环境准备安装prometheus安装node exporterPrometheus配置联邦节点1配置联邦节点2配置主节点配置 前言 在生产环境中 xff0c 如果使用一个prometheus的话 xff0c 随着监控数据的持续
  • 横向控制 | 路径信息及可视化

    横向控制 路径信息及可视化 1 全局路径的读取2 局部路径和历史路径的更新3 路径可视化 Github链接 xff1a https github com chanchanchan97 ROS 1 全局路径的读取 waypoint loade
  • 10-2 Prometheus本地存储机制,单机远端存储

    文章目录 前言本地存储机制存储块blockblock文件block特性 本地存储远端存储单机部署Victoria metricsPrometheus配置Grafana模板 前言 Prometheus有着非常高效的时间序列数据存储方法 xff