Monitor Prometheus 容量存储

Prometheus 的缺点 : 单机存储不好扩展

Prometheus 单机容量上限 : 每秒接收 80 万个数据点

  • 当每台机器的每个周期采集 200 个系统级指标。若采集频率是 10 秒,平均每秒上报 20 个数据点,就能同时监控 4 万台
  • 800000 / 20 = 40000

联邦机制

联邦机制 : Prometheus 内置的集群方式,Prometheus 数据的能通过级联抓取

联邦机制的中心端的 Prometheus 只会抓取做聚合计算或关注的指标,大部分数据都在各 Prometheus 内部

image.png

中心 Prometheus 的抓取规则 :

  • metrics_path : 从 Prometheus 在 /federate 接口暴露监控数据
  • honor_labels=true : 标签重复时,以源数据的标签为准
  • 过滤条件中的正则匹配 : 过滤所有 aggr: 的指标
scrape_configs:
  - job_name: 'federate'
    scrape_interval: 30s
    honor_labels: true
    metrics_path: '/federate'
    params:
      'match[]':
        - '{__name__=~"aggr:.*"}'
    static_configs:
      - targets:
        - '10.1.2.3:9090'
        - '10.1.2.4:9090'

远程存储

Prometheus 建立了统一的 Remote Read、Remote Write 接口协议

  • 只要实现该接口协议的时序库都能对接进来
  • 远程存储 : VictoriaMetrics , Thanos

VictoriaMetrics

VM : 作时序库,核心组件 :

  • vmstorage : 存储时序数据
  • vminsert : 接收时序数据并写入到后端的 vmstorage,用 Remote Write 对接 vminsert 的地址
  • vmselect : 查询时序数据,没有实现 Remote Read 接口,而实现了 Prometheus 的 Querier 接口

image.png

扫描二维码关注公众号,回复: 14862920 查看本文章
  • n9e-webapi 通过负载均衡 , 向 vmselect 水平查询时序数据
  • n9e-server 通过 Remote Write 协议 , 写数据到 vminsert 的负载均衡
  • vmstorage : 存储模块,能组成集群

VM 采用 merge read 方案读取数据 :

  • 过程 : 查询请求发给 vmselect 后,vmselect 向所有 vmstorage 发起查询请求,再合并结果 , 并返回给前端
  • 缺点 : vmstorage 不能过大 , 10-20 台就够了

Prometheus 集群

三个 Prometheus 进程

  • 两个作存储
  • 一个作查询器,Remote Read 读取后端多个 Prometheus 的数据

image.png

配置实现 :

remote_read:
  - url: "http://prometheus01:9090/api/v1/read"
    read_recent: true
  - url: "http://prometheus02:9090/api/v1/read"
    read_recent: true

猜你喜欢

转载自blog.csdn.net/qq_44226094/article/details/130139758