Prometheus Operator架构介绍

目录
  • Prometheus 架构
  • Prometheus Operator 架构

Prometheus 架构

本节讨论 Prometheus Operator 的架构。

因为 Prometheus Operator 是基于 Prometheus 的,我们需要先了解一下 Prometheus。

Prometheus 是一个非常优秀的监控工具。准确的说,应该是监控方案。Prometheus 提供了数据搜集、存储、处理、可视化和告警一套完整的解决方案。

Prometheus 的架构如下图所示:

官网上的原始架构图比上面这张要复杂一些,为了避免注意力分散,这里只保留了最重要的组件。

Prometheus Server

Prometheus Server 负责从 Exporter 拉取和存储监控数据,并提供一套灵活的查询语言(PromQL)供用户使用。

Exporter

Exporter 负责收集目标对象(host, container...)的性能数据,并通过 HTTP 接口供 Prometheus Server 获取。

可视化组件

监控数据的可视化展现对于监控方案至关重要。以前 Prometheus 自己开发了一套工具,不过后来废弃了,因为开源社区出现了更为优秀的产品 Grafana。Grafana 能够与 Prometheus 无缝集成,提供完美的数据展示能力。

Alertmanager

用户可以定义基于监控数据的告警规则,规则会触发告警。一旦 Alermanager 收到告警,会通过预定义的方式发出告警通知。支持的方式包括 Email、PagerDuty、Webhook 等.

Prometheus Operator 架构

Prometheus Operator 的目标是尽可能简化在 Kubernetes 中部署和维护 Prometheus 的工作。其架构如下图所示:

图上的每一个对象都是 Kubernetes 中运行的资源。

Operator

Operator 即 Prometheus Operator,在 Kubernetes 中以 Deployment 运行。其职责是部署和管理 Prometheus Server,根据 ServiceMonitor 动态更新 Prometheus Server 的监控对象。

Prometheus Server

Prometheus Server 会作为 Kubernetes 应用部署到集群中。为了更好地在 Kubernetes 中管理 Prometheus,CoreOS 的开发人员专门定义了一个命名为 Prometheus 类型的 Kubernetes 定制化资源。我们可以把 Prometheus看作是一种特殊的 Deployment,它的用途就是专门部署 Prometheus Server。

Service

这里的 Service 就是 Cluster 中的 Service 资源,也是 Prometheus 要监控的对象,在 Prometheus 中叫做 Target。每个监控对象都有一个对应的 Service。比如要监控 Kubernetes Scheduler,就得有一个与 Scheduler 对应的 Service。当然,Kubernetes 集群默认是没有这个 Service 的,Prometheus Operator 会负责创建。

ServiceMonitor

Operator 能够动态更新 Prometheus 的 Target 列表,ServiceMonitor 就是 Target 的抽象。比如想监控 Kubernetes Scheduler,用户可以创建一个与 Scheduler Service 相映射的 ServiceMonitor 对象。Operator 则会发现这个新的 ServiceMonitor,并将 Scheduler 的 Target 添加到 Prometheus 的监控列表中。

ServiceMonitor 也是 Prometheus Operator 专门开发的一种 Kubernetes 定制化资源类型。

Alertmanager

除了 Prometheus 和 ServiceMonitor,Alertmanager 是 Operator 开发的第三种 Kubernetes 定制化资源。我们可以把 Alertmanager 看作是一种特殊的 Deployment,它的用途就是专门部署 Alertmanager 组件。

学习完架构,下一节我们将部署 Prometheus Operator。

以上就是Prometheus Operator架构介绍的详细内容,更多关于Prometheus Operator架构的资料请关注我们其它相关文章!

(0)

相关推荐

  • SpringBoot 使用Prometheus采集自定义指标数据的方案

    目录 一.我们需要什么指标 二.在SrpingBoot中引入prometheus 三.高级指标之分位数 我们在k8s集群成功搭建了Prometheus服务.今天,我们将在springboot2.x中使用prometheus记录指标. 一.我们需要什么指标 对于DDD.TDD等,大家比较熟悉了,但是对于MDD可能就比较陌生了.MDD是Metrics-Driven Development的缩写,主张开发过程由指标驱动,通过实用指标来驱动快速.精确和细粒度的软件迭代.MDD可使所有可以测量的东西都得到

  • Prometheus和NodeExporter安装监控数据说明

    目录 在mac下载安装prometheus mac下安装Node Exporter 数据说明 在mac下载安装prometheus 在https://prometheus.io/download/下载prometheus放到自定义的位置. 解压压缩包 创建data文件夹mkdir -p data mac下安装Node Exporter (NodeExporter是Prometheus提供的一个可以采集到主机信息的应用程序,它能采集到机器的 CPU.内存.磁盘等信息) cd到目标目录,然后用命令下

  • prometheus监控节点程序的安装及卸载命令

    目录 安装监控服务 卸载监控程序 本教程基于AlpineLinux,请注意将apk相关命令替换为对应系统的包命令,比如apt.yum等. 安装监控服务 apk add prometheus-node-exporter rc-update add node-exporter default # 配置节点 ARGS="--collector.processes --web.listen-address=:2910 --web.config=/etc/prometheus/web-config.yml

  • python如何获取Prometheus监控数据

    目录 获取Prometheus监控数据 获取Prometheus target数据 获取Prometheus 监控信息(cpu.mem.disks) 通过promsql读取prometheus内的数据 获取Prometheus监控数据 获取Prometheus target数据 调用http://<prometheus.address>/api/v1/targets并解析. def getTargetsStatus(address):     url = address + '/api/v1/

  • docker 搭建基于prometheus的监控体系步骤实现

    目录 1.启动prometheus容器服务 2.启动成功后,公网访问该9090端口进入普罗米修斯主页 3.部署mysqld-exporer监控mysql数据库(想监控什么就部署对应的exporter即可) 4.重启prometheus服务 5.访问prometheus主页查看mysql的监控 6.将监控数据通过grafana面板展示 Prometheus是一个时间序列数据库.但是,它不仅仅是一个时间序列数据库. 它涵盖了可以绑定的整个生态系统工具集及其功能. Prometheus主要用于对基础设

  • Prometheus监控实战篇Nginx、Hbase操作详解

    目录 一.Prometheus监控Nginx 1.监控Nginx相关插件下载地址 2.编译Nginx 2.1下载nginx-release并解压 2.2解压Nginx-module-vts,到/opt/nginx/ 2.3执行以下命令,进行编译Nginx 2.4再执行make命令 2.6在Nginx添加以下内容到Nginx配置文件中 2.7重新启动Nginx,并检查服务是否正常 2.8解压Nginx-vts-exporter,并启动 2.9在Prometheus中添加Nginx-vts-expo

  • Prometheus Operator架构介绍

    目录 Prometheus 架构 Prometheus Operator 架构 Prometheus 架构 本节讨论 Prometheus Operator 的架构. 因为 Prometheus Operator 是基于 Prometheus 的,我们需要先了解一下 Prometheus. Prometheus 是一个非常优秀的监控工具.准确的说,应该是监控方案.Prometheus 提供了数据搜集.存储.处理.可视化和告警一套完整的解决方案. Prometheus 的架构如下图所示: 官网上的

  • Apache Shiro 使用手册(一) Shiro架构介绍

    一.什么是ShiroApache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能:认证 - 用户身份识别,常被称为用户"登录":授权 - 访问控制:密码加密 - 保护或隐藏数据防止被偷窥:会话管理 - 每用户相关的时间敏感的状态.对于任何一个应用程序,Shiro都可以提供全面的安全管理服务.并且相对于其他安全框架,Shiro要简单的多. 二.Shiro的架构介绍首先,来了解一下Shiro的三个核心组件:Subject, SecurityManager

  • MySQL高级学习笔记(三):Mysql逻辑架构介绍、mysql存储引擎详解

    Mysql逻辑架构介绍总体概览 和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用.主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离 . 这种架构可以根据业务的需求和实际需要选择合适的存储引擎. controller层: Connectors:连接层,c .java等连接mysql 业务逻辑处理成: Connection Pool:连接层 c3p0连接池等 Manager Service util:备份.容灾

  • MySQL 整体架构介绍

    MySQL 在整体架构上分为 Server 层和存储引擎层.其中 Server 层,包括连接器.查询缓存.分析器.优化器.执行器等,存储过程.触发器.视图和内置函数都在这层实现.数据引擎层负责数据的存储和提取,如 InnoDB.MyISAM.Memory 等引擎.在客户端连接到 Server 层后,Server 会调用数据引擎提供的接口,进行数据的变更. 连接器 负责和客户端建立连接,获取用户权限以及维持和管理连接. 通过 show processlist; 来查询连接的状态.在用户建立连接后,

  • C#多线程之取消架构介绍

    .NET 4.5 中包含取消架构,允许以标准方式取消长时间运行的任务.每个阻塞调用都应支持这种机制.但目前,并不是所有阻塞调用都实现了这个新技术.已经实现了这种机制的技术有任务(https://www.jb51.net/article/244285.htm),并发集合类(https://www.jb51.net/article/244141.htm),并行LINQ(https://www.jb51.net/article/244216.htm)和几种同步机制.取消架构基于协作行为,它不是强制的.

  • w3c技术架构介绍

    作者:阿宏 2006-2-10 9:38:04 原文:http://www.w3.org/Consortium/technology 原作者:w3c 翻译:阿宏 图例说明 W3C技术架构图描绘了一个两层的模型:万维网体系结构(被标注为"One Web")建立在互联网(Interner)体系结构之上.图中丰富的Web层显示了W3C关心的领域和发展的技术. Web体系结构被描绘成一系列的层,每一层都建立在另一层之上.从底至顶依次为: URI/IRI, HTTP Web Architectu

  • Java 用Prometheus搭建实时监控系统过程详解

    上帝之火 本系列讲述的是开源实时监控告警解决方案Prometheus,这个单词很牛逼.每次我都能联想到带来上帝之火的希腊之神,普罗米修斯.而这个开源的logo也是火,个人挺喜欢这个logo的设计. 本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台. 本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念也会精炼出提及下.系列主要分为以下几块 Prometheus各个概念介绍和搭建,如何抓取数据(本次分享内容)

  • 详解prometheus监控golang服务实践记录

    一.prometheus基本原理介绍 prometheus是基于metric采样的监控,可以自定义监控指标,如:服务每秒请求数.请求失败数.请求执行时间等,每经过一个时间间隔,数据都会从运行的服务中流出,存储到一个时间序列数据库中,之后可通过PromQL语法查询. 主要特点: 多维数据模型,时间序列数据通过metric名以key.value的形式标识: 使用PromQL语法灵活地查询数据: 不需要依赖分布式存储,各服务器节点是独立自治的: 时间序列的收集,通过 HTTP 调用,基于pull 模型

  • Android学习之Flux架构入门

    Flux 架构介绍 Flux 架构 被Facebook使用来构建他们的客户端web应用.跟Clean Architecture一样,它不是为移动应用设计的,但是它的特性和简单可以让我们很好的在安卓项目中采用. Flux模式最大的特点是单向的数据流,它的UI状态更新模式继承了MVC模式的设计思想.Flux并不是具体的框架,而是一套处理UI问题的模式,Android Flux同样不是具体的框架,你不需要导入或者集成任何新的代码就可以使用,而你需要做的事情是了解这套思想.遵循这种开发模式,查看我们提供

  • Java中批处理框架spring batch详细介绍

    spring batch简介 spring batch是spring提供的一个数据处理框架.企业域中的许多应用程序需要批量处理才能在关键任务环境中执行业务操作. 这些业务运营包括: 无需用户交互即可最有效地处理大量信息的自动化,复杂处理. 这些操作通常包括基于时间的事件(例如月末计算,通知或通信). 在非常大的数据集中重复处理复杂业务规则的定期应用(例如,保险利益确定或费率调整). 集成从内部和外部系统接收的信息,这些信息通常需要以事务方式格式化,验证和处理到记录系统中. 批处理用于每天为企业处

随机推荐