本文来自Rancher Labs

Prometheus是CNCF中已经毕业的项目之一,主要用于监控和告警。在Kubernetes生态中,它是应用最为广泛的监控和告警工具之一。Rancher用户可以通过使用内置的监控堆栈来快速利用Prometheus。

Prometheus将其指标(metrics)作为时序数据库存储在本地磁盘上,因此Prometheus的本地存储会受到磁盘大小以及所能保留的指标数量的制约。但是,Prometheus允许与远程系统集成,通过_remotewrite和_remoteread指令读写指标,同时它还支持大量远程端点和存储集成

联邦可以实现可扩展的Prometheus监控设置,或者将相关的指标从一个服务的Prometheus拉取到另一个Prometheus中。

在本文中,我们将探索一个快速和简单的方式来设置Rancher监控远程端点与Thanos receive的集成。Thanos是一个开源的、高可用的Prometheus设置,有长期指标存储功能。你可以使用这个解决方案在所有的Prometheus实例中实现联邦指标,并允许中央Grafana dashboard在Thanos上运行。

重要提醒:作为指标联邦的一部分,项目/集群指标将不在Rancher管理平面内。此外,集群管理员必须确保建立适当的访问控制机制,以限制对该指标存储的访问。

安装Thanos

在本篇文章中,我们可以使用kube-thanos在Kubernetes集群上快速设置Thanos。

我们将需要以下Thanos组件:

  • Thanos存储gateway

  • Thanos接收器(receiver)

  • Thanos查询器(querier)

  • 对象存储

该解决方案如下所示:

                 +
Tenant's Premise | Provider Premise
|
| +------------------------+
| | |
| +-------->+ Object Storage |
| | | |
| | +-----------+------------+
| | ^
| | S3 API | S3 API
| | |
| | +-----------+------------+
| | | | Store API
| | | Thanos Store Gateway +<-----------------------+
| | | | |
| | +------------------------+ |
| | |
| +---------------------+ |
| | |
+--------------+ | +-----------+------------+ +---------+--------+
| | | Remote | | Store API | |
| Prometheus +------------->+ Thanos Receiver +<-------------+ Thanos Querier |
| | | Write | | | |
+--------------+ | +------------------------+ +---------+--------+
| ^
| |
+--------------+ | |
| | | PromQL |
| User +----------------------------------------------------------------+
| | |
+--------------+ |
+

来源:Thanos receive proposal

Thanos支持若干对象存储配置。我们将使用MinIO作为我们的对象存储。你需要在名为thanos-objectStorage的secret中定义对象存储,它需要在你的Thanos deployment命名空间中。

thanos-config.yaml如下所示:

type: s3
config:
bucket: thanos
endpoint: ${minio-endpoint}
access_key: ${minio-access-key}
secret_key: ${minio-secret-key}
insecure: true

你可以按照以下方式创建secret:

kubectl create secret generic thanos-objectstorage --from-file=thanos.yaml="$PATH_TO_CONFIG"/thanos-config.yaml

配置Rancher监控

与Rancher监控operator打包的Prometheus版本已经支持remote_readremote_write集成。

Thanos receive endpoint的额外设置可以通过高级选项传递,如下所示:

我们需要按照Prometheus remote_write规范的要求,指定一个唯一的名字。

# The name will be used in metrics and logging in place of a generated value to help users distinguish between
# remote write configs.
[ name: <string> ]

你完成了监控的部署之后,你应该可以使用Thanos查询器查看你的指标。

已存储的指标也将在对象存储中获取。

由于所有的集群指标在这个Thanos安装中都是可用的,所以工作负载的所有者需要确保对工作负载和指标的访问是安全的。

总 结

使用Rancher监控(即Prometheus)和Thanos接收器中的远程读写功能,你可以通过几个简单的步骤就能够实现长期指标存储和多个集群指标的全局视图。

使用Thanos实现Prometheus指标联邦的更多相关文章

  1. 使用thanos管理Prometheus持久化数据

    关于thanos的介绍可以参考这篇官方博客的翻译文档,本文不作部署操作介绍.下图是thanos的官方架构图,主要有5个组件: Query:可以近似看作是Prometheus的实现,用于采集其他组件的数 ...

  2. Prometheus指标采集常用配置

    一.node-exporter配置textfile收集器 textfile收集器作用: 运行暴露自定义指标.例如,需要在某个被监控节点上添加一个地理位置的指标. node-exporter会自动启动t ...

  3. 详细教程丨使用Prometheus和Thanos进行高可用K8S监控

    本文转自Rancher Labs 介 绍 Prometheus高可用的必要性 在过去的几年里,Kubernetes的采用量增长了数倍.很明显,Kubernetes是容器编排的不二选择.与此同时,Pro ...

  4. Kubernetes 监控--Prometheus 高可用: Thanos

    前面我们已经学习了 Prometheus 的使用,了解了基本的 PromQL 语句以及结合 Grafana 来进行监控图表展示,通过 AlertManager 来进行报警,这些工具结合起来已经可以帮助 ...

  5. Prometheus联邦

    联邦使得一个 Prometheus 服务器可以从另一个 Prometheus 服务器提取选定的时序. 1. 使用场景 Prometheus 联邦有不同的使用场景.通常,联邦被用来实现可扩展的 Prom ...

  6. Kubernetes 监控:Prometheus Adpater =》自定义指标扩缩容

    使用 Kubernetes 进行容器编排的主要优点之一是,它可以非常轻松地对我们的应用程序进行水平扩展.Pod 水平自动缩放(HPA)可以根据 CPU 和内存使用量来扩展应用,前面讲解的 HPA 章节 ...

  7. Prometheus Operator 对接 Thanos

    文章转载自:https://jishuin.proginn.com/p/763bfbd56ae4 使用 Prometheus Operator 来进行监控,在 Prometheus 高可用的章节中也手 ...

  8. Kubernetes 监控:Prometheus Operator + Thanos ---实践篇

    具体参考网址:https://www.cnblogs.com/sanduzxcvbnm/p/16291296.html 本章用到的yaml文件地址:https://files.cnblogs.com/ ...

  9. 《为什么说 Prometheus 是足以取代 Zabbix 的监控神器?》

    为什么说 Prometheus 是足以取代 Zabbix 的监控神器?   Kuberneteschina 致力于提供最权威的 Kubernetes 技术.案例与Meetup! ​关注他 12 人赞同 ...

随机推荐

  1. 本地yum源及更新

    创建本地yumrepo源 概述 在生产环境中,由于网络环境隔离,很多内网机器,无法直接通过网络下载安装相关软件包,所以这个时候就需要在内网搭建一个yum源,然后通过下载将需要的软件包rpm下载下来,然 ...

  2. 基于领域驱动设计(DDD)超轻量级快速开发架构(二)动态linq查询的实现方式

    -之动态查询,查询逻辑封装复用 基于领域驱动设计(DDD)超轻量级快速开发架构详细介绍请看 https://www.cnblogs.com/neozhu/p/13174234.html 需求 配合Ea ...

  3. git提交时报错:Updates were rejected because the tip of your current branch is behind

    有如下3种解决方法: 1.使用强制push的方法:git push -u origin master -f这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候. 2.push前先将远程rep ...

  4. elk4

    传统问题: 微服务系统下服务器数量过大,如果还在使用依次登录每台机器的传统方法查询日志,这样效率非常低下.ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写 ...

  5. mysql 出现You can't specify target table for update in FROM clause错误的解决方法

    mysql出现You can’t specify target table for update in FROM clause 这个错误的意思是不能在同一个sql语句中,先select同一个表的某些值 ...

  6. disruptor架构四 多生产者多消费者执行

    1.首先介绍下那个时候使用RingBuffer,那个时候使用disruptor ringBuffer比较适合场景比较简单的业务,disruptor比较适合场景较为复杂的业务,很多复杂的结果必须使用di ...

  7. Appium移动端自动化测试--搭建模拟器和真机测试环境

    详细介绍安装Android Studio及Android SDK.安装Appium Server. 文章目录如下 目录 文章目录如下 模拟器--安装Android Studio及Android SDK ...

  8. Synchronized锁的是什么?

    Synchronized锁的是什么? 临界区与锁 并发编程中不可避免的会出现多个线程共享同一个资源的情况,为了防止出现数据不一致情况的发生,人们引入了临界区的概念.临界区是一个用来访问共享资源的代码块 ...

  9. 免费馅饼——移动dp

    免费馅饼 题目描述 SERKOI最新推出了一种叫做"免费馅饼"的游戏: 游戏在一个舞台上进行.舞台的宽度为 \(W\) 格,天幕的高度为 \(H\) 格,游戏者占一格. 开始时游戏 ...

  10. Python-读取文件的大小

    1.python读取文件以及文件夹的大小 1. os.path.getsize(file_path):file_path为文件路径 import os os.path.getsize('d:/svn/ ...