prometheus学习系列十一: Prometheus和AlertManager的高可用
前面的系列中, prometheus和alertmanager都是单机部署的,会有单机宕机导致系统不可用情况发生。本文主要介绍下prometheus和alertmanager的高可用方案。
服务的高可靠性架构(基本ha)
promehtues是以pull方式进行设计的,因此手机时序资料都是通过prometheus本身主动发起的,而为了保证prometheus服务能够正常运行,只需要创建多个prometheus节点来收集同样的metrics即可。
架构图:

这个架构可以保证服务的高可靠性,但是并不能解决多个prometheus实例之间的资料一致性问题,也无法数据进行长期存储,且单一实例无法负荷的时候,将延伸出性能瓶颈问题,因此这种架构适合小规模进行监控。
优点:
- 服务能够提供基本的可靠性
- 适合小规模监控,只需要短期存储。
缺点:
- 无法扩展
- 数据有不一致问题
- 无法长时间保持
- 当承载量过大时,单一prometheus无法负荷。
服务高可靠性结合远端存储(基本ha + remote storage)
这种架构是在基本ha的基础上面,加入远端存储的,将数据存储在第三方的存储系统中。

该架构解决了数据持久性问题, 当prometheus server发生故障、重启的时候可以快速恢复数据,同时prometheus可以很好的进行迁移,但是这也只适合小规模的监测使用。
优点:
- 服务能够提供可靠性
- 适合小规模监测
- 数据能够持久化存储
- prometheus可以灵活迁移
- 能够得到数据还原
缺点:
- 不适合大规模监控
- 当承载量过大时,单一prometheus server无法负荷
服务高可靠性结合远端存储和联邦(基本ha + remote storage + federation)
这种架构主要是解决单一 prometheus server无法处理大量数据收集的问题,而且加强了prometheus的扩展性,通过将不同手机任务分割到不同的prometheus实力上去。
该架构通常有2种使用场景:
单一资料中心,但是有大量收集任务,这种场景行prometheus server 可能会发生性能上的瓶颈,主要是单一prometheus server 要承载大量资料书籍任务, 这个时候通过federation来将不同类型的任务分到不同的prometheus 子server 上, 再有上层完成资料聚合。
多资料中心, 在多资料中心下,这种架构也能够使用,当不同资料中心的exporter无法让最上层的prometheus 去拉取资料是, 就能通过federation来进行分层处理, 在每个资料中心建立一组收集该资料中心的prometheus server , 在由上层的prometheus 来进行抓取, 并且也能够依据每个收集任务的承载量来部署分级,但是需要确保上下层的prometheus server 是互通的。
优点
服务能够提供可靠性
资料能够被持久性保持在第三方存储系统中
promethues server 能够迁移
能够得到资料还原
能够依据不同任务进行层级划分
适合不同规模监控
能够很好的扩展
缺点
部署架构负载
维护困难性增加
在kubernetes部署不易
------------------------------------------------------------------------------------------------------------------- 未完待续--------------------------------------------------------------------------------------------------------------
prometheus学习系列十一: Prometheus和AlertManager的高可用的更多相关文章
- prometheus学习系列十一: Prometheus 安全
prometheus安全 我们这里说的安全主要是基本认证和https2种, 目前这2种安全在prometheus中都没有的, 需要借助第三方软件实现, 这里以nginx为例. 基本认证 配置基本认证 ...
- prometheus学习系列十一: Prometheus pushgateway的使用
由于网络问题或者安全问题,可能我们的数据无法直接暴露出一个entrypoint 给prometheus采集. 这个时候可能就需要一个pushgateway来作为中间者完成中转工作. promethe ...
- prometheus学习系列十一: Prometheus exporter详解
exporter详解 前面的系列中,我们在主机上面安装了node_exporter程序,该程序对外暴露一个用于获取当前监控样本数据的http的访问地址, 这个的一个程序成为exporter,Expor ...
- prometheus学习系列十一: Prometheus 采集器的编写
在前面的文章已经写了官方的几个exporter的使用了. 在实际使用环境中,我们可能需要收集一些自定义的数据, 这个时候我们一般是需要自己编写采集器的. 快速入门编写一个入门的demo 编写代码 fr ...
- prometheus学习系列十一: Prometheus 报警规则配置
prometheus监控系统的的报警规则是在prometheus这个组件完成配置的. prometheus支持2种类型的规则,记录规则和报警规则, 记录规则主要是为了简写报警规则和提高规则复用的, 报 ...
- prometheus学习系列九: Prometheus AlertManager使用
在Prometheus的报警系统中,是分为2个部分的, 规则是配置是在prometheus中的, prometheus组件完成报警推送给alertmanager的, alertmanager然后管理这 ...
- Prometheus学习系列(六)之Prometheus 查询说明
前言 本文来自Prometheus官网手册和 Prometheus简介 Prothetheus查询 Prometheus提供一个函数式的表达式语言PromQL (Prometheus Query La ...
- Prometheus学习系列(五)之Prometheus 规则(rule)、模板配置说明
前言 本文来自Prometheus官网手册1.2.3.4和 Prometheus简介1.2.3.4 记录规则 一.配置规则 Prometheus支持两种类型的规则,这些规则可以定期配置,然后定期评估: ...
- Prometheus学习系列(二)之Prometheus FIRST STEPS
前言 本文来自Prometheus官网手册 和 Prometheus简介 说明 Prometheus是一个监控平台,通过在监控目标上的HTTP端点来收集受监控目标的指标.本指南将向您展示如何使用Pro ...
随机推荐
- contest2 CF989 div2 ooox? ooox? oooo?
题意 div2C (o) 在\(小于50*50\)的棋盘上放\(A, B, C, D\)四种花, 并给出每种花的连通块数量\(a, b, c, d(\le 100)\), 输出一种摆法 div2D ( ...
- Linux下进程间通信方式——共享内存
1.什么是共享内存? 共享内存就是允许两个或多个进程共享一定的存储区.就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针.当一个进程改变了这块地址中的内容的时候,其它进程都会察 ...
- ubuntu命令总结 持续更新 补充
总结一下Ubuntu常用命令 top sudo apt-get install 软件名 安装软件命令 sudo nautilus 打开文件(有root权限) su root 切换到“root” l ...
- Python常用经典案例
Python循环语句: 函数: 异常处理: 类和继承: 相信初学Python的我们对于好多语句都还不熟悉,经常会遇到不知道以前c语言上面的语句转换成Python语句是怎么样的,会出现错误的情况,因此 ...
- WGS 全基因组测序数据分析
1. DNA测序技术 https://www.jianshu.com/p/6122cecec54a 2.FASTA和FASTQ文件格式 https://www.jianshu.com/p/50ff30 ...
- IOCP陷阱
1. AcceptEx 10061 客户端循环连接,没有发送数据,一定次数后,连接失败,WSAGetLastError的结果是10061.并且后续无法再次连接. 这是因为其中的一个参数,详细用法参考I ...
- IDEA调试进入class文件
今天用IDEA调试时,一直进入class文件,而没有进入java文件. 错误原因 出现这种情况,有可能是Module有多个同名的依赖,调试时程序进入了同名的jar包里面,而不是同名的Module. 如 ...
- 20165214 2018-2019-2 《网络对抗技术》Exp7 网络欺诈防范 Week10
<网络对抗技术>Exp7 网络欺诈防范 Week10 一.实验目标与内容 1.实践目标 理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法 2.实践内容 (1)简单应用SET工 ...
- 【原】无脑操作:Webstorm集成Git/Github
Webstorm作为前端开发的主流工具,对Git及Github可以非常简便的集成. 1.开发环境:(如何安装就不说了) ① Webstorm 2018 ② git version 2.20.1 ③ G ...
- Python-06-函数
一.函数的定义 函数是第一类对象,即函数可以当作数据传递 #1 可以被引用 #2 可以当作参数传递 #3 返回值可以是函数 #3 可以当作容器类型的元素 1. 定义方式 def 函数名(参数1,参数2 ...