天青色等烟雨

而我在等你


  • 首页

  • 归档

  • 分类

  • 标签

  • 留言

  • 关于

  • 搜索
  • High一下
close

Alertmanager 高可用总结-上

发表于 2020-12-24   |   分类于 Prometheus

人生不过如此,且行且珍惜,每一次的失败,都是成功的伏笔;每一次的考验,都有一份收获;每一次的泪水,都有一次醒悟;每一次的磨难,都有生命的财富。

高可用简介

之前我们主要讨论了Prometheus Server自身的高可用问题。而接下来,重点将放在告警处理也就是Alertmanager部分。如下所示。

image-20210906110008076

为了提升Promthues的服务可用性,通常用户会部署两个或者两个以上的Promthus Server,它们具有完全相同的配置包括Job配置,以及告警配置等。当某一个Prometheus Server发生故障后可以确保Promthues持续可用。

阅读全文 »

Alertmanager 高可用总结-下

发表于 2020-12-14   |   分类于 Prometheus

我们每个人都不能抱怨自己的出身,没有好的家世,那就去创造好的家世。要知道,那些在雨里奔跑的,从来都是没有伞的孩子。

回顾

gossip

先理解一下gossip协议:在一个有界网络中,每个节点都随机地与其他节点通信,经过一番杂乱无章的通信,最终所有节点的状态都会达成一致。每个节点可能知道所有其他节点,也可能仅知道几个邻居节点,只要这些节可以通过网络连通,最终他们的状态都是一致的,当然这也是疫情传播的特点。

简单的描述下这个协议,首先要传播谣言就要有种子节点。种子节点每秒都会随机向其他节点发送自己所拥有的节点列表,以及需要传播的消息。任何新加入的节点,就在这种传播方式下很快地被全网所知道。这个协议的神奇就在于它从设计开始就没想到信息一定要传递给所有的节点,但是随着时间的增长,在最终的某一时刻,全网会得到相同的信息。当然这个时刻可能仅仅存在于理论,永远不可达。

memberlist

回忆一下memberlist的总体流程:

阅读全文 »

Prometheus和Thanos的前生今世

发表于 2020-11-02   |   分类于 Prometheus

没有人会为你的贫穷负责,却有人为你的富有而喝彩!所以不要活在别人的嘴巴里,做好自己!有路,就大胆的去走;有梦,就大胆地飞翔;前行的路,不怕万人阻挡,只怕自己投降!

总结thanos之前先来回顾一下prometheus

prometheus 回顾

云原生监控的事实标准Promethues

监控系统的历史悠久,是一个颇为成熟的领域,而Prometheus作为新生代的开源监控系统,慢慢成为了云原生体系的监控事实标准,也证明了其设计得到业界认可。Prometheus启发于Google公司的borgmon监控系统,由google前员工在2012年作为社区开源项目创建和开发,并于2015年正式发布。2016年,Prometheus正式加入Cloud Native Computing Foundation,成为仅次于Kubernetes的第二把交椅的项目。

架构

img

阅读全文 »

Thanos 源码分析

发表于 2020-11-01   |   分类于 Prometheus

不要因为没有掌声,而放弃梦想,我们需要的是坚持,而不是观众。

thanos组件版本:v0.16.0

Thanos Query

Thanos Query的作用

Thanos Query组件是http服务器 + grpc服务器,它的数据源是位于下游的已发现的实现STORE API的组件(例如Thanos Sidecar组件、Thanos Store组件、Thanos Ruler组件),同时实现了Prometheus官方的HTTP API。Thanos Query组件从下游处获得数据后,能进行合并、去重等操作,最后将结果返回给外部的客户端。因此,Thanos Query就是数据库中间件的角色。

在这里插入图片描述

阅读全文 »

Prometheus Local storage和Remote storage

发表于 2020-10-08   |   分类于 Prometheus

我们每个人的心中,都有两只老虎。第一只老虎,是善的,它大方、善良、慈悲;第二只老虎,是恶的,它狭隘、邪恶、自私。而且,这两只老虎每天都在我们的心里打架……

监控系统的扩展性和高可用性绝大部分是由存储决定的。比如著名的zabbix是支持Es做为后端存储的,这就解决了数据可靠性和存储的扩展。而PrometheUS默认是本地存储在tsdb上,如果考虑存储大量的sample,可以考虑remote storage。

Local storage 简述

本地存储的最小单位是block,每个block是最近两个小时的数据。block里面是多个chunk。chunk里面存储的就是sample。此外block里面还有index,用于索引chunk里面的数据,用于快速查找;还有metadata,用于记录block的元数据(存储的数据的开始时间以及结束时间等);还有一个tombstones文件,用于标记那些sample已经删除了,这里只是标记不是删除。

本地存储中还有个WAL日志文件(预写日志)。prometheus抓取的数据不会立即刷盘,而是放在内存中。想象一下如果这时候宕机了,数据岂不丢了。wal日志的作用就是防止这个的。wal日志128M作为一个片段,最少也得有三个片段,这个是硬性规定。因为block里面存储的数据是压缩过的,而wal里面的数据是未压缩的,所以wal日志会比block大。在监控项比较多的prometheus上,会看到多于三个片段,这个是正常的,因为WAL日志中最小也要存储两个小时的数据。

阅读全文 »

Prometheus PromQL使用

发表于 2020-10-07   |   分类于 Prometheus

改变,永远不嫌晚。无论你是几岁,也无论你目前所处的境况有多糟,只要立定目标、一步一步往前走,人生随时都有翻盘的可能性。

Prometheus 提供了其它大量的内置函数,可以对时序数据进行丰富的处理。某些函数有默认的参数,例如:year(v=vector(time()) instant-vector)。其中参数 v 是一个瞬时向量,如果不提供该参数,将使用默认值 vector(time())。instant-vector 表示参数类型。

abs()

abs(v instant-vector) 返回输入向量的所有样本的绝对值。

absent()

absent(v instant-vector),如果传递给它的向量参数具有样本数据,则返回空向量;如果传递的向量参数没有样本数据,则返回不带度量指标名称且带有标签的时间序列,且样本值为1。

当监控度量指标时,如果获取到的样本数据是空的, 使用 absent 方法对告警是非常有用的。例如:

阅读全文 »

Prometheus 告警规则生成和发送分析

发表于 2020-10-06   |   分类于 Prometheus

每个人真正强大起来都要度过一段没人帮忙,没人支持的日子。所有事情都是自己一个人撑,所有情绪都是只有自己知道。但只要咬牙撑过去,一切都不一样了。

rules 配置和使用

简介

prometheus不仅可以提供数据采集功能,而且还可以做告警服务,通过匹配的性能参数,发出告警;然后把产生的警报发给Alertmanager进行处理。

但是这需要在Prometheus使用的配置文件中添加关联Alertmanager的组件的对应配置信息

阅读全文 »

Prometheus 指标抓取源码分析

发表于 2020-10-05   |   分类于 Prometheus

生活像一只蝴蝶,没有破茧的勇气,哪来飞舞的美丽。生活像一只蜜蜂,没有勤劳和努力,怎能尝到花粉的甜蜜,越努力越幸运!

scrape模块在prometheus中负责着采集具体指标,并记录到后端存储中的功能,可以说是prometheus最为核心的一个功能模块

篇幅较长,需要耐心

指标采集简介

为了从服务发现(serviceDiscover)实时获取监控服务(targets),指标采集(scrapeManager)通过协程把管道(chan)获取来的服务(targets)存

进一个map类型:map[string][]*targetgroup.Group.其中,map的key是job_name,map的value是结构体targetgroup.Group,

该结构体包含该job_name对应的Targets,Labes和Source

阅读全文 »

Prometheus 服务发现源码分析

发表于 2020-10-04   |   分类于 Prometheus

我不知道萧红可有类似的体验,是否担心华美的袍上爬满虱子,也许她知道,但她不在乎,她更想要取暖,即使将虱子一道披挂上身。她像忍耐虱子一样,忍耐着世界的冷眼,还装成一派天真模样,仿佛因不谙世事而无从察觉,就可以不受伤害。

服务发现简介

云原生、容器场景下按需的资源使用方式对于监控系统而言就意味着没有了一个固定的监控目标,所有的监控对象(基础设施、应用、服

务)都在动态的变化,这对基于Push模式传统监控软件带来挑战。

阅读全文 »

Prometheus 源码分析-总览

发表于 2020-10-03   |   分类于 Prometheus

人的一生更是如此不要去看低每一个人,更不要以自己现有的权利去欺压别人。现在混得好不代表以后就混的好,时刻提醒自己你今天奋斗了吗?

以下包括链接中的分析皆是平时网上学习以及自己用到的一些知识,简单做个总结,基于版本2.27

架构总览

image

阅读全文 »
12…7
magiceses

magiceses

Stay Hungry,Stay Foolish

61 日志
5 分类
15 标签
RSS
Github CSDN
Creative Commons
友情链接
  • 建站日志
  • 打赏
您是第1862个小伙伴 本站总浏览2198次
© 2016 - 2021 magiceses
由 Hexo 强力驱动
主题 - NexT.Pisces
全站共 1m 字