Prometheus 多租写入 Thanos Receiver 配置

本文详细介绍了如何通过分片部署多个Prometheus实例,配合Thanos接收器和查询器,实现数据的高效聚合查询。通过实例展示如何配置Prometheus、ThanosReceiver和ThanosQuery,以及如何根据租户信息实现数据负载均衡,以增强监控系统的扩展性和性能。

背景描述

当采集指标过多时,超过单个 prometheus 的处理能力,我们通常会采用多个 prometheus 实例分别采集一定的指标分片,然后通过 thanos 做聚合,对外提供统一查询服务。

本文通过简单的实验,演示 thanos 的分片数据采集与聚合查询能力,架构如下:
在这里插入图片描述

实验假设存在两个 prometheus 实例,分别采集不同的监控指标分片,prometheus 实例均通过 remote write 方式将数据写入 thanos receiver。receiver 采用多副本方式运行,并通过 hashring 方式实现将不同租户的数据写入不同的 receiver 实例,即 receiver 01 和 receiver 02 存储来自 prometheus foo 的监控指标数据,而 receiver 03 和 receiver 04 存储来自 prometheus bar 的监控指标数据,最后通过 thanos query 聚合多个 receiver 的数据,提供统一查询接口。

实验验证

本文基于 docker 方式启动 prometheus 以及 thanos,需要在机器上预装 docker。 Ubuntu 或 CentOS 环境,可以通过如下命令一件安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

1. 部署 Prometheus 实例

# cat << EOF > prometheus-foo-conf.yaml
global:
 scrape_interval: 5s
 external_labels:
   cluster: foo
   replica: 0

scrape_configs:
 - job_name: 'prometheus'
   static_configs:
     - targets: ['127.0.0.1:9090']

remote_write:
- url: 'http://127.0.0.1:10908/api/v1/receive'
  headers:
   THANOS-TENANT: foo
EOF
# docker run -d --net=host --rm \
    -v $(pwd)/prometheus-foo-conf.yaml:/etc/prometheus/prometheus.yaml \
    -u root \
    --name prometheus-foo \
    quay.io/prometheus/prometh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值