Prometheus学习

文章目录

0.架构

在这里插入图片描述
Prometheus 工作流程:

  • 1.Prometheus Server 定期从配置好的Jobs/exporters Pull metrics,或者监控数据先推送到 Push Gateway 上,然后再由 Prometheus Server 端采集 Pull metrics,或者从其他的 Prometheus server 中 Pull metrics。
  • 2.Prometheus server 在本地存储收集到的 metrics,并运行已定义好的 alert.rules,记录新的时间序列或者向 Alertmanager 推送警报。
  • 3.Alertmanager 根据配置文件,对接收到的警报进行处理,发出告警。

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

Client Library: 客户端库,为需要监控的服务生成相应的 metrics 并暴露给 Prometheus server。当 Prometheus server 来 pull 时,直接返回实时状态的 metrics。

Push Gateway: 主要用于短期的 jobs。由于这类 jobs 存在时间较短,可能在 Prometheus server 来 pull 之前就消失了。为此,这些 jobs 可以直接向 Prometheus server 端推送它们的 metrics。

Exporters: 负责从目标处搜集数据,并将其转化为Prometheus支持的格式,用于暴露已有的第三方服务的 metrics 给 Prometheus。Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter提供的Endpoint端点,即可获取到需要采集的监控数据。

Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去除重复数据,分组,并路由到对方的接受方式,发出报警。常见的接收方式有:电子邮件,pagerduty 等。

WEB UI: Prometheus Server内置的Express Browser UI,通过这个UI可以直接通过PromQL实现数据的查询以及可视化。

Service Discovery: 服务发现,Prometheus支持多种服务发现机制:文件,DNS,Consul,Kubernetes,OpenStack,EC2等等。基于服务发现的过程并不复杂,通过第三方提供的接口,Prometheus查询到需要监控的Target列表,然后轮训这些Target获取监控数据。

Discover targets:发现目标
Notify:通知,通告
Retrieval:采样模块
TSDB:存储模块默认本地存储为tsdb
HTTP Server:提供http接口查询和面板,默认端口为9090

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章