一文秒懂Prometheus 介绍及工作原理

 更新时间:2021年01月24日 12:16:30   作者:冰冷的燃烧着  
这篇文章主要介绍了一文秒懂Prometheus 介绍及工作原理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1. Prometheus 介绍

Prometheus是一套开源的系统监控报警框,相比Nagios或者Zabbix拥有如下优点

1.1 易管理性

Prometheus: Prometheus核心部分只有一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储。

1.2 业务数据相关性

Prometheus:监控服务的运行状态,基于Prometheus丰富的Client库,用户可以轻松的在应用程序中添加对Prometheus的支持,从而让用户可以获取服务和应用内部真正的运行状态。

1.3 高效:

单一Prometheus可以处理数以百万的监控指标;每秒处理数十万的数据点。

1.4 易于伸缩:

通过使用功能分区(sharing)+联邦集群(federation)可以对Prometheus进行扩展,形成一个逻辑集群;Prometheus提供多种语言的客户端SDK,这些SDK可以快速让应用程序纳入到Prometheus的监控当中。

1.5 良好的可视化:

Prometheus除了自带有Prometheus UI,Grafana可视化工具也提供了完整的Proetheus支持

2. Prometheus 框架图

在这里插入图片描述

3. Prometheus 组件介绍

3.1 Prometheus Server:

Prometheus Sever是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储及查询。Prometheus Server可以通过静态配置管理监控目标,也可以配合使用Service Discovery的方式动态管理监控目标,并从这些监控目标中获取数据。其次Prometheus Sever需要对采集到的数据进行存储,Prometheus Server本身就是一个实时数据库,将采集到的监控数据按照时间序列的方式存储在本地磁盘当中。Prometheus Server对外提供了自定义的PromQL,实现对数据的查询以及分析。另外Prometheus Server的联邦集群能力可以使其从其他的Prometheus Server实例中获取数据。

3.2 Exporters:

Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter提供的Endpoint端点,即可以获取到需要采集的监控数据。可以将Exporter分为2类:
直接采集:这一类Exporter直接内置了对Prometheus监控的支持,比如cAdvisor,Kubernetes,Etcd,Gokit等,都直接内置了用于向Prometheus暴露监控数据的端点。
间接采集:原有监控目标并不直接支持Prometheus,因此需要通过Prometheus提供的Client Library编写该监控目标的监控采集程序。例如:Mysql Exporter,JMX Exporter,Consul Exporter等。

3.3 AlertManager:

在Prometheus Server中支持基于Prom QL创建告警规则,如果满足Prom QL定义的规则,则会产生一条告警。在AlertManager从 Prometheus server 端接收到 alerts后,会进行去除重复数据,分组,并路由到对收的接受方式,发出报警。常见的接收方式有:电子邮件,pagerduty,webhook 等。

3.4 PushGateway:

Prometheus数据采集基于Prometheus Server从Exporter pull数据,因此当网络环境不允许Prometheus Server和Exporter进行通信时,可以使用PushGateway来进行中转。通过PushGateway将内部网络的监控数据主动Push到Gateway中,Prometheus Server采用针对Exporter同样的方式,将监控数据从PushGateway pull到Prometheus Server。

4. Prometheus的工作流:

4.1 Prometheus server定期从配置好的jobs或者exporters中拉取metrics,或者接收来自 Pushgateway发送过来的metrics,或者从其它的Prometheus server中拉metrics。

4.2 Prometheus server在本地存储收集到的metrics,并运行定义好的alerts.rules,记录新的时间序列或者向Alert manager推送警报。

4.3 Alertmanager根据配置文件,对接收到的警报进行处理,发出告警。

4.4 在图形界面中,可视化采集数据。

到此这篇关于一文秒懂Prometheus 介绍及工作原理的文章就介绍到这了,更多相关Prometheus 介绍及工作原理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详细解析Webpack是怎么运行的

    详细解析Webpack是怎么运行的

    这篇文章主要介绍了Webpack是怎么运行的,打包顺序是怎样的,非常基础且非常重要的知识点
    2020-02-02
  • 关于数据处理包dplyr的函数用法总结

    关于数据处理包dplyr的函数用法总结

    下面小编就为大家带来一篇关于数据处理包dplyr的函数用法总结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 后端算法题解LeetCode前缀和示例详解

    后端算法题解LeetCode前缀和示例详解

    这篇文章主要为大家介绍了后端算法题解LeetCode前缀和示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • 什么是负载均衡为什么需要负载均衡

    什么是负载均衡为什么需要负载均衡

    Load balancing,即负载均衡,是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的
    2024-04-04
  • Trie树_字典树(字符串排序)简介及实现

    Trie树_字典树(字符串排序)简介及实现

    有时,我们会碰到对字符串的排序,若采用一些经典的排序算法,则时间复杂度一般为O(n*lgn),但若采用Trie树,则时间复杂度仅为O(n)
    2014-03-03
  • 关于爬虫和反爬虫的简略方案分享

    关于爬虫和反爬虫的简略方案分享

    这篇文章主要给大家介绍了一些关于爬虫和反爬虫的简略方案的相关资料,文中介绍的非常详细,对大家理解和学习爬虫与反爬虫具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • 分享Win10 1903过TP的双机调试问题

    分享Win10 1903过TP的双机调试问题

    本文给大家分享的是Win10 1903过TP的双机调试问题,通过实例代码截图的形式给大家展示的非常详细,需要的朋友参考下
    2019-11-11
  • Git撤销&回滚操作(git reset 和 get revert)

    Git撤销&回滚操作(git reset 和 get revert)

    这篇文章主要介绍了Git撤销&回滚操作(git reset 和 get revert),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 详解window启动webpack打包的三种方法

    详解window启动webpack打包的三种方法

    这篇文章主要介绍了window启动webpack打包的三种方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • uniapp引入支付宝原生扫码插件步骤详解

    uniapp引入支付宝原生扫码插件步骤详解

    这篇文章主要为大家介绍了uniapp引入支付宝原生扫码插件步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07

最新评论