2 Prometheus 简介

这篇具有很好参考价值的文章主要介绍了2 Prometheus 简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. 起源

2. Prometheus 架构

 2.1 指标收集

2.2 服务发现

2.3 聚合和警报

2.4 查询数据

2.5 服务自治

2.6 冗余和高可用性

2.7 可视化

3. Prometheus数据模型

3.1 指标名称

3.2 标签

3.3 采样数据

3.4 符号表示

3.5 保留时间

4. 安全模型

5. Prometheus生态系统

6. 附录


1. 起源

Prometheus最初由前谷歌SRE Matt T. Proud开发,并转化成一个研究项目,最终于2015年1月发布。

Prometheus提供近实时的、基于动态云环境和容器的微服务的内省监控。它专注于现在正在发生的事情,而不是追踪数周/月前的数据。

Prometheus由Golang语言编写,Apache 2.0许可证下授权,孵化于云原生计算基金会。

2. Prometheus 架构

Prometheus通过抓取/拉取服务中暴露的时间序列数据来工作。时间序列数据通常由应用程序本身通过客户端库或者exporter(导出器)的代理来作为HTTP端点暴露。

当前已有很多exporter和客户端库,支持多种编程语言、框架和开源应用程序,如Apache Web服务器和Mysql数据库等。

Prometheus还有一个推送网关(push gateway),可用于接收少量数据(如来自无法拉取的目标数据-防火墙后面的目标数据)。

2 Prometheus 简介,prometheus

 2.1 指标收集

Prometheus称其可以抓取的指标来源为端点(endpoint)。端点通常对应单个进程、主机、服务或者应用程序。为了抓取端点数据,Prometheus定义了名为目标(target)的配置。如何进行链接,要应用哪些元数据,连接需要哪些身份认证,或者定义抓取将如何执行的其他信息,这些都是执行抓取过程中所需的信息。一组这样的目标被称为作业(job)。作业通常是具有相同角色的目标组。如负载均衡器后面的Tomcat服务器集群,它们实际上是一组相似的进程。

生成的时间序列数据将被收集并存储在Prometheus服务器本地,也可以设置从服务器发送数据到外部存储器或其他时间序列数据库。

2.2 服务发现

可以通过多种方式来处理主要监控的资源的发现,有如下方式:

  • 用户提供的静态资源列表
  • 基于文件的发现。如使用配置管理工具生成在Prometheus中可以自动更新的资源列表。
  • 自动发现。如查询Consul等数据存储,在Amazon或Google中运行实例,或使用DNS SRV记录来生成资源列表。

2.3 聚合和警报

服务器还可以查询和聚合时间序列数据,并创建规则来记录常用的查询和聚合。允许基于现有的数据创建出新的时间序列数据,如根据请求数和失败数计算失败率,或者产生类似求和等聚合。

Prometheus还可以定义警报规则,这些都是系统配置的在满足条件时触发警报的标准。Prometheus服务器没有内置警报工具,而是将警报从Prometheus服务器推送到名为Alertmanager(警报管理器)的单独服务器。Alertmanager可以管理、整合和分发各种警报到不同的目的地。当然在发出电子邮件报警时,能防止重复发送。

2.4 查询数据

Prometheus服务器还提供了一套内置查询语言PromQL、一个表达式浏览器以及一个用于浏览服务器上数据的图形化界面。

2.5 服务自治

每个Prometheus服务器都设计为尽可能自治,旨在支持扩展到数千台主机的数百万个时间序列的规模,可扩展性。数据存储格式被设计为尽可能降低磁盘的使用率,并在查询和聚合期间快速检索时间序列。

2.6 冗余和高可用性

冗余和高可用性侧重弹性而非数据持久性。Prometheus可以单节点部署,也可以高可用(HA模式)部署,使用两个或者多个配置相同的Prometheus服务器来收集时间序列数据,并且所有生成的警报都由可消除重复警报的高可用Alertmanager集群来处理。相关的冗余架构如下:

2 Prometheus 简介,prometheus

2.7 可视化

可视化通过内置表达式浏览器提供,并且与开源仪表板Grafana集群(笔者当前所在公司使用该组件),当然也支持其他仪表盘。

3. Prometheus数据模型

在处理Prometheus收集的时间序列数据时,可以使用一个多维时间序列数据模型。这个时间序列数据模型结合了时间序列名称和称为标签(Label)的键值对,这些标签提供了维度。每个时间序列由时间序列名称和标签的组合唯一标识。下面会详细说这些概念。

3.1 指标名称

在一段时间内,收集到有关于业务相关的指标,如website_visits_total为网站访问数,http_response_error_total为Http错误结果数量。

Prometheus指标的名称可以包含ASCII字符、数字、下划线和冒号。

3.2 标签

标签为Prometheus数据模型提供了维度,为特定时间序列添加上下文。比如查询指标http_response_error_total时,可以根据服务区域标签得到各区域的结果。标签可以在指标统计的过程中进一步细分。如http_response_error_total是总的指标,通过服务所在Region作为标签可以查询到亚太、美东、欧洲等区域的http_response_error_total指标。

标签共分为两大类:插桩标签(instrumentation label)目标标签(target label)

插桩标签来自被监控的资源,如在客户端或者exporter抓取前制定的标签,也就是上报指标数据到

Prometheus前就会制定这些标签。目标标签更多地与架构相关,可能会识别时间序列所在的数据中心,它是由Prometheus在抓取期间和之后添加的。

标签名称可以包含ASCII字符、数字和下划线。但带有_前缀的标签名称保留给Prometheus内部使用。

3.3 采样数据

时间序列的真实值是采样(sample)的结果,包含两部分:

  • 一个float64类型的数值
  • 一个毫秒精度的时间戳

3.4 符号表示

Prometheus会将时间序列表示为符号(notation),如下。

<time series name>{<label name> = <label value>, ...}

例如,带有标签的total_error_response_http时间序列可能如下所示。

total_error_response_http{site="MegaApp",location="NJ",instance="HttpWebServer",job="HttpWeb"}

以上表达式,首先是时间序列名称,后面跟着一组键值对标签。通常所有时间序列都有一个instance标签(标识源主机、NODE或者服务)以及一个job标签。

3.5 保留时间

Prometheus为短期监控和警报需求而设计。默认情况下,在其数据库保留15天的时间序列数据。如需保留更长时间的数据,建议将所需数据发送到远程的第三方平台。当然Prometheus提供了写入外部的存储能力。

4. 安全模型

Prometheus可以通过多种方式进行配置和部署,于安全方面有以下两个假设:

  • 不受信任的用户将能够访问Prometheus服务器的HTTP API,从而访问数据库中的所有数据。
  • 只有受信任的用户才能访问Prometheus命令行、配置文件、规则文件和运行时配置。

从Prometheus 2.0开始,默认情况下某些HTTP API的管理功能被禁用。

Prometheus及其组件不提供任何服务器端的身份验证、授权或加密,如有需要,则需自己实施安全控制。

5. Prometheus生态系统

Prometheus生态系统有Prometheus项目本身提供的组件以及丰富的开源工具和套件组成,其核心仍然是Prometheus服务器,当然也包括Alertmanager。

Prometheus项目还包括一系列exporter,用于监控应用程序和服务,并在端点上公开相关指标进行抓取。核心exporter支持常见工具,如Http web服务器、数据库等。当然也有其他开源的exporter,可以去Prometheus社区查看。

Prometheus也发布了一系列客户端库,支持Java、Golang、Ruby、Python等主流语言接入。其他客户端库可以从github等开源社区获取。文章来源地址https://www.toymoban.com/news/detail-517213.html

6. 附录

  • prometheus官网
  • Prometheus文档
  • prometheus github源码
  • grafana 官网

到了这里,关于2 Prometheus 简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Prometheus详解(十)——Prometheus容器监控

    今天继续给大家介绍Linux运维相关知识,本文主要内容是Prometheus容器监控。 我们有时需要使用Prometheus监控Kubernetes集群中的容器,包括容器的内存、CPU、网络I/O等资源。在Kubernetes中,有内置的cAdvisor组件,用于Prometheus的容器监控设置。 接下来,我们就开始Prometheus利用cAdvis

    2024年02月06日
    浏览(51)
  • Prometheus详解(四)——Prometheus简单使用

    今天继续给大家介绍Linux运维相关知识,本文主要内容是Prometheus简单使用。 在上文Prometheus详解(三)——Prometheus安装部署中,我们介绍了Prometheus的安装和部署。今天,我们就来介绍一下Prometheus的简单使用。 首先,我们先来介绍一下Prometheus的页面。Prometheus的页面如下所示

    2023年04月08日
    浏览(25)
  • Prometheus详解(三)——Prometheus安装部署

    今天继续给大家介绍Linux运维相关知识,本文主要内容是Prometheus安装部署。在本文中,我们直接将Prometheus安装在了Kubernetes集群上,并没有在物理设备上部署。 Prometheus在Kubernetes集群上的安装需要有一块存储空间,在这里,我们使用NFS来提供存储卷的挂载。我们的NFS服务器I

    2024年01月22日
    浏览(29)
  • Grafana集成prometheus(1.Prometheus安装)

    该程序用以采集机器内存等数据 启动脚本 启动截图 启动脚本 启动截图 映射配置文件及自定义配置 复制配置文件 配置存放路径此处以/opt/start/prometheus/conf/prometheus为例 停止任务并删除容器 修改配置prometheus.yml 查看node-exporter网络地址 修改配置 修改配置( job_name 和 targets ),其

    2024年02月14日
    浏览(26)
  • Prometheus实战篇:Prometheus监控rabbitmq

    docker-compose安装rabbitmq 这里注意rabbitmq需要暴露2个端口 docker-compose.yaml docker安装exporter docker直接运行 docker-compose方式 启动 检查 参数解释 Environment variable 值 描述 RABBIT_URL localhost:15672 rabbitmq管理插件的url(必须以http(2)开头) RABBIT_USER guest rabbitmq管理插件的用户名 REDIS_PASSWORD gues

    2024年01月24日
    浏览(24)
  • Prometheus-05 Prometheus的核心概念和架构

    Prometheus是一个开源的监控系统和时间序列数据库,被广泛应用于云原生环境中的监控和告警。本文将介绍Prometheus的核心概念和架构,帮助读者了解Prometheus的工作原理和基本组件。 Prometheus基于一些核心概念来实现高效的监控和度量数据收集: 监控目标(Targets) 监控目标是

    2024年02月11日
    浏览(31)
  • 玩转prometheus告警 alertmanger(一)之prometheus告警规则

    目录 1. 告警系统原理概述 2.  配置prometheus规则 2.1 配置告警规则目录 2.2 告警规则 3. 查看效果 在开始之前,需要了解下prometheus和altermanger之间的关系是什么?从prometheus的架构及生态系统组件来看   Prometheus从targets中抓取指标(metric)并存储,通过对指标进行分析生成告警

    2024年02月13日
    浏览(29)
  • Prometheus-08 安装配置prometheus时的ntp时间同步问题

    prometheus需要本地时间与容器时间一致,首先检查本地时间,输入date查看本地时间,设置本地主机的时区和时间 查看时区 在输出结果中,找到 “Time zone” 行,确认当前的时区设置。 centos安装ntp 1:手动同步NT

    2024年02月16日
    浏览(28)
  • Prometheus-06 Prometheus与其他监控解决方案的对比

    在现代技术环境中,监控和管理系统的健康状态至关重要。许多监控解决方案可供选择,其中Prometheus作为一种开源系统监控解决方案,逐渐崭露头角。本文将对Prometheus与其他主流监控解决方案进行比较,并探讨其优势和劣势。 Prometheus Prometheus是一种开源的监控系统,由Sou

    2024年02月10日
    浏览(24)
  • Prometheus监控实战之Prometheus监控K8S

    Cadvisor + node-exporter + prometheus + grafana Cadvisor:数据采集 node-exporter:汇总 prometheus:处理、存储 grafana:展示 容器监控:Prometheus使用cadvisor采集容器监控指标,而 cadvisor集成在K8S的kubelet中所以无需部署 ,通过Prometheus进程存储,使用grafana进行展示。 node节点监控:node端的监控通

    2023年04月21日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包