Prometheus技术文档-概念

news2024/10/7 18:28:31

 Prometheus是一个开源的项目连接如下:

Prometheus首页、文档和下载 - 服务监控系统 - OSCHINA - 中文开源技术交流社区

基本概念:

 

        Prometheus是一个开源的系统监控和告警系统,由Google的BorgMon监控系统发展而来。它主要用于监控和度量各种时间序列数据,比如系统性能、网络延迟、应用程序错误等。Prometheus通过采集监控数据并存储在时间序列数据库中,然后使用PromQL查询语言进行数据分析和可视化。Prometheus的核心组件包括Prometheus Server、Exporters和Pushgateway。它支持多种服务发现机制,比如Kubernetes、EC2、GCE等,以自动发现和监控服务的运行状态。Prometheus还提供了安全和权限控制的机制,如身份验证、授权等,以确保数据的访问安全。它已经成为继k8s之后第二大在CNCF托管的项目,被广泛应用于各种数据中心环境的监控。

具有如下特性:

  • 高维度数据模型

  • 自定义查询语言

  • 可视化数据展示

  • 高效的存储策略

  • 易于运维

  • 提供各种客户端开发库

  • 警告和报警

  • 数据导出

学习Prometheus的重要概念

  1. 监控指标(Metrics):Prometheus采集各种监控数据,并将它们存储为时间序列数据。这些数据通过特定的度量标准来描述系统的各个方面,比如系统CPU使用率、网络流量、应用程序错误等。
  2. 存储持久化(Storage Persistence):Prometheus将采集的监控数据存储在时间序列数据库中,这种数据库专门设计用于存储大规模的时间序列数据。Prometheus支持多种存储后端,如本地磁盘、远程存储等。
  3. 数据查询语言(Query Language):Prometheus使用PromQL作为其数据查询语言。PromQL允许用户从存储库中查询和分析监控数据,并以各种方式进行可视化。
  4. 警报规则(Alerting Rules):Prometheus提供警报规则,用于根据监控数据的阈值触发警报。警报可以发送给不同的接收器,比如电子邮件、Slack、PagerDuty等。
  5. 数据可视化(Data Visualization):Prometheus提供了一个仪表盘(Dashboard)界面,用于展示监控数据和警报状态。用户可以通过拖放和自定义配置来创建自己的仪表盘。
  6. 服务发现(Service Discovery):Prometheus支持各种服务发现机制,比如Kubernetes、EC2、GCE等,以自动发现和监控服务的运行状态。
  7. 安全和权限控制(Security and Access Control):Prometheus也提供了安全和权限控制的机制,如身份验证、授权等,以确保数据的访问安全。
  8. 数据导出(Data Extraction):Prometheus还支持从其他数据源提取数据,比如通过使用Pushgateway将不能直接被Prometheus采集的数据推送到Pushgateway中,然后由Prometheus从Pushgateway中提取数据。

Prometheus支持多种服务发现机制,以自动发现和监控服务的运行状态:

  1. Kubernetes:Prometheus可以与Kubernetes集群集成,通过Kubernetes的API自动发现和监控Kubernetes中的服务和容器。这种服务发现机制适用于在Kubernetes环境中运行的分布式系统。
  2. EC2(Elastic Cloud Compute):EC2是Amazon Web Services(AWS)提供的云服务,Prometheus可以通过EC2的API发现和监控EC2实例。这种服务发现机制适用于在AWS环境中运行的分布式系统。
  3. GCE(Google Cloud Engine):GCE是Google Cloud提供的云服务,Prometheus可以通过GCE的API发现和监控GCE实例。这种服务发现机制适用于在Google Cloud环境中运行的分布式系统。

这些服务发现机制允许Prometheus自动发现和监控各种服务和实例,从而简化和自动化了监控过程。

使用场景:

Prometheus是一个广泛使用的开源系统监控和告警系统,适用于多种场景。以下是一些常见的使用场景:

  1. 云原生生态系统:Prometheus是CNCF(Cloud Native Computing Foundation)的托管项目之一,与Kubernetes等云原生技术紧密集成。它在云原生生态系统中的使用非常普遍,可以自动发现和监控Kubernetes集群中的服务和容器。
  2. 分布式系统和微服务:Prometheus适用于分布式系统和微服务架构,可以监控各种服务和应用程序的性能指标,如CPU使用率、内存消耗、网络延迟等。
  3. 系统性能和健康状况监控:Prometheus可以监控整个系统的性能和健康状况,包括服务器、网络设备、操作系统等。它可以采集各种系统级别的性能指标,如CPU使用率、磁盘使用率、网络带宽等。
  4. 业务指标监控:Prometheus也可以用于监控业务指标,比如应用程序的错误率、用户活跃度、业务交易量等。这些指标可以帮助开发人员和业务分析师更好地了解系统的性能和业务状况。
  5. 自动化部署和容器管理:Prometheus可以与自动化部署和容器管理工具集成,如Docker、Kubernetes、Helm等。它可以监控容器的创建、删除和更新过程,以及自动化部署的流程和结果。
  6. 实时告警和应急响应:Prometheus与AlertManager一起,可以设置告警规则并触发告警。告警可以发送给不同的接收器,如电子邮件、Slack、PagerDuty等,以实现实时告警和应急响应。

使用原因

  1. 开源和社区支持:Prometheus是一个开源项目,拥有庞大的社区支持和用户群体。这使得用户可以轻松获取各种资源和支持,如文档、示例和插件等。
  2. 简单易用:Prometheus的架构简单,易于安装和配置。它采用简单的数据模型和查询语言,使得用户可以轻松地收集、存储和分析数据。
  3. 数据采集和可扩展性:Prometheus支持多种数据采集方法,如静态配置、服务发现和自动发现等。它还可以通过横向扩展来提高监控的性能和容量。
  4. 数据查询和可视化:Prometheus内置了强大的数据查询语言(PromQL),用户可以使用它来轻松地查询和分析数据。此外,Prometheus还提供了可视化的功能,可以将数据以图表的形式展示给用户。
  5. 告警功能:Prometheus与AlertManager一起,可以设置告警规则并触发告警。告警可以发送给不同的接收器,如电子邮件、Slack、PagerDuty等,以实现实时告警和应急响应。
  6. 与云原生技术的紧密集成:Prometheus与Kubernetes等云原生技术紧密集成,可以自动发现和监控Kubernetes集群中的服务和容器。这使得在云原生环境中使用Prometheus成为自然而然的选择。

同类型产品对比:

与Prometheus同类型的产品包括Open-Falcon、Zabbix和Graphite等。以下是它们的比较:

1、Open-Falcon:Open-Falcon是一个开源的监控系统,具有强大的数据采集、存储和分析能力。它支持多种数据源和协议,并具有灵活的告警机制。Open-Falcon的架构灵活,可以灵活扩展,并与许多其他技术集成。与Prometheus相比,Open-Falcon在数据采集和告警方面具有更多功能,但在数据模型和查询语言方面较为简单。

2、Zabbix:Zabbix是一个成熟的监控系统,具有广泛的功能和强大的性能。它支持多种监控方式,包括主动监控和被动监控,并可以自定义监控脚本。Zabbix采用关系型数据库存储数据,具有强大的报告和分析功能。与Prometheus相比,Zabbix在功能和性能方面更加成熟,但在数据模型和查询语言方面较为传统。

宏时数据-Zabbix中国

3、Graphite:Graphite是一个专注于性能指标数据存储和可视化的系统。它采用简单的数据模型,并允许存储命名时间序列数据。Graphite具有快速查询和可视化能力,但与其他监控系统相比,它的功能较为有限。与Prometheus相比,Graphite在数据可视化和存储方面具有优势,但在数据模型和查询语言方面较为简单。

        这些系统各有优缺点,选择哪个系统取决于具体需求和使用场景。Prometheus在数据模型、查询语言和社区支持方面具有优势但在数据采集和存储方面可能需要额外的组件。Open-Falcon在数据采集和告警方面具有更多功能,而Zabbix在功能和性能方面更加成熟,Graphite则专注于性能指标数据的存储和可视化。

版本更新对比:

  1. Prometheus 2.0.0:该版本带来了新的存储引擎,与检索系统的改变相结合,可带来可观的性能提升。此外,Prometheus服务器每秒采集百万样本成为可能。同时,新的存储引擎不向后兼容,但有一种方法可以透明地访问仍存储在1.x中的旧数据。另外,该版本改进了PromQL中的陈旧语义,现在只需要一个刮擦间隔即可使时间序列失效,而无需等待整整5分钟。规则文件格式也已更改为YAML,按组组织规则并按顺序执行。出于安全原因,默认情况下已禁用admin和生命周期API。
  2. Prometheus 1.8.0:该版本的主要变化包括改进的远程写和拉取样本的配置,可以更好地控制内存使用;改进的HTTP摄入,包括错误处理和配置;改进的监控,包括限制正在进行的HTTP请求的数量;以及改进的文本展示格式的兼容性,支持更多的情况。

        Prometheus的每个版本都有一些更新和改进,包括存储引擎、PromQL、规则文件格式等方面。用户可以根据自己的需求选择适合的版本。同时,Prometheus还在不断发展和改进中,以满足不断变化的监控需求和技术环境。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2.本地存储

2.1本地存储分类- localStorage 1.作用: 可以将数据永久存储在本地(用户的电脑),除非手动删除,否则关闭页面也会存在 2.特性: ●可以多窗口(页面)共享(同一浏览器可以共享) ●以键值对的形式存储使用,键值除了数字型都要加引号 3.语法 存…

设计模式篇

工厂方法模式 简单工厂模式 工厂方法模式 抽象工厂模式 策略模式 责任链模式

Vue - 实现垂直菜单分类栏目 开箱即用

Vue - 实现垂直菜单分类栏目 开箱即用 今天发现需要做一个专栏分类的功能,要求光标悬浮到一级专栏时展示二级专栏,当光标移出时隐藏二级专栏。在网山找了一圈没有发现到合适的源代码,参考了一个博客才编写了下面的代码。将其粘贴到空的页面文…

如何将区块链新闻稿发布到海外媒体?

随着区块链技术的不断发展,越来越多的区块链项目涌现出来,各大媒体也开始关注和报道区块链新闻。然而,如何将区块链新闻稿发布到海外媒体成为了许多区块链项目所面临的难题。本文将介绍一些有效的方法,帮助区块链项目将新闻稿发布…

SIP协议之音/视频转换

在SIP通话应用场景中,有时需要在音频和视频通话中进行切换,这个功能实现的需要发送re-INVITE重新协商媒体,即重新协商媒体(SDP)中是否允许视频。 一、实现原理 1.1 音频转视频 音频通话过程中,发起方重新发送INVITE消…

大数据Flink(五十七):Yarn集群环境(生产推荐)

文章目录 Yarn集群环境(生产推荐) 一、准备工作

python版《羊了个羊》游戏开发第一天

Python小型项目实战教学课《羊了个羊》 一、项目开发大纲(初级) 版本1.0:基本开发 课次 内容 技术 第一天 基本游戏地图数据 面向过程 第二天 鼠标点击和移动 面向对象 第三天 消除 设计模式:单例模式 第四天 完整…

换架 3D 飞机,继续飞呀飞

相信大多数图扑 HT 用户都曾见过这个飞机的 Demo,在图扑发展的这十年,这个 Demo 是许多学习 HT 用户一定会参考的经典 Demo 之一。 这个 Demo 用简洁的代码生动地展示了 OBJ 模型加载、数据绑定、动画和漫游等功能的实现。许多用户参考这个简单的 Demo 后…

算法练习--leetcode 链表

文章目录 合并两个有序链表删除排序链表中的重复元素 1删除排序链表中的重复元素 2环形链表1环形链表2相交链表反转链表 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。 新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入&…

【IMX6ULL驱动开发学习】03.Linux驱动开发之GPIO子系统、中断、定时器

一、GPIO子系统 1.1 引脚编号 在硬件上如何确定GPIO引脚?它属于哪组GPIO?它是这组GPIO里的哪个引脚?需要2个参数。但是在Linux软件上,可以使用引脚编号来表示。以100ask_ imx6ull为例在开发板上执行如下命令查看已经在使用的GPI…

桥接模式-java实现

桥接模式 桥接模式的本质,是解决一个基类,存在多个扩展维度的的问题。 比如一个图形基类,从颜色方面扩展和从形状上扩展,我们都需要这两个维度进行扩展,这就意味着,我们需要创建一个图形子类的同时&#x…

手搓vue3组件_1.封装一个button

我的icepro参考地址,内有参考代码,有条件的割割点点star 实现要求: 基于vue3支持通过colors(更改颜色)支持点击事件…支持其他的自定义样式(例如圆角,size等等) 最基础的第一步: 父组件引入并使用: <template><div class"buttonLim">我的按钮:<ice-b…

Zabbix监控华为交换机DHCP接口地址池

一、背景 最近工作中遇到一个因为DHCP地址池满载、导致用户无法获取到IP地址的故障&#xff0c;所以在想通过zabbix 监控DHCP地址池的状态、当DHCP 地址池数量小于某个值时触发zabbix告警。 网上找了一下没有相关的文档、和对应的OID值、于是用Python 脚本的方式实现 二、实现效…

第二课-一键安装SD-Stable Diffusion 教程

前言 看完这篇文章并跟着操作,就可以在本地开始 SD 绘图了。 理论上来说,这篇课程结束,想要画什么图都可以画了。 启动器介绍 SD 是开源的,可以在 github 上找到。但直接下载源码安装,非常费劲,而且因为国内外差异,就是我这样的秃头程序员也难以应对。 所以,我们改…

Spring中Bean的“一生”(生命周期)

文章目录 一、图解二、文字解析总结 一、图解 >注&#xff1a;处于同一行的执行顺序是从左往右 二、文字解析 SpringBean的生命周期总体分为四个阶段&#xff1a;实例化>属性注入>初始化>销毁 Step1 实例化Bean&#xff1a;根据配置文件中Bean的定义&#xff0c;…

设计模式(3)装饰模式

一、介绍&#xff1a; 1、应用场景&#xff1a;把所需的功能按正确的顺序串联起来进行控制。动态地给一个对象添加一些额外的职责&#xff0c;就增加功能来说&#xff0c;装饰模式比生成子类更加灵活。 当需要给一个现有类添加附加职责&#xff0c;而又不能采用生成子类的方法…

[RCTF2019]DontEatMe

前言 一道迷宫题&#xff0c;但是输入被加密后使用&#xff0c;迷宫也需要在程序中找出并没有直接输出 分析 反调试 发现有两个比较特殊的地方&#xff0c;随机数和创建了新线程&#xff0c;随机数后面又被重新赋值给覆盖了&#xff0c;暂时不用管&#xff0c;ZwSetInformat…

业务需求紧急,IT部门缺失,企业如何应对"影子IT"危机?

在当今数字化时代&#xff0c;业务部门的需求通常非常紧急&#xff0c;但IT部门的排期却跟不上&#xff0c;导致业务部门焦头烂额。IT部门面临着诸多需求&#xff0c;无法在规定时间范围内满足每一个需求&#xff0c;因此未授权的应用程序安全监管也变得愈发困难。 影子IT的频发…

互联网电影购票选座后台管理系统源码开发

搭建一个互联网电影购票选座后台管理系统需要进行以下步骤&#xff1a; 1. 需求分析&#xff1a;首先要明确系统的功能和需求&#xff0c;包括电影列表管理、场次管理、座位管理、订单管理等。 2. 技术选型&#xff1a;选择适合的技术栈进行开发&#xff0c;包括后端开发语言…

铸铝齿轮泵比例流量阀放大器

液压齿轮泵是一种常用的液压泵&#xff0c;被广泛应用于各种低压系统中&#xff0c;如采矿、冶金、建筑、航空、航海、农林等机械的中、高压液压系统中。 液压齿轮泵的特点是结构简单&#xff0c;制造方便&#xff0c;价格低廉&#xff0c;体积小&#xff0c;重量轻&#xff0…