kube-prometheus+kube-thanos

背景

最近在做监控,选择了thanos架构,使用了kube-prometheus+kube-thanos,这里记录一下搭建过程。

原理

在这里插入图片描述
我选择的是sidecar的方式,这张图画的很好,thanos就理解为多个prometheus的汇合点,当一个query发到thanos后,一部分会从thanos的store查询,另一部分从每个prometheus查询,其中每个prometheus多了一个sidecar,sidecar主要就是把本地的prometheus数据上传到thanos store,另外也充当了一个网关的功能。

环境介绍

本次我是打算用两个集群来搭建,一个集群安装thanos,另外一个集群安装prometheus,这个也符合真实的生产环境。当然你只是为了学习做实验也可以都放在一个集群内。

安装thanos

搭建thanos就直接选择kube-thanos,选择在cluster A搭建。

1安装minio

kube-thanos/examples/development-minio这个目录下官方提供了一个minio的deploy直接部署

2安装thanos

kube-thanos/manifests这个文件就是thanos的所有安装文件,kubectl apply -f 一下。
现在thanos就安装好了,你可以把minio的svc改成nodeport暴露出来,把thanos-query也暴露出来。

3安装grafana

安装grafana选择用kube-prometheus修改一下kube-prometheus/manifests下的grafana-dashboardDatasources.yaml添加datasource

            {
                "access": "proxy",
                "editable": false,
                "name": "thanos",
                "orgId": 1,
                "type": "prometheus",
                "url": "http://thanos-query.thanos.svc.cluster.local:9090",
                "version": 1
            }

kubectl apply -f kube-prometheus/manifests 中的所有grafana开头的文件,这里只安装grafana,然后将grafana的svc改为nodeport。

安装prometheus

1安装prometheus

现在开始在cluster B集群安装prometheus,还是选择用kube-prometheus来安装,kubectl apply -f kube-prometheus/manifests 中的所有不是grafana开头的文件,原因是这个集群不需要安装grafana

2配置minio

因为之前说过,sidecar需要把prometheus本地的数据上传到minio中去,所以肯定是需要配置一个包含minio连接信息的secret

apiVersion: v1
kind: Secret
metadata:
  name: thanos-objectstorage
  namespace: monitoring
stringData:
  thanos.yaml: |
    type: s3
    config:
      bucket: thanos
      endpoint: minio的地址
      insecure: true
      access_key: minio
      secret_key: minio123
type: Opaque

修改其中的minio的地址,这个地址就是cluster A的暴露出来的minio的地址,如果你只是做实验,都安装在一个集群内了地址就是minio.thanos.svc.cluster.local:9000

2配置sidecar

修改prometheus-prometheus.yaml

2.1添加sidecar配置
  thanos:
    baseImage: quay.io/thanos/thanos:v0.30.2
    version: v0.30.2
    objectStorageConfig:
      key: thanos.yaml
      name: thanos-objectstorage
2.2添加sidecar配置

修改externalLabels: {},修改这个的原因是为了知道数据属于哪个集群,因为thanos提供了统一的查询入口,需要通过一些标签做筛选,我这里写的就是externalLabels: {clusterId: A}.

3配置endpoints

如果一切正常,此时你就需要最后一步了,回到cluster A,修改一下thanos-query-deployment.yaml,这一步的原因是为了让thanos知道cluster B的prometheus的地址,这样thanos在查询的时候就会到cluster B的prometheus来查询了,这个地址是cluster B中prometheus-operator svc的地址,我这里是把它改成了nodeport。

  - --endpoint=172.0.5.23:10901```

如果你是做实验都在一个集群内就是

  - --endpoint=dnssrv+_grpc._tcp.prometheus-operated.monitoring.svc.cluster.local:10901```

总结

如果一切正常你就可以在grafana看到如下的数据了
在这里插入图片描述
参考:
https://ost.51cto.com/posts/12545
https://mp.weixin.qq.com/s/ImUAfXEY1sdvGc6IgmF8IQ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/236150.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

npm run build时提示vue/types/jsx.d.ts中的错误

解决方法一: 可能是因为vue版本过高引起的 我直接将package.json中vue以及vue-template-compiler的版本的前面^去掉,安装指定的版本 注意:vue和vue-template-compiler需要版本一致 参考链接:链接 解决方法二: 如果如…

LV.13 D2 开发板启动流程 学习笔记

一、开发板启动过程 EMMC:相当于电脑的外存,断电不丢失 开发板上电后首先运行SOC内部iROM中固化的代码(BL0),这段代码先对基本的软硬件环境(时钟等...)进行初始化,然后再检测拨码开关位置获取启动方式,然后再将对应存储…

解决HTTP 429错误的Scrapy中间件配置

引言 在进行网络数据抓取时,经常会遇到HTTP 429错误,表示请求速率已超出API限制。为避免封禁或限制访问,需要调整Scrapy的请求速率,以在不触发HTTP 429错误的情况下完成数据抓取。针对这一问题,可使用Scrapy的AutoThr…

3DMax物理画笔物体填充放置绘制画笔插件安装使用方法

3DMax物理画笔物体填充放置绘制画笔插件,允许您使用笔刷以非常自然的方式用物品快速填充场景,并使用刚体模拟自动放置它们。 无论你是从事建筑、游戏电影还是商业。。。等等,你经常需要用一些物品为你的场景添加细节。手工放置它们是乏味的&…

采集数据更快捷,轻松生成调查问卷二维码

现在用二维码的方式来采集用户的数据,是现在很常用的一种统计数据的手段,这种方法更加简单快捷做好数据统计,那么表单类型的二维码能如何快速生成呢?下面来教大家在线二维码生成器的使用方法,能够用简单的步骤快速制作…

最长子字符串的长度 (一) - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 给你一个字符串 s,字符串s首尾相连成一个环形,请你在环中找出字符出现了偶数次最长子字符串的长度。 输入描述 输入是一串小写字母组成的…

玩转大数据14:分布式计算框架的选择与比较

1. 引言 随着大数据时代的到来,越来越多的企业和组织需要处理海量数据。分布式计算框架提供了一种有效的方式来解决大数据处理的问题。分布式计算框架将计算任务分解成多个子任务,并在多个节点上并行执行,从而提高计算效率。 2. 分布式计算…

低代码(low code)开发平台,我选JNPF

近年来,低代码开发技术正以迅猛的步伐崭露头角,成为数字化转型浪潮下的重要工具。据 Gartner 预测,到 2025 年,低代码技术将占据 70% 的新应用开发份额,引领着企业应用开发的新趋势。然而,随之而来的是市场…

传音荣获2023首届全国人工智能应用场景创新挑战赛“智能遥感专项赛”三等奖

11月26日,2023首届全国人工智能应用场景创新挑战赛“智能遥感专项赛”在北京圆满落幕。传音参赛项目《传音智慧应用平台产业化》凭借在技术攻关、社会效益和经济效益等多方面的突出优势荣获“智能遥感专项赛”三等奖。 本次竞赛以“场景驱动数智强国”为主题&#…

张正友相机标定法原理与实现

张正友相机标定法是张正友教授1998年提出的单平面棋盘格的相机标定方法。传统标定法的标定板是需要三维的,需要非常精确,这很难制作,而张正友教授提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点,而仅需使用一个打印出来的棋盘格就可…

智慧储能数字孪生,引领新能源革命

随着社会对清洁能源的需求不断增加,智能储能技术成为能源转型的关键驱动力。在这一领域中,数字孪生技术的应用为智慧储能带来了全新的可能性。数字孪生是指数字化、实时、可视化的模拟系统,通过复制现实世界中的对象或过程,为智能…

【多线程】Java中多线程的几种实现方式

多线程(multithreading)是指在一个程序中同时执行多个不同的线程(thread),每个线程都是程序的一部分,是独立的执行路径。相比于单线程程序,多线程程序可以更充分地利用计算机的多核心或多处理器…

一拎即走的轻薄云台投影,极米投影仪Z7X解锁观影新姿势

近年来,随着投影技术的不断提高以及大屏幕带来的加倍快乐,让投影仪成为了一种新的观影潮流。尤其是“去客厅化”的大背景下,年轻人几乎将目光都投向了投影仪,从而实现在家就能享受大屏观影的效果和体验。那么备受当下年轻消费者青…

全套的外贸出口业务流程,赶紧收藏起来吧

很多做外贸的小伙伴入行遇到的第一个问题就是对外贸业务流程的不熟悉,今天小易给大家整理了一份外贸业务全流程,从开发客户到售后服务一整套流程,一起来看看吧! 目前做外贸开发客户的渠道一般有以下几种: 1、自建站、外…

机器人运动控制:摩擦力矩补偿

问题描述 机器人运动控制中,摩擦力矩补偿是一个重要的环节。在机器人动力学模型中,重力和关节摩擦在低速运动时占主导因素,因此对机器人进行重力-摩擦补偿是机器人力控制中被广泛采用的方法。 库伦-粘滞摩擦模型是摩擦力辨识的常用方法&…

『亚马逊云科技产品测评』活动征文|基于亚马逊EC2云服务器安装Prometheus数据可视化监控

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 亚马逊EC2云服务器(Elastic Compute Cloud)是亚马…

视频剪辑转码:mp4批量转成wmv视频,高效转换格式

在视频编辑和处理的领域,转换格式是一项常见的任务。在某些编辑和发布工作中,可能需要使用WMV格式。提前将素材转换为WMV可以节省在编辑过程中的时间和精力。从MP4到WMV的批量转换,不仅能使视频素材在不同的平台和设备上得到更好的兼容性&…

基于ssm校园自助洗衣系统的分析与设计论文

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对校园洗衣信息管理混乱,出错率高,信息安全性差…

Path的使用-path绘制折线的时候带上圆角

场景: 使用antv-g6 自定义边的时候,绘制折线,此时都是直角,需要加圆角,没找到属性,自己绘制: 最后使用了A(elliptical Arc)弧形 A命令用于画弧形。 A rx ry x-axis-r…

基于单个参数线性回归的机器学习代码

本文为学习吴恩达版本机器学习教程的代码整理,使用的数据集为https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes/blob/f2757f85b99a2b800f4c2e3e9ea967d9e17dfbd8/code/ex1-linear%20regression/ex1data1.txt 将数据集和py代码放到同一目录中,使…